class Treetop::Compiler::GrammarCompiler
Public Instance Methods
compile(source_path, target_path = source_path.gsub(/\.(treetop|tt)\Z/, '.rb'))
click to toggle source
# File lib/treetop/compiler/grammar_compiler.rb, line 5 def compile(source_path, target_path = source_path.gsub(/\.(treetop|tt)\Z/, '.rb')) File.open(target_path, 'w') do |target_file| ruby = ruby_source(source_path) if ruby =~ /\A#.*\n/ ruby.sub!(/\n/, "\n"+AUTOGENERATED+"\n\n") else ruby = AUTOGENERATED+"\n\n"+ruby end target_file.write(ruby) end end
ruby_source(source_path)
click to toggle source
compile a treetop file into ruby
# File lib/treetop/compiler/grammar_compiler.rb, line 18 def ruby_source(source_path) ruby_source_from_string(File.read(source_path)) end
ruby_source_from_string(s)
click to toggle source
compile a string containing treetop source into ruby
# File lib/treetop/compiler/grammar_compiler.rb, line 23 def ruby_source_from_string(s) parser = MetagrammarParser.new result = parser.parse(s) unless result raise RuntimeError.new(parser.failure_reason) end result.compile end