Class: Mxrb::Runtime::Native::Expression::Parser
- Inherits:
-
Object
- Object
- Mxrb::Runtime::Native::Expression::Parser
- Defined in:
- lib/mxrb/runtime/native.rb
Overview
Recursive-descent parser for the expression subset used by native microflows. It deliberately accepts syntax, not arbitrary Ruby code.
Constant Summary collapse
- COMPARISONS =
{ '=' => ->(left, right) { left == right }, '!=' => ->(left, right) { left != right }, '>' => ->(left, right) { left > right }, '<' => ->(left, right) { left < right }, '>=' => ->(left, right) { left >= right }, '<=' => ->(left, right) { left <= right } }.freeze
Instance Method Summary collapse
-
#initialize(tokens, expression, variables, node) ⇒ Parser
constructor
A new instance of Parser.
- #parse ⇒ Object
Constructor Details
#initialize(tokens, expression, variables, node) ⇒ Parser
Returns a new instance of Parser.
289 290 291 292 293 294 295 296 |
# File 'lib/mxrb/runtime/native.rb', line 289 def initialize(tokens, expression, variables, node) @tokens = tokens @index = 0 @expression = expression @variables = variables @node = node advance end |
Instance Method Details
#parse ⇒ Object
298 299 300 301 302 303 |
# File 'lib/mxrb/runtime/native.rb', line 298 def parse value = parse_or raise ArgumentError unless @token == :eof value end |