Sha256: 135d16fba20f9e7caf6ccbf185ded9ab80c43d9e0e2a66438cb16029a3b30a7b
Contents?: true
Size: 977 Bytes
Versions: 1
Compression:
Stored size: 977 Bytes
Contents
module Treetop class Protometagrammar class GrammarExpressionBuilder < ParsingExpressionBuilder def build seq('grammar', :space, grammar_name, :parsing_rule_sequence, optional(:space), 'end') do def value grammar = Grammar.new(grammar_name) parsing_rules(grammar).each do |parsing_rule| grammar.add_parsing_rule(parsing_rule) end return grammar end def grammar_name name_string = elements[2].text_value.chop if name_string.empty? nil else name_string.to_sym end end def parsing_rules(grammar) elements[3].value(grammar) end end end def grammar_name optional( seq(char_class('A-Z'), zero_or_more(char_class('a-z0-9_')), :space)) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
treetop-0.1.0 | lib/treetop/protometagrammar/grammar_expression_builder.rb |