Sha256: 0fbc6f2dc6a5afd6e06a69d364a942c803f9d8a202d1ed19e76a1ef8a803c378
Contents?: true
Size: 881 Bytes
Versions: 1
Compression:
Stored size: 881 Bytes
Contents
module Treetop module Compiler class Grammar < Runtime::SyntaxNode def compile builder = RubyBuilder.new builder.module_declaration "#{grammar_name.text_value}" do builder.in(indent_level) # account for initial indentation of grammar declaration builder << "include Treetop::Runtime" builder.newline declaration_sequence.compile(builder) builder.newline builder.class_declaration "Parser < Treetop::Runtime::CompiledParser" do builder << "include #{grammar_name.text_value}" end end builder.newline builder << "#{parser_name} = #{grammar_name.text_value}::Parser" end def indent_level input.column_of(interval.begin) - 1 end def parser_name grammar_name.text_value + 'Parser' end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
treetop-1.6.14 | lib/treetop/compiler/node_classes/grammar.rb |