Fixed bug where a JSON string had to end with CRLF. But that's optional.
Reformatted code to Gobo standard.
This commit is contained in:
@@ -1,59 +1,60 @@
|
||||
indexing
|
||||
|
||||
description: "Objects that ..."
|
||||
author: ""
|
||||
date: "$Date$"
|
||||
revision: "$Revision$"
|
||||
|
||||
class
|
||||
|
||||
JSON_READER
|
||||
|
||||
create
|
||||
|
||||
make
|
||||
feature -- Access
|
||||
make(a_json:STRING) is
|
||||
|
||||
feature -- Initialization
|
||||
|
||||
make (a_json: STRING) is
|
||||
--
|
||||
do
|
||||
representation:=a_json
|
||||
index:=1
|
||||
representation := a_json
|
||||
index := 1
|
||||
end
|
||||
|
||||
read:CHARACTER is
|
||||
|
||||
feature -- Commands
|
||||
|
||||
read: CHARACTER is
|
||||
--
|
||||
do
|
||||
if not representation.is_empty then
|
||||
Result:= representation.item (index)
|
||||
Result := representation.item (index)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
actual:CHARACTER is
|
||||
--
|
||||
do
|
||||
Result:=representation.item (index)
|
||||
end
|
||||
|
||||
has_next:BOOLEAN is
|
||||
has_next: BOOLEAN is
|
||||
--
|
||||
do
|
||||
if index <= representation.count then
|
||||
Result:=True
|
||||
Result := True
|
||||
end
|
||||
end
|
||||
|
||||
has_previous:BOOLEAN is
|
||||
has_previous: BOOLEAN is
|
||||
--
|
||||
do
|
||||
if index >=1 then
|
||||
Result:=True
|
||||
Result := True
|
||||
end
|
||||
end
|
||||
|
||||
next is
|
||||
--
|
||||
require
|
||||
has_more_elements: has_next
|
||||
do
|
||||
index:=index + 1
|
||||
index := index + 1
|
||||
ensure
|
||||
incremented: old index + 1 = index
|
||||
end
|
||||
@@ -63,7 +64,7 @@ feature -- Access
|
||||
require
|
||||
not_is_first: has_previous
|
||||
do
|
||||
index:=index - 1
|
||||
index := index - 1
|
||||
ensure
|
||||
incremented: old index - 1 = index
|
||||
end
|
||||
@@ -79,19 +80,37 @@ feature -- Access
|
||||
end
|
||||
end
|
||||
|
||||
json_substring (start_index, end_index: INTEGER_32):STRING is
|
||||
json_substring (start_index, end_index: INTEGER_32): STRING is
|
||||
--
|
||||
do
|
||||
Result:=representation.substring (start_index, end_index)
|
||||
Result := representation.substring (start_index, end_index)
|
||||
end
|
||||
|
||||
|
||||
feature -- Access
|
||||
|
||||
representation: STRING
|
||||
-- Serialized representation of the original JSON string
|
||||
|
||||
|
||||
feature -- Implementation
|
||||
representation:STRING
|
||||
--linear representation of the original json string
|
||||
index:INTEGER
|
||||
--actual index
|
||||
feature {NONE} -- Implementation
|
||||
|
||||
actual: CHARACTER is
|
||||
-- Current character or '%U' if none
|
||||
do
|
||||
if index > representation.count then
|
||||
Result := '%U'
|
||||
else
|
||||
Result := representation.item (index)
|
||||
end
|
||||
end
|
||||
|
||||
index: INTEGER
|
||||
-- Actual index
|
||||
|
||||
|
||||
invariant
|
||||
|
||||
representation_not_void: representation /= Void
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user