lib/lrama/grammar/parameterizing_rule/rhs.rb in lrama-0.6.9 vs lib/lrama/grammar/parameterizing_rule/rhs.rb in lrama-0.6.10

- old
+ new

@@ -1,5 +1,7 @@ +# frozen_string_literal: true + module Lrama class Grammar class ParameterizingRule class Rhs attr_accessor :symbols, :user_code, :precedence_sym @@ -11,26 +13,27 @@ end def resolve_user_code(bindings) return unless user_code + resolved = Lexer::Token::UserCode.new(s_value: user_code.s_value, location: user_code.location) var_to_arg = {} symbols.each do |sym| resolved_sym = bindings.resolve_symbol(sym) if resolved_sym != sym var_to_arg[sym.s_value] = resolved_sym.s_value end end var_to_arg.each do |var, arg| - user_code.references.each do |ref| + resolved.references.each do |ref| if ref.name == var ref.name = arg end end end - return user_code + return resolved end end end end end