Files
EWF/json/json_number.e

86 lines
1.4 KiB
Plaintext

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