GNU
|
Liberty Eiffel
|
Automated Tests
|
Wiki
|
Savannah project
|
Debian packages
|
Documentation
>
libraries
>
JSON_STREAM_REPOSITORY
+
Point of view
All features
ANY
All features
class JSON_STREAM_REPOSITORY [O_ ->
STORABLE
]
Summary
top
To be used via streams that commit and update the
JSON
repository
Direct parents
Inherit list:
JSON_REPOSITORY_IMPL
Class invariant
top
parser /= Void
repository /= Void
reference_storables:
not objects_are_expanded
Overview
top
Creation features
{
ANY
}
connect_to
(a_in_stream:
INPUT_STREAM
, a_out_stream:
OUTPUT_STREAM
)
Connect to a repository with streams as physical store.
Features
Updating and committing
{
ANY
}
commit
Commit all the repository objects to the physical store.
is_commitable
:
BOOLEAN
True if the repository can be committed to the underlying physical store.
update
Update the repository objects.
is_updateable
:
BOOLEAN
True if the repository can be updated from data in the physical store.
is_connected
:
BOOLEAN
True if the repository is connected to a physical store.
Creation
{
ANY
}
connect_to
(a_in_stream:
INPUT_STREAM
, a_out_stream:
OUTPUT_STREAM
)
Connect to a repository with streams as physical store.
{}
update_stream
:
INPUT_STREAM
commit_stream
:
OUTPUT_STREAM
out_stream
:
JSON_REPOSITORY_OUTPUT
Implementation of update
{}
last_line
:
INTEGER_32
last_column
:
INTEGER_32
do_update
(in_stream:
INPUT_STREAM
)
parser
:
JSON_PARSER
last_name
:
STRING
last_string
:
STRING
last_number
:
INTEGER_32
{
JSON_ARRAY
}
visit_array
(json:
JSON_ARRAY
)
{
JSON_FALSE
}
visit_false
(json:
JSON_FALSE
)
{
JSON_NULL
}
visit_null
(json:
JSON_NULL
)
{
JSON_NUMBER
}
visit_number
(json:
JSON_NUMBER
)
{
JSON_OBJECT
}
visit_object
(json:
JSON_OBJECT
)
everything happens here because the repository structure is well defined
{
JSON_STRING
}
visit_string
(json:
JSON_STRING
)
{
JSON_TRUE
}
visit_true
(json:
JSON_TRUE
)
Default transient objects
{}
register_transient_objects
unregister_transient_objects
{}
version
:
STRING
make
Create a not-connected empty repository.
{}
_inline_agent44
(value:
JSON_VALUE
, string:
JSON_STRING
, refs:
JSON_ARRAY
)
_inline_agent45
(value:
JSON_VALUE
, string:
JSON_STRING
)
_inline_agent46
(value:
JSON_VALUE
, index:
INTEGER_32
)
_inline_agent47
(value:
JSON_VALUE
, string:
JSON_STRING
)
Error handling on repository update
{
ANY
}
register_update_error_handler
(a_error_handler:
PROCEDURE
[
TUPLE 3
[
ABSTRACT_STRING
,
INTEGER_32
,
INTEGER_32
]])
{}
update_error_handlers
:
FAST_ARRAY
[
PROCEDURE
[
TUPLE 3
[
ABSTRACT_STRING
,
INTEGER_32
,
INTEGER_32
]]]
fire_update_error
(message:
ABSTRACT_STRING
, line:
INTEGER_32
, column:
INTEGER_32
)
Implementation of update
{}
solve_again
:
BOOLEAN
update_layouts
:
STACK
[
REPOSITORY_LAYOUT
]
updated_internals
:
AVL_DICTIONARY
[
INTERNALS
,
INTEGER_32
]
internals_references
:
HASHED_DICTIONARY
[
INTEGER_32
,
POINTER
]
layouts
:
FAST_ARRAY
[
REPOSITORY_LAYOUT
]
objects
:
AVL_DICTIONARY
[
INTEGER_32
,
STRING
]
solve
(ref:
INTEGER_32
):
INTERNALS
internals_reference
(internals:
INTERNALS
):
INTEGER_32
solver
:
FUNCTION
[
TUPLE 1
[
INTEGER_32
],
INTERNALS
]
read_from_stream
(in_stream:
INPUT_STREAM
)
update_from_stream
(in_stream:
INPUT_STREAM
)
record_object
(ref:
INTEGER_32
, name:
STRING
, line:
INTEGER_32
, column:
INTEGER_32
)
Register the object as a high-level one, i.e.
check_non_empty_data
(a_data:
STRING
, data_type:
STRING
, line:
INTEGER_32
, column:
INTEGER_32
)
open_repository
(a_repository:
REPOSITORY_LAYOUT
, line:
INTEGER_32
, column:
INTEGER_32
)
open_layout
(a_type:
STRING
, a_ref:
INTEGER_32
, a_layout:
REPOSITORY_LAYOUT
, line:
INTEGER_32
, column:
INTEGER_32
)
open_reference
(a_name:
STRING
, a_ref:
INTEGER_32
, a_reference:
REPOSITORY_LAYOUT
, line:
INTEGER_32
, column:
INTEGER_32
)
open_embedded
(a_name:
STRING
, a_type:
STRING
, a_embedded:
REPOSITORY_LAYOUT
, line:
INTEGER_32
, column:
INTEGER_32
)
open_basic
(a_name:
STRING
, a_type:
STRING
, a_value:
STRING
, a_basic:
REPOSITORY_LAYOUT
, line:
INTEGER_32
, column:
INTEGER_32
)
open_array
(a_name:
STRING
, a_type:
STRING
, a_capacity:
INTEGER_32
, a_array:
REPOSITORY_LAYOUT
, line:
INTEGER_32
, column:
INTEGER_32
)
close_repository
(line:
INTEGER_32
, column:
INTEGER_32
)
close_layout
(line:
INTEGER_32
, column:
INTEGER_32
)
close_reference
(line:
INTEGER_32
, column:
INTEGER_32
)
close_embedded
(line:
INTEGER_32
, column:
INTEGER_32
)
close_basic
(line:
INTEGER_32
, column:
INTEGER_32
)
close_array
(line:
INTEGER_32
, column:
INTEGER_32
)
Implementation of commit
{}
commit_map
:
SET
[
POINTER
]
Used when committing object not to commit them twice
write_to_stream
(out_stream:
REPOSITORY_OUTPUT
)
write_object
(name:
STRING
, object:
STORABLE
, out_stream:
REPOSITORY_OUTPUT
)
write_internals
(int:
INTERNALS
, name:
STRING
, out_stream:
REPOSITORY_OUTPUT
)
write_reference_layout
(reference:
INTERNALS
, name:
STRING
, out_stream:
REPOSITORY_OUTPUT
)
write_layout
(layout:
INTERNALS
, out_stream:
REPOSITORY_OUTPUT
)
write_contents
(layout:
INTERNALS
, out_stream:
REPOSITORY_OUTPUT
)
write_array_contents
(layout:
INTERNALS
, out_stream:
REPOSITORY_OUTPUT
)
write_array_fields_layouts
(array:
INTERNALS
, out_stream:
REPOSITORY_OUTPUT
)
write_expanded
(internals:
INTERNALS
, name:
STRING
, out_stream:
REPOSITORY_OUTPUT
)
write_array_layout_object
(internals:
INTERNALS
, name:
STRING
, out_stream:
REPOSITORY_OUTPUT
)
write_embedded_layout_object
(internals:
INTERNALS
, name:
STRING
, out_stream:
REPOSITORY_OUTPUT
)
Internals
{}
layouts_pool
:
RECYCLING_POOL
[
REPOSITORY_LAYOUT
]
new_layout
(a_kind:
STRING
):
REPOSITORY_LAYOUT
release_layout
(a_layout:
REPOSITORY_LAYOUT
)
transient
:
REPOSITORY_TRANSIENT
Getting and setting objects in the repository:
{
ANY
}
has
(object_name:
STRING
):
BOOLEAN
Is
object_name
the name of some stored object.
at
(object_name:
STRING
): O_
Return the object currently associated to
object_name
.
add
(object: O_, object_name:
STRING
)
Add a new
object
in the
Current
repository.
put
(object: O_, object_name:
STRING
) assign
at
Update or add a new
object
in the
Current
repository.
remove
(object_name:
STRING
)
Remove entry
object_name
from the
Current
repository.
Counting:
{
ANY
}
count
:
INTEGER_32
Actual
count
of stored elements.
is_empty
:
BOOLEAN
Is it empty ?
Iterating facilities:
{
ANY
}
lower
:
INTEGER_32
upper
:
INTEGER_32
valid_index
(index:
INTEGER_32
):
BOOLEAN
item
(index:
INTEGER_32
): O_
key
(index:
INTEGER_32
):
STRING
new_iterator_on_items
: ITERATOR[O_]
new_iterator_on_keys
:
ITERATOR
[
STRING
]
key_map_in
(buffer:
COLLECTION
[
STRING
])
Append in
buffer
, all available keys (this may be useful to speed up the traversal).
item_map_in
(buffer: COLLECTION[O_])
Append in
buffer
, all available items (this may be useful to speed up the traversal).
Implementation
{}
repository
: DICTIONARY[O_,
STRING
]
objects_are_expanded
:
BOOLEAN
{}
valid_generating_type_for_internals
(type:
STRING
):
BOOLEAN
internals_from_generating_type
(type:
STRING
):
INTERNALS
valid_generating_type_for_native_array_internals
(type:
STRING
):
BOOLEAN
native_array_internals_from_generating_type
(type:
STRING
, capacity:
INTEGER_32
):
INTERNALS
{
JSON_HANDLER
}
json_star
:
JSON_STRING
json_type
:
JSON_STRING
json_repository
:
JSON_STRING
json_version
:
JSON_STRING
json_data
:
JSON_STRING
json_refs
:
JSON_STRING
json_basic
:
JSON_STRING
json_value
:
JSON_STRING
json_array
:
JSON_STRING
json_capacity
:
JSON_STRING
json_layout
:
JSON_STRING
json_ref
:
JSON_STRING
json_embedded
:
JSON_STRING
json_type_character
:
JSON_STRING
json_type_boolean
:
JSON_STRING
json_type_integer_8
:
JSON_STRING
json_type_integer_16
:
JSON_STRING
json_type_integer_32
:
JSON_STRING
json_type_integer_64
:
JSON_STRING
json_type_integer
:
JSON_STRING
json_type_real_32
:
JSON_STRING
json_type_real_64
:
JSON_STRING
json_type_real_80
:
JSON_STRING
json_type_real_128
:
JSON_STRING
json_type_real_expanded
:
JSON_STRING
json_type_real
:
JSON_STRING
json_array_element_type
(type:
ABSTRACT_STRING
):
JSON_STRING
json_string
(a_string:
ABSTRACT_STRING
):
JSON_STRING
{}
json_array_element_types
:
HASHED_DICTIONARY
[
JSON_STRING
,
FIXED_STRING
]
json_strings
:
HASHED_DICTIONARY
[
JSON_STRING
,
FIXED_STRING
]
commit
effective procedure
{
ANY
}
top
Commit all the repository objects to the physical store.
require
is_commitable
is_commitable
:
BOOLEAN
effective function
{
ANY
}
top
True if the repository can be committed to the underlying physical store.
ensure
Result implies is_connected
update
effective procedure
{
ANY
}
top
Update the repository objects.
Get all objects from the physical store.
require
is_updateable
is_updateable
:
BOOLEAN
effective function
{
ANY
}
top
True if the repository can be updated from data in the physical store.
ensure
Result implies is_connected
is_connected
:
BOOLEAN
effective function
{
ANY
}
top
True if the repository is connected to a physical store.
connect_to
(a_in_stream:
INPUT_STREAM
, a_out_stream:
OUTPUT_STREAM
)
effective procedure
{
ANY
}
top
Connect to a repository with streams as physical store.
update_stream
:
INPUT_STREAM
writable attribute
{}
top
commit_stream
:
OUTPUT_STREAM
writable attribute
{}
top
out_stream
:
JSON_REPOSITORY_OUTPUT
writable attribute
{}
top
last_line
:
INTEGER_32
writable attribute
{}
top
last_column
:
INTEGER_32
writable attribute
{}
top
do_update
(in_stream:
INPUT_STREAM
)
effective procedure
{}
top
parser
:
JSON_PARSER
writable attribute
{}
top
last_name
:
STRING
writable attribute
{}
top
last_string
:
STRING
writable attribute
{}
top
last_number
:
INTEGER_32
writable attribute
{}
top
visit_array
(json:
JSON_ARRAY
)
effective procedure
{
JSON_ARRAY
}
top
require
json /= Void
visit_false
(json:
JSON_FALSE
)
effective procedure
{
JSON_FALSE
}
top
require
json /= Void
visit_null
(json:
JSON_NULL
)
effective procedure
{
JSON_NULL
}
top
require
json /= Void
visit_number
(json:
JSON_NUMBER
)
effective procedure
{
JSON_NUMBER
}
top
require
json /= Void
visit_object
(json:
JSON_OBJECT
)
effective procedure
{
JSON_OBJECT
}
top
everything happens here because the repository structure is well defined
require
json /= Void
visit_string
(json:
JSON_STRING
)
effective procedure
{
JSON_STRING
}
top
require
json /= Void
visit_true
(json:
JSON_TRUE
)
effective procedure
{
JSON_TRUE
}
top
require
json /= Void
register_transient_objects
effective procedure
{}
top
unregister_transient_objects
effective procedure
{}
top
version
:
STRING
is "1"
frozen
constant attribute
{}
top
make
effective procedure
{}
top
Create a not-connected empty repository.
_inline_agent44
(value:
JSON_VALUE
, string:
JSON_STRING
, refs:
JSON_ARRAY
)
frozen
effective procedure
{}
top
_inline_agent45
(value:
JSON_VALUE
, string:
JSON_STRING
)
frozen
effective procedure
{}
top
_inline_agent46
(value:
JSON_VALUE
, index:
INTEGER_32
)
frozen
effective procedure
{}
top
_inline_agent47
(value:
JSON_VALUE
, string:
JSON_STRING
)
frozen
effective procedure
{}
top
register_update_error_handler
(a_error_handler:
PROCEDURE
[
TUPLE 3
[
ABSTRACT_STRING
,
INTEGER_32
,
INTEGER_32
]])
effective procedure
{
ANY
}
top
update_error_handlers
:
FAST_ARRAY
[
PROCEDURE
[
TUPLE 3
[
ABSTRACT_STRING
,
INTEGER_32
,
INTEGER_32
]]]
writable attribute
{}
top
fire_update_error
(message:
ABSTRACT_STRING
, line:
INTEGER_32
, column:
INTEGER_32
)
effective procedure
{}
top
solve_again
:
BOOLEAN
writable attribute
{}
top
update_layouts
:
STACK
[
REPOSITORY_LAYOUT
]
once function
{}
top
updated_internals
:
AVL_DICTIONARY
[
INTERNALS
,
INTEGER_32
]
once function
{}
top
internals_references
:
HASHED_DICTIONARY
[
INTEGER_32
,
POINTER
]
once function
{}
top
layouts
:
FAST_ARRAY
[
REPOSITORY_LAYOUT
]
once function
{}
top
objects
:
AVL_DICTIONARY
[
INTEGER_32
,
STRING
]
once function
{}
top
solve
(ref:
INTEGER_32
):
INTERNALS
effective function
{}
top
require
ref > 0
internals_reference
(internals:
INTERNALS
):
INTEGER_32
effective function
{}
top
require
not internals.type_is_expanded
solver
:
FUNCTION
[
TUPLE 1
[
INTEGER_32
],
INTERNALS
]
once function
{}
top
read_from_stream
(in_stream:
INPUT_STREAM
)
effective procedure
{}
top
update_from_stream
(in_stream:
INPUT_STREAM
)
effective procedure
{}
top
record_object
(ref:
INTEGER_32
, name:
STRING
, line:
INTEGER_32
, column:
INTEGER_32
)
effective procedure
{}
top
Register the object as a high-level one, i.e.
put it in the repository.
check_non_empty_data
(a_data:
STRING
, data_type:
STRING
, line:
INTEGER_32
, column:
INTEGER_32
)
effective procedure
{}
top
open_repository
(a_repository:
REPOSITORY_LAYOUT
, line:
INTEGER_32
, column:
INTEGER_32
)
effective procedure
{}
top
require
a_repository.kind.is_equal("repository")
open_layout
(a_type:
STRING
, a_ref:
INTEGER_32
, a_layout:
REPOSITORY_LAYOUT
, line:
INTEGER_32
, column:
INTEGER_32
)
effective procedure
{}
top
require
a_layout.kind.is_equal("layout")
a_ref > 0
open_reference
(a_name:
STRING
, a_ref:
INTEGER_32
, a_reference:
REPOSITORY_LAYOUT
, line:
INTEGER_32
, column:
INTEGER_32
)
effective procedure
{}
top
require
a_reference.kind.is_equal("reference")
a_ref >= 0
0 is Void
open_embedded
(a_name:
STRING
, a_type:
STRING
, a_embedded:
REPOSITORY_LAYOUT
, line:
INTEGER_32
, column:
INTEGER_32
)
effective procedure
{}
top
require
a_embedded.kind.is_equal("embedded")
open_basic
(a_name:
STRING
, a_type:
STRING
, a_value:
STRING
, a_basic:
REPOSITORY_LAYOUT
, line:
INTEGER_32
, column:
INTEGER_32
)
effective procedure
{}
top
require
a_basic.kind.is_equal("basic")
open_array
(a_name:
STRING
, a_type:
STRING
, a_capacity:
INTEGER_32
, a_array:
REPOSITORY_LAYOUT
, line:
INTEGER_32
, column:
INTEGER_32
)
effective procedure
{}
top
require
a_array.kind.is_equal("array")
close_repository
(line:
INTEGER_32
, column:
INTEGER_32
)
effective procedure
{}
top
require
update_layouts
.top.kind.is_equal("repository")
close_layout
(line:
INTEGER_32
, column:
INTEGER_32
)
effective procedure
{}
top
require
update_layouts
.top.kind.is_equal("layout")
close_reference
(line:
INTEGER_32
, column:
INTEGER_32
)
effective procedure
{}
top
require
update_layouts
.top.kind.is_equal("reference")
close_embedded
(line:
INTEGER_32
, column:
INTEGER_32
)
effective procedure
{}
top
require
update_layouts
.top.kind.is_equal("embedded")
close_basic
(line:
INTEGER_32
, column:
INTEGER_32
)
effective procedure
{}
top
require
update_layouts
.top.kind.is_equal("basic")
close_array
(line:
INTEGER_32
, column:
INTEGER_32
)
effective procedure
{}
top
require
update_layouts
.top.kind.is_equal("array")
commit_map
:
SET
[
POINTER
]
once function
{}
top
Used when committing object not to commit them twice
write_to_stream
(out_stream:
REPOSITORY_OUTPUT
)
effective procedure
{}
top
require
out_stream.is_connected
write_object
(name:
STRING
, object:
STORABLE
, out_stream:
REPOSITORY_OUTPUT
)
effective procedure
{}
top
write_internals
(int:
INTERNALS
, name:
STRING
, out_stream:
REPOSITORY_OUTPUT
)
effective procedure
{}
top
write_reference_layout
(reference:
INTERNALS
, name:
STRING
, out_stream:
REPOSITORY_OUTPUT
)
effective procedure
{}
top
require
reference /= Void implies not reference.type_is_expanded
write_layout
(layout:
INTERNALS
, out_stream:
REPOSITORY_OUTPUT
)
effective procedure
{}
top
require
not
commit_map
.has(layout.object_as_pointer)
not layout.type_is_expanded
ensure
commit_map
.has(layout.object_as_pointer)
write_contents
(layout:
INTERNALS
, out_stream:
REPOSITORY_OUTPUT
)
effective procedure
{}
top
require
layout.type_is_expanded or else
transient
.reference(layout) = Void
not layout.type_is_native_array
write_array_contents
(layout:
INTERNALS
, out_stream:
REPOSITORY_OUTPUT
)
effective procedure
{}
top
require
layout.type_is_native_array
write_array_fields_layouts
(array:
INTERNALS
, out_stream:
REPOSITORY_OUTPUT
)
effective procedure
{}
top
require
array.type_is_expanded and then array.type_is_native_array
write_expanded
(internals:
INTERNALS
, name:
STRING
, out_stream:
REPOSITORY_OUTPUT
)
effective procedure
{}
top
require
internals.type_is_expanded
write_array_layout_object
(internals:
INTERNALS
, name:
STRING
, out_stream:
REPOSITORY_OUTPUT
)
effective procedure
{}
top
require
internals.type_is_native_array
write_embedded_layout_object
(internals:
INTERNALS
, name:
STRING
, out_stream:
REPOSITORY_OUTPUT
)
effective procedure
{}
top
layouts_pool
:
RECYCLING_POOL
[
REPOSITORY_LAYOUT
]
once function
{}
top
new_layout
(a_kind:
STRING
):
REPOSITORY_LAYOUT
effective function
{}
top
ensure
Result.kind.is_equal(a_kind)
release_layout
(a_layout:
REPOSITORY_LAYOUT
)
effective procedure
{}
top
transient
:
REPOSITORY_TRANSIENT
writable attribute
{}
top
has
(object_name:
STRING
):
BOOLEAN
frozen
effective function
{
ANY
}
top
Is
object_name
the name of some stored object.
require
not object_name.is_empty
at
(object_name:
STRING
): O_
frozen
effective function
{
ANY
}
top
Return the object currently associated to
object_name
.
require
has
(object_name)
ensure
Result /= Void
add
(object: O_, object_name:
STRING
)
frozen
effective procedure
{
ANY
}
top
Add a new
object
in the
Current
repository.
require
object /= Void
new_reference:
not
has
(object_name)
ensure
reference_stored:
object =
at
(object_name)
put
(object: O_, object_name:
STRING
) assign
at
frozen
effective procedure
{
ANY
}
top
Update or add a new
object
in the
Current
repository.
require
object /= Void
ensure
reference_stored:
object =
at
(object_name)
remove
(object_name:
STRING
)
effective procedure
{
ANY
}
top
Remove entry
object_name
from the
Current
repository.
require
has
(object_name)
ensure
not
has
(object_name)
count
:
INTEGER_32
effective function
{
ANY
}
top
Actual
count
of stored elements.
is_empty
:
BOOLEAN
effective function
{
ANY
}
top
Is it empty ?
ensure
Result =
count
= 0
lower
:
INTEGER_32
is 1
constant attribute
{
ANY
}
top
upper
:
INTEGER_32
effective function
{
ANY
}
top
ensure
Result =
count
valid_index
(index:
INTEGER_32
):
BOOLEAN
effective function
{
ANY
}
top
ensure
Result = index.in_range(
lower
,
upper
)
item
(index:
INTEGER_32
): O_
effective function
{
ANY
}
top
require
valid_index
(index)
ensure
Result =
at
(
key
(index))
key
(index:
INTEGER_32
):
STRING
effective function
{
ANY
}
top
require
valid_index
(index)
ensure
at
(Result) =
item
(index)
new_iterator_on_items
: ITERATOR[O_]
effective function
{
ANY
}
top
ensure
Result /= Void
new_iterator_on_keys
:
ITERATOR
[
STRING
]
effective function
{
ANY
}
top
ensure
Result /= Void
key_map_in
(buffer:
COLLECTION
[
STRING
])
effective procedure
{
ANY
}
top
Append in
buffer
, all available keys (this may be useful to speed up the traversal).
require
buffer /= Void
ensure
buffer.count =
count
+ old buffer.count
item_map_in
(buffer: COLLECTION[O_])
effective procedure
{
ANY
}
top
Append in
buffer
, all available items (this may be useful to speed up the traversal).
require
buffer /= Void
ensure
buffer.count =
count
+ old buffer.count
repository
: DICTIONARY[O_,
STRING
]
writable attribute
{}
top
objects_are_expanded
:
BOOLEAN
effective function
{}
top
valid_generating_type_for_internals
(type:
STRING
):
BOOLEAN
frozen
{}
top
require
type /= Void
ensure
Result implies not type.has_prefix("NATIVE_ARRAY")
internals_from_generating_type
(type:
STRING
):
INTERNALS
frozen
{}
top
require
valid_generating_type_for_internals
(type)
ensure
Result /= Void
Result.object_can_be_modified
valid_generating_type_for_native_array_internals
(type:
STRING
):
BOOLEAN
frozen
{}
top
require
type /= Void
ensure
Result implies type.has_prefix("NATIVE_ARRAY")
native_array_internals_from_generating_type
(type:
STRING
, capacity:
INTEGER_32
):
INTERNALS
frozen
{}
top
require
valid_generating_type_for_native_array_internals
(type)
ensure
Result /= Void
Result.object_can_be_modified
json_star
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_type
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_repository
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_version
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_data
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_refs
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_basic
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_value
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_array
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_capacity
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_layout
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_ref
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_embedded
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_type_character
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_type_boolean
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_type_integer_8
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_type_integer_16
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_type_integer_32
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_type_integer_64
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_type_integer
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_type_real_32
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_type_real_64
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_type_real_80
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_type_real_128
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_type_real_expanded
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_type_real
:
JSON_STRING
once function
{
JSON_HANDLER
}
top
json_array_element_type
(type:
ABSTRACT_STRING
):
JSON_STRING
effective function
{
JSON_HANDLER
}
top
require
type.has_prefix("NATIVE_ARRAY[")
type.has_suffix("]")
json_string
(a_string:
ABSTRACT_STRING
):
JSON_STRING
effective function
{
JSON_HANDLER
}
top
ensure
Result.is_valid
json_array_element_types
:
HASHED_DICTIONARY
[
JSON_STRING
,
FIXED_STRING
]
once function
{}
top
json_strings
:
HASHED_DICTIONARY
[
JSON_STRING
,
FIXED_STRING
]
once function
{}
top