class Rubasteme::Parser::Parser

Public Class Methods

new() click to toggle source
# File lib/rubasteme/parser.rb, line 43
def initialize
  @p1 = Phase1Parser.new
  @p2 = Phase2Parser.new
end
version() click to toggle source
# File lib/rubasteme/parser.rb, line 35
def self.version
  Rubasteme::Parser.send(:version)
end

Public Instance Methods

parse(lexer) click to toggle source
# File lib/rubasteme/parser.rb, line 48
def parse(lexer)
  return [] if lexer.nil?
  ast_program = AST.instantiate(:ast_program)
  Kernel.loop{ast_program << @p2.parse(@p1.parse(lexer))}
  ast_program
end
version() click to toggle source
# File lib/rubasteme/parser.rb, line 39
def version
  self.class.version
end