module Rattler::Compiler::ParserGenerator
A ParserGenerator
generates ruby parsing code from parser models.
Constants
- GEN_METHOD_NAMES
@private
- GEN_METHOD_TYPES
@private
Public Class Methods
code_for(parser, opts={})
click to toggle source
Generate parsing code for parser
using a new {RubyGenerator} with the given options and return the generated code.
@overload code_for
(grammar, opts)
@param [Rattler::Parsers::Grammar] grammar the grammar model @return [String] the generated code
@overload code_for
(rules, opts)
@param [Rules] rules the parse rules @return [String] the generated code
@overload code_for
(rule, opts)
@param [Rule] rule the parse rule @return [String] the generated code
@overload code_for
(parser, opts)
@param [Parser] parser the parser model @return [String] the generated code
# File lib/rattler/compiler/parser_generator.rb, line 103 def self.code_for(parser, opts={}) ::Rattler::Compiler::RubyGenerator.code(opts) {|g| generate g, parser, opts } end
generate(g, parser, opts={})
click to toggle source
Generate parsing code for a parser model using a ruby generator g
.
@overload generate(g, grammar)
@param [RubyGenerator] g the ruby generator to use @param [Rattler::Parsers::Grammar] grammar the grammar model @return g
@overload generate(g, rules)
@param [RubyGenerator] g the ruby generator to use @param [Rules] rules the parse rules @return g
@overload generate(g, rule)
@param [RubyGenerator] g the ruby generator to use @param [Rule] rule the parse rule @return g
@overload generate(g, parser)
@param [RubyGenerator] g the ruby generator to use @param [Parser] parser the parser model @return g
# File lib/rattler/compiler/parser_generator.rb, line 76 def self.generate(g, parser, opts={}) unless opts[:no_optimize] parser = ::Rattler::Compiler::Optimizer.optimize(parser, opts) end GrammarGenerator.new(g).generate(parser, opts) g end