module Minjs::Lex::Program
14 Program
Public Instance Methods
program(var_env)
click to toggle source
Tests next literals sequence is Program
or not.
If sequence is Program
return ECMA262::Prog
object and forward lexical parser position. Otherwise return nil and position is not changed.
@return [ECMA262::Prog] element
@see www.ecma-international.org/ecma-262 ECMA262
14
# File lib/minjs/lex/program.rb, line 18 def program(var_env) prog = source_elements(var_env) if eof? return prog else raise ParseError.new("unexpceted token", self) end end
source_elements(var_env)
click to toggle source
Tests next literals sequence is SourceElements or not.
If sequence is SourceElements return ECMA262::SourceElements
object and forward lexical parser position. Otherwise return nil and position is not changed.
@return [ECMA262::SourceElements] element
@see www.ecma-international.org/ecma-262 ECMA262
14
# File lib/minjs/lex/program.rb, line 37 def source_elements(var_env) prog = [] while t = source_element(var_env) prog.push(t) end ECMA262::Prog.new(var_env, ECMA262::SourceElements.new(prog)) end
Private Instance Methods
source_element(var_env)
click to toggle source
# File lib/minjs/lex/program.rb, line 45 def source_element(var_env) #eval_lit{ statement(var_env) #} or eval_lit{ => statement # func_declaration(var_env) #} end