class MODL::Parser::Parsed::ParsedConditionGroup

Class to represent a parsed grammar object

Attributes

conditionsTestList[RW]

Public Class Methods

new(global) click to toggle source
# File lib/modl/parser/parsed.rb, line 849
def initialize(global)
  @global = global
  @conditionsTestList = []
end

Public Instance Methods

enterModl_condition_group(ctx) click to toggle source
# File lib/modl/parser/parsed.rb, line 863
def enterModl_condition_group(ctx)
  ctx_children = ctx.children
  return if ctx_children.empty?

  last_operator = nil
  ctx_children.each do |child|
    if child.is_a? MODLParser::Modl_condition_testContext
      condition_test = ParsedConditionTest.new @global
      child.enter_rule(condition_test)
      p = OpenStruct.new
      p.a = condition_test
      p.b = last_operator
      @conditionsTestList << p
      last_operator = nil
    else
      last_operator = child.text if (child.text != '') && (child.text != '}')
    end
  end
end
evaluate() click to toggle source
# File lib/modl/parser/parsed.rb, line 854
def evaluate
  result = false
  @conditionsTestList.each do |s|
    partial = s.a.evaluate
    result |= partial
  end
  result
end