Class: MathEngine::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/parser.rb

Instance Method Summary collapse

Constructor Details

#initialize(lexer) ⇒ Parser

Returns a new instance of Parser.



5
6
7
# File 'lib/parser.rb', line 5

def initialize(lexer)
  @lexer = lexer
end

Instance Method Details

#parseObject



9
10
11
12
13
14
15
16
17
18
# File 'lib/parser.rb', line 9

def parse
  #statement = { <identifier> <assignment> } expression <end>
  #expression = term { ( <addition> | <subtraction> ) term }
  #term = exp { ( <multiplication> | <division> ) exp }
  #exp = factor { ( <exponent> | <modulus> ) factor }
  #factor = <call> | <identifier> | <number> | ( <open_parenthesis> expression <close_parenthesis> )
  #call = <identifier> <open_parenthesis> { call_parameter } <close_parenthesis>
  #call_parameter = <expression> { <comma> call_parameter }
  statement
end