Module: Aurum::Builder

Defined in:
lib/aurum/grammar/builder/dot_logger.rb,
lib/aurum/grammar/builder/set_of_items.rb,
lib/aurum/grammar/builder/augmented_grammar.rb,
lib/aurum/grammar/builder/lexical_table_builder.rb,
lib/aurum/grammar/builder/parsing_table_builder.rb

Defined Under Namespace

Classes: AugmentedGrammar, Configuration, DigraphTraverser, DotLogger, LRItem, LexicalTableBuilder, ParsingTableBuilder, Sources, State

Constant Summary collapse

StartSymbol =
Aurum::Grammar.nonterminal('$start')

Class Method Summary collapse

Class Method Details

.build_lexical_table(lexical_rules, states, literals, logger = nil) ⇒ Object



3
4
5
# File 'lib/aurum/grammar/builder/lexical_table_builder.rb', line 3

def Builder.build_lexical_table(lexical_rules, states, literals, logger = nil)
  LexicalTableBuilder.new(lexical_rules, states, literals).build
end

.build_parsing_table(syntax_rules, start_symbol, logger = nil) ⇒ Object



6
7
8
9
# File 'lib/aurum/grammar/builder/parsing_table_builder.rb', line 6

def Builder.build_parsing_table(syntax_rules, start_symbol, logger = nil)
  augmented_grammar = AugmentedGrammar.new(syntax_rules, start_symbol)
  ParsingTableBuilder.new(augmented_grammar, logger).build
end

.working_list(unvisited) ⇒ Object



5
6
7
# File 'lib/aurum/grammar/builder/augmented_grammar.rb', line 5

def Builder.working_list unvisited
  yield unvisited, unvisited.pop while !unvisited.empty?
end