class Grammoire::EvaluationContext

Public Class Methods

new(grammar) click to toggle source
# File lib/grammoire/evaluation_context.rb, line 5
def initialize(grammar)
  @grammar = grammar
  with_data_points({})
end

Public Instance Methods

data(name) click to toggle source
# File lib/grammoire/evaluation_context.rb, line 14
def data(name)
  raise GrammarError.new("Data point '#{name}' doesn't exist in the evaluation context.") unless @data.has_key? name

  return @data[name]
end
eval(rule) click to toggle source
# File lib/grammoire/evaluation_context.rb, line 20
def eval(rule)
  @grammar.evaluate(rule, @data)
end
with_data_points(data) click to toggle source
# File lib/grammoire/evaluation_context.rb, line 10
def with_data_points(data)
  @data = data
end