def define_context_rule(name, trace, productions)
      productions = [productions] unless productions.is_a?(Enumerable)
      context[name.to_sym] = Rule.new(name.to_sym, construct_rule(productions), trace)
    end
def define_context_rule(name, trace, productions)
      productions = [productions] unless productions.is_a?(Enumerable)
      context[name.to_sym] = Rule.new(name.to_sym, construct_rule(productions), trace)
    end
Defines a rule in the temporary evaluation context.

 @param [Symbol] name
 @param [Array] productions