class Parser::Base

def initialize(builder=Parser::Builders::Default.new)

Parameters:
  • builder (Parser::Builders::Default) -- The AST builder to use.
def initialize(builder=Parser::Builders::Default.new)
  @diagnostics = Diagnostic::Engine.new
  @static_env  = StaticEnvironment.new
  # Stack that holds current parsing context
  @context = Context.new
  # Maximum numbered parameters stack
  @max_numparam_stack = MaxNumparamStack.new
  # Current argument names stack
  @current_arg_stack = CurrentArgStack.new
  # Stack of set of variables used in the current pattern
  @pattern_variables = VariablesStack.new
  # Stack of set of keys used in the current hash in pattern matchinig
  @pattern_hash_keys = VariablesStack.new
  @lexer = Lexer.new(version)
  @lexer.diagnostics = @diagnostics
  @lexer.static_env  = @static_env
  @lexer.context     = @context
  @builder = builder
  @builder.parser = self
  # Last emitted token
  @last_token = nil
  if self.class::Racc_debug_parser && ENV['RACC_DEBUG']
    @yydebug = true
  end
  reset
end