Sha256: 6b20fa7d503eb257cdab43e53091a8fbbd7e1a97d7a94d318234b825fa361473
Contents?: true
Size: 992 Bytes
Versions: 1
Compression:
Stored size: 992 Bytes
Contents
module Treetop class GrammarBuilder attr_accessor :grammar include ParsingExpressionBuilderHelper def initialize(grammar) self.grammar = grammar end def build(&block) instance_eval(&block) end def root(sym) grammar.root = grammar.nonterminal_symbol(sym) end def rule(nonterminal_name, expression_or_expression_builder) nonterminal_symbol = grammar.nonterminal_symbol(nonterminal_name) parsing_expression = parsing_expression_for(expression_or_expression_builder) grammar.add_parsing_rule(nonterminal_symbol, parsing_expression) end def parsing_expression_for(expression_or_expression_builder) case expression_or_expression_builder when ParsingExpression return expression_or_expression_builder when ParsingExpressionBuilder expression_or_expression_builder.grammar = grammar return expression_or_expression_builder.build end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
treetop-0.1.0 | lib/treetop/grammar/grammar_builder.rb |