GNU
|
Liberty Eiffel
|
Automated Tests
|
Wiki
|
Savannah project
|
Debian packages
|
Documentation
>
libraries
>
PACKRAT_LOOKAHEAD
+
Point of view
All features
ANY
PACKRAT_INTERNAL
PACKRAT_VISITOR
PACKRAT_LOOKAHEAD
All features
deferred class PACKRAT_LOOKAHEAD
Summary
top
Direct parents
Inherit list:
PACKRAT_ALTERNATIVE
Known children
Inherit list:
PACKRAT_AND
,
PACKRAT_NOT
Class invariant
top
primary
/= Void
Overview
top
Features
{
ANY
}
is_coherent
:
BOOLEAN
is_equal
(other: PACKRAT_LOOKAHEAD):
BOOLEAN
copy
(other: PACKRAT_LOOKAHEAD)
{
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
]])
set_nt
(a_nt:
PACKRAT_NON_TERMINAL
)
{}
make
(a_primary:
PACKRAT_PRIMARY
)
{
PACKRAT_LOOKAHEAD
,
PACKRAT_VISITOR
}
primary
:
PACKRAT_PRIMARY
{
ANY
}
infix "/"
(other:
PACKRAT_ALTERNATIVE
):
PACKRAT_PATTERN
{
ANY
}
hash_code
:
INTEGER_32
The hash-code value of
Current
.
positive_lookahead
:
PACKRAT_ALTERNATIVE
prefix "@"
:
PACKRAT_ALTERNATIVE
negative_lookahead
:
PACKRAT_ALTERNATIVE
prefix "~"
:
PACKRAT_ALTERNATIVE
{
ANY
}
accept
(visitor:
PACKRAT_VISITOR
)
Accept to be visited by the
visitor
.
{
PACKRAT_INTERNAL
}
parse
(context:
PACKRAT_PARSE_CONTEXT
):
TRISTATE
nt
:
PACKRAT_NON_TERMINAL
set_paren
(a_paren:
BOOLEAN
)
{
PACKRAT_INTERNAL
,
PACKRAT_VISITOR
}
need_paren
:
BOOLEAN
{}
pack_parse
(context:
PACKRAT_PARSE_CONTEXT
):
TRISTATE
{}
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
is_coherent
:
BOOLEAN
effective function
{
ANY
}
top
ensure
must_be_coherent:
Result
is_equal
(other: PACKRAT_LOOKAHEAD):
BOOLEAN
effective function
{
ANY
}
top
require
other /= Void
other /= Void
other /= Void
ensure
commutative:
generating_type = other.generating_type implies Result = other.is_equal(Current)
copy
(other: PACKRAT_LOOKAHEAD)
effective procedure
{
ANY
}
top
require
not immutable
same_dynamic_type(other)
not immutable
same_dynamic_type(other)
not immutable
same_dynamic_type(other)
ensure
is_equal(other)
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
set_nt
(a_nt:
PACKRAT_NON_TERMINAL
)
effective procedure
{
PACKRAT_INTERNAL
}
top
require
a_nt /= Void
ensure
nt = a_nt
make
(a_primary:
PACKRAT_PRIMARY
)
effective procedure
{}
top
require
a_primary /= Void
ensure
primary
= a_primary
primary
:
PACKRAT_PRIMARY
writable attribute
{
PACKRAT_LOOKAHEAD
,
PACKRAT_VISITOR
}
top
infix "/"
(other:
PACKRAT_ALTERNATIVE
):
PACKRAT_PATTERN
effective function
{
ANY
}
top
require
other /= Void
hash_code
:
INTEGER_32
effective function
{
ANY
}
top
The hash-code value of
Current
.
ensure
good_hash_value:
Result >= 0
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
accept
(visitor:
PACKRAT_VISITOR
)
deferred procedure
{
ANY
}
top
Accept to be visited by the
visitor
.
require
visitor /= Void
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
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
pack_parse
(context:
PACKRAT_PARSE_CONTEXT
):
TRISTATE
deferred function
{}
top
require
context /= Void
ensure
not Result.is_equal(
yes
) implies context.buffer.current_index = old context.buffer.current_index
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