class EIFFEL_NON_TERMINAL_NODE_IMPL
Summary
Direct parents
Inherit list: EIFFEL_NON_TERMINAL_NODE
Class invariant
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}
{}
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
name_at (index: INTEGER_32): FIXED_STRING
effective function
{ANY}
require
  • valid_index(index)
node_at (index: INTEGER_32): EIFFEL_NODE
effective function
{ANY}
require
  • valid_index(index)
valid_index (index: INTEGER_32): BOOLEAN
effective function
{ANY}
ensure
  • definition: Result = index >= lower and then index <= upper
lower: INTEGER_32
effective function
{ANY}
ensure
  • Result >= 0
upper: INTEGER_32
effective function
{ANY}
ensure
  • Result >= upper - 1
count: INTEGER_32
effective function
{ANY}
ensure
  • definition: Result = upper - lower + 1
is_empty: BOOLEAN
effective function
{ANY}
ensure
  • definition: Result = count = 0
set (index: INTEGER_32, node: EIFFEL_NODE)
effective procedure
require
  • valid_index(index)
ensure
  • node_at(index) = node
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, a_names: TRAVERSABLE[FIXED_STRING])
effective procedure
{}
ensure
writable attribute
{}
writable attribute
{}
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
{}