Class: Odin::Validation::InvariantEvaluator::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/odin/validation/invariant_evaluator.rb

Overview

Parses an expression string to an AST. Document-independent.

Instance Method Summary collapse

Constructor Details

#initialize(expr) ⇒ Parser

Returns a new instance of Parser.



83
84
85
86
# File 'lib/odin/validation/invariant_evaluator.rb', line 83

def initialize(expr)
  @tokens = tokenize(expr)
  @pos = 0
end

Instance Method Details

#parseObject

Raises:



88
89
90
91
92
93
# File 'lib/odin/validation/invariant_evaluator.rb', line 88

def parse
  ast = parse_expression
  raise ParseError, "Unexpected trailing tokens" unless peek.nil?

  ast
end