Class: Lrama::Grammar::Binding

Inherits:
Object
  • Object
show all
Defined in:
lib/lrama/grammar/binding.rb

Instance Method Summary collapse

Constructor Details

#initialize(params, actual_args) ⇒ Binding

Returns a new instance of Binding.



11
12
13
14
# File 'lib/lrama/grammar/binding.rb', line 11

def initialize(params, actual_args)
  @actual_args = actual_args
  @param_to_arg = map_params_to_args(params, @actual_args)
end

Instance Method Details

#concatenated_args_str(token) ⇒ Object



28
29
30
# File 'lib/lrama/grammar/binding.rb', line 28

def concatenated_args_str(token)
  "#{token.rule_name}_#{token_to_args_s_values(token).join('_')}"
end

#resolve_symbol(sym) ⇒ Object



17
18
19
20
21
22
23
24
25
# File 'lib/lrama/grammar/binding.rb', line 17

def resolve_symbol(sym)
  if sym.is_a?(Lexer::Token::InstantiateRule)
    Lrama::Lexer::Token::InstantiateRule.new(
      s_value: sym.s_value, location: sym.location, args: resolved_args(sym), lhs_tag: sym.lhs_tag
    )
  else
    param_to_arg(sym)
  end
end