class MODL::Parser::Parsed::ParsedValueConditional
Class to represent a parsed grammar object
Attributes
conditionTests[RW]
valueConditionalReturns[RW]
Public Class Methods
new(global)
click to toggle source
# File lib/modl/parser/parsed.rb, line 1203 def initialize(global) @global = global @conditionTests = [] @valueConditionalReturns = [] end
Public Instance Methods
enterModl_value_conditional(ctx)
click to toggle source
# File lib/modl/parser/parsed.rb, line 1215 def enterModl_value_conditional(ctx) i = 0 ctx_modl_condition_test = ctx.modl_condition_test ctx_modl_value_conditional_return = ctx.modl_value_conditional_return while i < ctx_modl_condition_test.size condition_test = ParsedConditionTest.new @global ctx.modl_condition_test_i(i).enter_rule(condition_test) @conditionTests[i] = condition_test break if ctx.modl_value_conditional_return_i(i).nil? conditional_return = ParsedValueConditionalReturn.new @global ctx.modl_value_conditional_return_i(i).enter_rule(conditional_return) @valueConditionalReturns[i] = conditional_return if ctx_modl_value_conditional_return.size > ctx_modl_condition_test.size condition_test = ParsedConditionTest.new @global conditional_return = ParsedValueConditionalReturn.new @global ctx.modl_value_conditional_return_i(ctx_modl_value_conditional_return.size - 1).enter_rule(conditional_return) @conditionTests[i + 1] = condition_test @valueConditionalReturns[i + 1] = conditional_return end i += 1 end @result = @conditionTests[0].evaluate end
extract_hash()
click to toggle source
# File lib/modl/parser/parsed.rb, line 1209 def extract_hash return @result if @valueConditionalReturns.length == 0 return @valueConditionalReturns[0].extract_hash if @result return @valueConditionalReturns[1].extract_hash end