GNU
|
Liberty Eiffel
|
Automated Tests
|
Wiki
|
Savannah project
|
Debian packages
|
Documentation
>
libraries
>
PACKRAT_REFERENCE
+
Point of view
All features
ANY
PACKRAT_INTERNAL
PACKRAT_VISITOR
All features
class PACKRAT_REFERENCE
Summary
top
Direct parents
Inherit list:
PACKRAT_PRIMARY
Overview
top
Creation features
{
ANY
}
make
(a_name:
ABSTRACT_STRING
)
Features
{
ANY
}
name
:
FIXED_STRING
is_coherent
:
BOOLEAN
out_in_tagged_out_memory
Append terse printable representation of current object in
tagged_out_memory
.
accept
(visitor:
PACKRAT_VISITOR
)
Accept to be visited by the
visitor
.
{}
pack_parse
(context:
PACKRAT_PARSE_CONTEXT
):
TRISTATE
{
PACKRAT_INTERNAL
}
set_default_tree_builders
(non_terminal_builder:
PROCEDURE
[
TUPLE 2
[
FIXED_STRING
,
TRAVERSABLE
[
FIXED_STRING
]]], terminal_builder:
PROCEDURE
[
TUPLE 2
[
FIXED_STRING
,
PARSER_IMAGE
]])
{}
make
(a_name:
ABSTRACT_STRING
)
{
ANY
}
hash_code
:
INTEGER_32
The hash-code value of
Current
.
is_equal
(other: PACKRAT_REFERENCE):
BOOLEAN
Is
other
attached to an object considered equal to current object?
positive_lookahead
:
PACKRAT_ALTERNATIVE
prefix "@"
:
PACKRAT_ALTERNATIVE
negative_lookahead
:
PACKRAT_ALTERNATIVE
prefix "~"
:
PACKRAT_ALTERNATIVE
{
PACKRAT_INTERNAL
}
parse
(context:
PACKRAT_PARSE_CONTEXT
):
TRISTATE
set_nt
(a_nt:
PACKRAT_NON_TERMINAL
)
nt
:
PACKRAT_NON_TERMINAL
set_paren
(a_paren:
BOOLEAN
)
{
PACKRAT_INTERNAL
,
PACKRAT_VISITOR
}
need_paren
:
BOOLEAN
{}
log
:
LOGGER
There is one logger per concrete type; for performance reasons it is cached in each instance.
log_memory__0_
:
LOGGER
The cached logger.
{
ANY
}
yes
:
TRISTATE
no
:
TRISTATE
maybe
:
TRISTATE
name
:
FIXED_STRING
writable attribute
{
ANY
}
top
is_coherent
:
BOOLEAN
effective function
{
ANY
}
top
ensure
must_be_coherent:
Result
out_in_tagged_out_memory
effective procedure
{
ANY
}
top
Append terse printable representation of current object in
tagged_out_memory
.
require
locked:
tagged_out_locked
locked:
tagged_out_locked
locked:
tagged_out_locked
ensure
still_locked:
tagged_out_locked
not_cleared:
tagged_out_memory.count >= old tagged_out_memory.count
append_only:
old tagged_out_memory.twin.is_equal(tagged_out_memory.substring(1, old tagged_out_memory.count))
accept
(visitor:
PACKRAT_VISITOR
)
effective procedure
{
ANY
}
top
Accept to be visited by the
visitor
.
require
visitor /= Void
pack_parse
(context:
PACKRAT_PARSE_CONTEXT
):
TRISTATE
effective function
{}
top
require
context /= Void
ensure
not Result.is_equal(yes) implies context.buffer.current_index = old context.buffer.current_index
set_default_tree_builders
(non_terminal_builder:
PROCEDURE
[
TUPLE 2
[
FIXED_STRING
,
TRAVERSABLE
[
FIXED_STRING
]]], terminal_builder:
PROCEDURE
[
TUPLE 2
[
FIXED_STRING
,
PARSER_IMAGE
]])
effective procedure
{
PACKRAT_INTERNAL
}
top
make
(a_name:
ABSTRACT_STRING
)
effective procedure
{}
top
require
a_name /= Void
ensure
name
= a_name.intern
hash_code
:
INTEGER_32
effective function
{
ANY
}
top
The hash-code value of
Current
.
ensure
good_hash_value:
Result >= 0
is_equal
(other: PACKRAT_REFERENCE):
BOOLEAN
effective function
{
ANY
}
top
Is
other
attached to an object considered equal to current object?
require
other /= Void
other /= Void
other /= Void
ensure
commutative:
generating_type = other.generating_type implies Result = other.is_equal(Current)
Result implies hash_code = other.hash_code
positive_lookahead
:
PACKRAT_ALTERNATIVE
frozen
effective function
{
ANY
}
top
prefix "@"
:
PACKRAT_ALTERNATIVE
effective function
{
ANY
}
top
negative_lookahead
:
PACKRAT_ALTERNATIVE
frozen
effective function
{
ANY
}
top
prefix "~"
:
PACKRAT_ALTERNATIVE
effective function
{
ANY
}
top
parse
(context:
PACKRAT_PARSE_CONTEXT
):
TRISTATE
frozen
effective function
{
PACKRAT_INTERNAL
}
top
require
context /= Void
ensure
not Result.is_equal(
yes
) implies context.buffer.current_index = old context.buffer.current_index
set_nt
(a_nt:
PACKRAT_NON_TERMINAL
)
effective procedure
{
PACKRAT_INTERNAL
}
top
require
a_nt /= Void
ensure
nt
= a_nt
nt
:
PACKRAT_NON_TERMINAL
writable attribute
{
PACKRAT_INTERNAL
}
top
set_paren
(a_paren:
BOOLEAN
)
effective procedure
{
PACKRAT_INTERNAL
}
top
ensure
need_paren
= a_paren
need_paren
:
BOOLEAN
writable attribute
{
PACKRAT_INTERNAL
,
PACKRAT_VISITOR
}
top
log
:
LOGGER
effective function
{}
top
There is one logger per concrete type; for performance reasons it is cached in each instance.
ensure
Result /= Void
log_memory__0_
:
LOGGER
writable attribute
{}
top
The cached logger.
The ugly name is intentional. Don't use directly.
yes
:
TRISTATE
effective function
{
ANY
}
top
no
:
TRISTATE
effective function
{
ANY
}
top
maybe
:
TRISTATE
effective function
{
ANY
}
top