Class: Treetop::Compiler::GrammarCompiler
- Inherits:
-
Object
- Object
- Treetop::Compiler::GrammarCompiler
- Defined in:
- lib/treetop/compiler/grammar_compiler.rb
Instance Method Summary collapse
- #compile(source_path, target_path = source_path.gsub(/\.(treetop|tt)\Z/, '.rb')) ⇒ Object
-
#ruby_source(source_path) ⇒ Object
compile a treetop file into ruby.
-
#ruby_source_from_string(s) ⇒ Object
compile a string containing treetop source into ruby.
Instance Method Details
#compile(source_path, target_path = source_path.gsub(/\.(treetop|tt)\Z/, '.rb')) ⇒ Object
4 5 6 7 8 |
# File 'lib/treetop/compiler/grammar_compiler.rb', line 4 def compile(source_path, target_path = source_path.gsub(/\.(treetop|tt)\Z/, '.rb')) File.open(target_path, 'w') do |target_file| target_file.write(ruby_source(source_path)) end end |
#ruby_source(source_path) ⇒ Object
compile a treetop file into ruby
11 12 13 |
# File 'lib/treetop/compiler/grammar_compiler.rb', line 11 def ruby_source(source_path) ruby_source_from_string(File.read(source_path)) end |
#ruby_source_from_string(s) ⇒ Object
compile a string containing treetop source into ruby
16 17 18 19 20 21 22 23 |
# File 'lib/treetop/compiler/grammar_compiler.rb', line 16 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 |