+
Point of view
All features
class PACKRAT_DEFAULT_REDUCER
Summary
Direct parents
Inherit list: PACKRAT_REDUCER
Insert list: LOGGING, PACKRAT_FEATURES
Class invariant
Overview
Creation features
{PACKRAT_GRAMMAR}
Features
{}
{PACKRAT_GRAMMAR}
{PACKRAT_GRAMMAR}
build the grammar
{}
Tune exports to your liking if need be
{}
{}
{}
low-level image memory
{}
buffer moves
{}
{}
  • 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.
make
effective procedure
{}
effective function
ensure
  • useful: Result.is_coherent
reduce_nonterminal_def
effective procedure
reduce_grammar
effective procedure
reduce_pattern_first_alternative
effective procedure
reduce_pattern_alternative
effective procedure
reduce_pattern
effective procedure
reduce_pattern_map (alt: PACKRAT_ALTERNATIVE)
effective procedure
reduce_alternative_lookahead
effective procedure
reduce_alternative_suffix_tag
effective procedure
reduce_alternative_tag
effective procedure
reduce_alternative
effective procedure
reduce_quantifier
effective procedure
reduce_suffix
effective procedure
reduce_primary_as_nested_pattern
effective procedure
reduce_primary_as_any
effective procedure
reduce_primary_as_literal
effective procedure
reduce_primay_as_charclass
effective procedure
reduce_primary_as_nonterminal
effective procedure
reduce_literal_start
effective procedure
reduce_literal_string
effective procedure
reduce_literal
effective procedure
reduce_tag_start
effective procedure
reduce_tag_string
effective procedure
reduce_tag
effective procedure
reduce_charclass_start
effective procedure
reduce_charclass_range
effective procedure
reduce_charclass_char
effective procedure
reduce_charclass_class
effective procedure
reduce_charclass
effective procedure
reduce_nonterminal_name
effective procedure
reduce_nonterminal
effective procedure
reduce_space
effective procedure
reduce_image_left_arrow (image: PARSER_IMAGE)
effective procedure
require
  • image /= Void
reduce_image_slash (image: PARSER_IMAGE)
effective procedure
require
  • image /= Void
reduce_image_not_and (image: PARSER_IMAGE)
effective procedure
require
  • image /= Void
reduce_image_star_plus_why (image: PARSER_IMAGE)
effective procedure
require
  • image /= Void
reduce_image_open_paren (image: PARSER_IMAGE)
effective procedure
require
  • image /= Void
reduce_image_close_paren (image: PARSER_IMAGE)
effective procedure
require
  • image /= Void
reduce_image_anychar (image: PARSER_IMAGE)
effective procedure
require
  • image /= Void
reduce_image_letter (image: PARSER_IMAGE)
effective procedure
require
  • image /= Void
reduce_image_regex (image: PARSER_IMAGE)
effective procedure
reduce_image_string (image: PARSER_IMAGE)
effective procedure
require
  • image /= Void
reduce_image_quote (image: PARSER_IMAGE)
effective procedure
require
  • image /= Void
reduce_image_hyphen (image: PARSER_IMAGE)
effective procedure
require
  • image /= Void
reduce_image_dot (image: PARSER_IMAGE)
effective procedure
require
  • image /= Void
reduce_image_open_bracket (image: PARSER_IMAGE)
effective procedure
require
  • image /= Void
reduce_image_close_bracket (image: PARSER_IMAGE)
effective procedure
require
  • image /= Void
reduce_image_open_curly (image: PARSER_IMAGE)
effective procedure
require
  • image /= Void
reduce_image_close_curly (image: PARSER_IMAGE)
effective procedure
require
  • image /= Void
reduce_image_space (image: PARSER_IMAGE)
effective procedure
require
  • image /= Void
last_pattern: PACKRAT_PATTERN
writable attribute
{}
writable attribute
{}
last_alternative: FAST_ARRAY[PACKRAT_PRIMARY]
writable attribute
{}
first_alternative: FAST_ARRAY[PACKRAT_PRIMARY]
writable attribute
{}
last_primary: PACKRAT_PRIMARY
writable attribute
{}
last_quantifier: INTEGER_8
writable attribute
{}
last_lookahead: INTEGER_8
writable attribute
{}
last_image: STRING
writable attribute
{}
last_nonterminal_def: STRING
writable attribute
{}
last_nonterminal_name: STRING
writable attribute
{}
last_charclass: STRING
writable attribute
{}
last_literal: STRING
writable attribute
{}
last_tag: STRING
writable attribute
{}
lookahead_none: INTEGER_8
is 0
constant attribute
{}
lookahead_and: INTEGER_8
is 1
constant attribute
{}
lookahead_not: INTEGER_8
is 2
constant attribute
{}
add_atom (a_name: FIXED_STRING, a_atom: PARSE_ATOM[PACKRAT_PARSE_CONTEXT])
effective procedure
{}
require
  • a_name /= Void
  • a_atom /= Void
  • atom(a_name) = Void
ensure
  • atom(a_name) = a_atom
effective function
{}
require
  • a_name /= Void
reset_nonterminal_def
effective procedure
{}
reset_image
effective procedure
{}
reset_quantifier
effective procedure
{}
reset_lookahead
effective procedure
{}
reset_alternative
effective procedure
{}
reset_choice
effective procedure
{}
reset_pattern
effective procedure
{}
reset_tag
effective procedure
{}
reset_build_data
effective procedure
{}
save_pattern
effective procedure
{}
restore_pattern
effective procedure
{}
one: INTEGER_8
is 0
constant attribute
{}
zero_or_one: INTEGER_8
is 1
constant attribute
{}
zero_or_more: INTEGER_8
is 2
constant attribute
{}
one_or_more: INTEGER_8
is 3
constant attribute
{}
seq (a_primaries: TRAVERSABLE[PACKRAT_PRIMARY], a_how_many: INTEGER_8, a_tag: ABSTRACT_STRING, a_action: PROCEDURE[TUPLE]): PACKRAT_ALTERNATIVE
effective function
{}
require
ref (a_atom_name: ABSTRACT_STRING): PACKRAT_PRIMARY
effective function
{}
require
  • a_atom_name /= Void
reset_features
effective procedure
{}
parse_any (buffer: MINI_PARSER_BUFFER): PACKRAT_IMAGE
effective function
{}
parse_regex (buffer: MINI_PARSER_BUFFER, regex: REGULAR_EXPRESSION): PACKRAT_IMAGE
effective function
{}
the regex must parse exactly one character
parse_string (buffer: MINI_PARSER_BUFFER, string: STRING): PACKRAT_IMAGE
effective function
{}
once function
{}
next_character (buffer: MINI_PARSER_BUFFER)
effective procedure
{}
restore (buffer: MINI_PARSER_BUFFER, a_position: PACKRAT_POSITION)
effective procedure
{}
position: PACKRAT_POSITION
writable attribute
{}
new_image (char: CHARACTER): PACKRAT_IMAGE
effective function
{}
log: LOGGER
effective function
{}
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
{}
The cached logger.
The ugly name is intentional. Don't use directly.