Cosmetic + Optimization + Assertion + Void-safety

(no significant interface changes)
This commit is contained in:
jfiat
2009-03-18 15:29:41 +00:00
parent 1359a1ceae
commit 548a320448
13 changed files with 1367 additions and 1273 deletions

View File

@@ -1,85 +1,85 @@
indexing
description: "JSON Numbers, octal and hexadecimal formats are not used."
author: "Javier Velilla"
date: "2008/08/24"
revision: "Revision 0.1"
license:"MIT (see http://www.opensource.org/licenses/mit-license.php)"
class
JSON_NUMBER
inherit
JSON_VALUE
redefine
is_equal
end
create
make_integer,
make_real
feature -- initialization
make_integer (an_argument: INTEGER) is
-- Initialize an instance of JSON_NUMBER as INTEGER
do
item := an_argument.out
numeric_type := INTEGER_TYPE
end
make_real (an_argument: DOUBLE) is
-- Initialize an instance of JSON_NUMBER as DOUBLE
do
item := an_argument.out
numeric_type := DOUBLE_TYPE
end
feature -- Access
item: STRING
-- Content
hash_code: INTEGER is
--Hash code value
do
Result:=item.hash_code
end
feature -- Visitor pattern
accept (a_visitor: JSON_VISITOR) is
-- Accept `a_visitor'.
-- (Call `visit_json_number' procedure on `a_visitor'.)
do
a_visitor.visit_json_number (Current)
end
feature -- Status
is_equal (other: like Current): BOOLEAN is
-- Is `other' attached to an object of the same type
-- as current object and identical to it?
do
Result := item.is_equal (other.item)
end
feature -- Implementation
INTEGER_TYPE: INTEGER is 1
DOUBLE_TYPE: INTEGER is 2
numeric_type: INTEGER
invariant
item_not_void: item /= Void
end
indexing
description: "JSON Numbers, octal and hexadecimal formats are not used."
author: "Javier Velilla"
date: "2008/08/24"
revision: "Revision 0.1"
license:"MIT (see http://www.opensource.org/licenses/mit-license.php)"
class
JSON_NUMBER
inherit
JSON_VALUE
redefine
is_equal
end
create
make_integer,
make_real
feature {NONE} -- initialization
make_integer (an_argument: INTEGER) is
-- Initialize an instance of JSON_NUMBER as INTEGER
do
item := an_argument.out
numeric_type := INTEGER_TYPE
end
make_real (an_argument: DOUBLE) is
-- Initialize an instance of JSON_NUMBER as DOUBLE
do
item := an_argument.out
numeric_type := DOUBLE_TYPE
end
feature -- Access
item: STRING
-- Content
hash_code: INTEGER is
--Hash code value
do
Result := item.hash_code
end
feature -- Visitor pattern
accept (a_visitor: JSON_VISITOR) is
-- Accept `a_visitor'.
-- (Call `visit_json_number' procedure on `a_visitor'.)
do
a_visitor.visit_json_number (Current)
end
feature -- Status
is_equal (other: like Current): BOOLEAN is
-- Is `other' attached to an object of the same type
-- as current object and identical to it?
do
Result := item.is_equal (other.item)
end
feature -- Status report
debug_output: STRING
-- String that should be displayed in debugger to represent `Current'.
do
Result := item
end
feature -- Implementation
INTEGER_TYPE: INTEGER is 1
DOUBLE_TYPE: INTEGER is 2
numeric_type: INTEGER
invariant
item_not_void: item /= Void
end