class EIFFEL_LIST_NODE_IMPL
Summary
Direct parents
Inherit list: EIFFEL_LIST_NODE
Insert list: TRAVERSABLE
Overview
Creation features
{EIFFEL_NODE_FACTORY}
Features
{ANY}
{EIFFEL_GRAMMAR}
{EIFFEL_NODE_HANDLER}
{}
{ANY}
{ANY}
{EIFFEL_GRAMMAR}
{EIFFEL_NODE_HANDLER}
{EIFFEL_NON_TERMINAL_NODE, EIFFEL_LIST_NODE}
{}
{ANY}
Other features:
{ANY}
Agent-based features:
{ANY}
Printing:
{ANY}
{ANY}
{}
Agent-based features:
{ANY}
{}
Indexing:
{ANY}
writable attribute
{ANY}
the name of the node in the grammar
ensure
  • name /= Void
accept (visitor: VISITOR)
effective procedure
{ANY}
Accept to be visited by the visitor.
require
  • visitor /= Void
effective function
{ANY}
Item at the corresponding index i.
See also lower, upper, valid_index.
require
    • valid_index(i)
    • valid_index(i)
lower: INTEGER_32
effective function
{ANY}
Minimum index.
See also upper, valid_index, item.
upper: INTEGER_32
effective function
{ANY}
Maximum index.
See also lower, valid_index, item.
count: INTEGER_32
effective function
{ANY}
Number of available items in the hoard.
See also is_empty
ensure
  • Result >= 0
first: EIFFEL_NODE
effective function
{ANY}
The very first item.
See also last, item.
require
    • not is_empty
    • not is_empty
ensure
  • definition: Result = item(lower)
effective function
{ANY}
The last item.
See also first, item.
require
    • not is_empty
    • not is_empty
ensure
  • definition: Result = item(upper)
is_empty: BOOLEAN
effective function
{ANY}
Is the hoard empty ?
See also count.
ensure
  • definition: Result = count = 0
add (a_child: EIFFEL_NODE)
effective procedure
ensure
  • count = old count + 1
  • first = a_child
    because the grammar is right-recursive the last child is added first

display (output: OUTPUT_STREAM, indent: INTEGER_32, p: STRING)
effective procedure
Display the node in a tree fashion in the provided output stream
generate (o: OUTPUT_STREAM)
effective procedure
Generate the node exactly as it was written, including blanks and forgotten nodes, onto the provided output stream
make (a_name: FIXED_STRING)
effective procedure
{}
ensure
writable attribute
{}
new_iterator: ITERATOR[EIFFEL_NODE]
frozen
effective function
{ANY}
ensure
  • Result /= Void
  • Result.generation = generation
source_line: INTEGER_32
effective function
{ANY}
source_column: INTEGER_32
effective function
{ANY}
source_index: INTEGER_32
effective function
{ANY}
parent: EIFFEL_NODE
writable attribute
{ANY}
the parent node
forgotten: FAST_ARRAY[EIFFEL_NODE]
writable attribute
{ANY}
used when this node is in a EIFFEL_LIST_NODE and nodes are between this node and the next one
set_forgotten (a_forgotten: FAST_ARRAY[EIFFEL_NODE])
effective procedure
ensure
generate_forgotten (o: OUTPUT_STREAM)
effective procedure
set_parent (a_parent: EIFFEL_NODE)
effective procedure
require
  • a_parent /= Void
  • parent = Void
ensure
do_indent (output: OUTPUT_STREAM, indent: INTEGER_32, p: STRING)
effective procedure
{}
enumerate: ENUMERATE[E_]
effective function
{ANY}
get_new_iterator: ITERATOR[E_]
frozen
effective function
{ANY}
This feature is obsolete: Use `new_iterator' instead. This historical SmartEiffel feature is badly named.
for_each (action: PROCEDURE[TUPLE[TUPLE 1[E_]]])
effective procedure
{ANY}
Apply action to every item of Current.
See also for_all, exists, aggregate.
require
  • action /= Void
for_all (test: FUNCTION[TUPLE[TUPLE 1[E_]]]): BOOLEAN
effective function
{ANY}
Do all items satisfy test?
See also for_each, exists, aggregate.
require
  • test /= Void
exists (test: FUNCTION[TUPLE[TUPLE 1[E_]]]): BOOLEAN
effective function
{ANY}
Does at least one item satisfy test?
See also for_each, for_all, aggregate.
require
  • test /= Void
aggregate (action: FUNCTION[TUPLE[TUPLE 2[E_, E_], E_]], initial: E_): E_
effective function
{ANY}
Aggregate all the elements starting from the initial value.
See also for_each, for_all, exists.
require
  • action /= Void
out_in_tagged_out_memory
effective procedure
{ANY}
Append terse printable representation of current object in tagged_out_memory.
require
  • 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))
generation: INTEGER_32
writable attribute
{ANY}
next_generation
effective procedure
{}
ensure
do_all (action: ROUTINE[TUPLE[TUPLE 1[E_]]])
frozen
effective procedure
{ANY}
Apply action to every item of Current.
This feature is obsolete: Use `for_each` instead. This feature is not secure because it accepts a FUNCTION, the result of which is lost.
_inline_agent1 (a: ROUTINE[TUPLE[TUPLE 1[E_]]], e: E_)
frozen
effective procedure
{}
valid_index (i: INTEGER_32): BOOLEAN
effective function
{ANY}
True when i is valid (i.e., inside actual bounds).
See also lower, upper, item.
ensure