lrama 0.6.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yaml +20 -5
  3. data/Gemfile +1 -1
  4. data/NEWS.md +46 -0
  5. data/Steepfile +2 -3
  6. data/lib/lrama/command.rb +17 -3
  7. data/lib/lrama/context.rb +2 -22
  8. data/lib/lrama/grammar/binding.rb +24 -0
  9. data/lib/lrama/grammar/code/rule_action.rb +1 -1
  10. data/lib/lrama/grammar/parameterizing_rule/resolver.rb +39 -0
  11. data/lib/lrama/grammar/parameterizing_rule/rhs.rb +15 -0
  12. data/lib/lrama/grammar/parameterizing_rule/rule.rb +16 -0
  13. data/lib/lrama/grammar/parameterizing_rule.rb +3 -6
  14. data/lib/lrama/grammar/percent_code.rb +3 -3
  15. data/lib/lrama/grammar/rule_builder.rb +59 -25
  16. data/lib/lrama/grammar/type.rb +13 -1
  17. data/lib/lrama/grammar.rb +7 -9
  18. data/lib/lrama/lexer/grammar_file.rb +1 -1
  19. data/lib/lrama/lexer/token/instantiate_rule.rb +7 -2
  20. data/lib/lrama/lexer/token.rb +5 -0
  21. data/lib/lrama/lexer.rb +2 -7
  22. data/lib/lrama/output.rb +2 -2
  23. data/lib/lrama/parser.rb +166 -148
  24. data/lib/lrama/version.rb +1 -1
  25. data/parser.y +8 -8
  26. data/sig/lrama/grammar/binding.rbs +16 -0
  27. data/sig/lrama/grammar/parameterizing_rule/resolver.rbs +21 -0
  28. data/sig/lrama/grammar/parameterizing_rule/rhs.rbs +13 -0
  29. data/sig/lrama/grammar/parameterizing_rule/rule.rbs +14 -0
  30. data/sig/lrama/grammar/parameterizing_rule.rbs +0 -4
  31. data/sig/lrama/grammar/percent_code.rbs +3 -3
  32. data/sig/lrama/grammar/rule_builder.rbs +9 -6
  33. data/sig/lrama/lexer/token/instantiate_rule.rbs +4 -2
  34. data/sig/lrama/lexer/token.rbs +1 -0
  35. metadata +11 -9
  36. data/lib/lrama/grammar/parameterizing_rule_builder.rb +0 -34
  37. data/lib/lrama/grammar/parameterizing_rule_resolver.rb +0 -30
  38. data/lib/lrama/grammar/parameterizing_rule_rhs_builder.rb +0 -53
  39. data/sig/lrama/grammar/parameterizing_rule_builder.rbs +0 -19
  40. data/sig/lrama/grammar/parameterizing_rule_resolver.rbs +0 -16
  41. data/sig/lrama/grammar/parameterizing_rule_rhs_builder.rbs +0 -18
data/parser.y CHANGED
@@ -205,8 +205,8 @@ rule
205
205
 
206
206
  rule_declaration: "%rule" IDENTIFIER "(" rule_args ")" ":" rule_rhs_list
207
207
  {
208
- builder = Grammar::ParameterizingRuleBuilder.new(val[1].s_value, val[3], val[6])
209
- @grammar.add_parameterizing_rule_builder(builder)
208
+ rule = Grammar::ParameterizingRule::Rule.new(val[1].s_value, val[3], val[6])
209
+ @grammar.add_parameterizing_rule(rule)
210
210
  }
211
211
 
212
212
  rule_args: IDENTIFIER { result = [val[0]] }
@@ -226,12 +226,12 @@ rule
226
226
  rule_rhs: /* empty */
227
227
  {
228
228
  reset_precs
229
- result = Grammar::ParameterizingRuleRhsBuilder.new
229
+ result = Grammar::ParameterizingRule::Rhs.new
230
230
  }
231
231
  | "%empty"
232
232
  {
233
233
  reset_precs
234
- result = Grammar::ParameterizingRuleRhsBuilder.new
234
+ result = Grammar::ParameterizingRule::Rhs.new
235
235
  }
236
236
  | rule_rhs symbol named_ref_opt
237
237
  {
@@ -408,19 +408,17 @@ rule
408
408
  }
409
409
  | rhs symbol parameterizing_suffix tag_opt
410
410
  {
411
- token = Lrama::Lexer::Token::InstantiateRule.new(s_value: val[2], location: @lexer.location, args: [val[1]])
411
+ token = Lrama::Lexer::Token::InstantiateRule.new(s_value: val[2], location: @lexer.location, args: [val[1]], lhs_tag: val[3])
412
412
  builder = val[0]
413
413
  builder.add_rhs(token)
414
- builder.lhs_tag = val[3]
415
414
  builder.line = val[1].first_line
416
415
  result = builder
417
416
  }
418
417
  | rhs IDENTIFIER "(" parameterizing_args ")" tag_opt
419
418
  {
420
- token = Lrama::Lexer::Token::InstantiateRule.new(s_value: val[1].s_value, location: @lexer.location, args: val[3])
419
+ token = Lrama::Lexer::Token::InstantiateRule.new(s_value: val[1].s_value, location: @lexer.location, args: val[3], lhs_tag: val[5])
421
420
  builder = val[0]
422
421
  builder.add_rhs(token)
423
- builder.lhs_tag = val[5]
424
422
  builder.line = val[1].first_line
425
423
  result = builder
426
424
  }
@@ -459,6 +457,8 @@ rule
459
457
 
460
458
  parameterizing_args: symbol { result = [val[0]] }
461
459
  | parameterizing_args ',' symbol { result = val[0].append(val[2]) }
460
+ | symbol parameterizing_suffix { result = [Lrama::Lexer::Token::InstantiateRule.new(s_value: val[1].s_value, location: @lexer.location, args: val[0])] }
461
+ | IDENTIFIER "(" parameterizing_args ")" { result = [Lrama::Lexer::Token::InstantiateRule.new(s_value: val[0].s_value, location: @lexer.location, args: val[2])] }
462
462
 
463
463
  named_ref_opt: # empty
464
464
  | '[' IDENTIFIER ']' { result = val[1].s_value }
@@ -0,0 +1,16 @@
1
+ module Lrama
2
+ class Grammar
3
+ class Binding
4
+ attr_reader actual_args: Array[Lexer::Token]
5
+ attr_reader count: Integer
6
+
7
+ @rule_name: String
8
+ @required_parameters_count: Integer
9
+ @parameters: Array[Lexer::Token]
10
+ @parameter_to_arg: untyped
11
+
12
+ def initialize: (Grammar::ParameterizingRule::Rule parameterizing_rule, Array[Lexer::Token] actual_args) -> void
13
+ def resolve_symbol: (Lexer::Token symbol) -> Lexer::Token
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,21 @@
1
+ module Lrama
2
+ class Grammar
3
+ class ParameterizingRule
4
+ class Resolver
5
+ attr_accessor created_lhs_list: Array[Lexer::Token]
6
+
7
+ @rules: Array[Grammar::ParameterizingRule::Rule]
8
+
9
+ def initialize: () -> void
10
+ def add_parameterizing_rule: (Grammar::ParameterizingRule::Rule rule) -> void
11
+ def defined?: (Lexer::Token::InstantiateRule token) -> bool
12
+ def find: (Lexer::Token::InstantiateRule token) -> Grammar::ParameterizingRule::Rule?
13
+ def created_lhs: (String lhs_s_value) -> Lexer::Token?
14
+
15
+ private
16
+
17
+ def select_rules: (Lexer::Token::InstantiateRule token) -> Array[Grammar::ParameterizingRule::Rule]
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,13 @@
1
+ module Lrama
2
+ class Grammar
3
+ class ParameterizingRule
4
+ class Rhs
5
+ attr_reader symbols: Array[untyped]
6
+ attr_reader user_code: Lexer::Token::UserCode?
7
+ attr_reader precedence_sym: Lexer::Token?
8
+
9
+ def initialize: () -> void
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ module Lrama
2
+ class Grammar
3
+ class ParameterizingRule
4
+ class Rule
5
+ attr_reader name: String
6
+ attr_reader parameters: Array[Lexer::Token]
7
+ attr_reader rhs_list: Array[Grammar::ParameterizingRule::Rhs]
8
+ attr_reader required_parameters_count: Integer
9
+
10
+ def initialize: (String name, Array[Lexer::Token] parameters, Array[Grammar::ParameterizingRule::Rhs] rhs_list) -> void
11
+ end
12
+ end
13
+ end
14
+ end
@@ -1,10 +1,6 @@
1
1
  module Lrama
2
2
  class Grammar
3
3
  class ParameterizingRule
4
- attr_accessor rules: Array[Rule]
5
- attr_accessor token: Lexer::Token
6
-
7
- def initialize: (?untyped rules, Lexer::Token token) -> void
8
4
  end
9
5
  end
10
6
  end
@@ -1,10 +1,10 @@
1
1
  module Lrama
2
2
  class Grammar
3
3
  class PercentCode
4
- attr_reader id: Lexer::Token::Ident
5
- attr_reader code: Lexer::Token::UserCode
4
+ attr_reader name: String
5
+ attr_reader code: String
6
6
 
7
- def initialize: (Lexer::Token::Ident id, Lexer::Token::UserCode code) -> void
7
+ def initialize: (String name, String code) -> void
8
8
  end
9
9
  end
10
10
  end
@@ -2,8 +2,8 @@ module Lrama
2
2
  class Grammar
3
3
  class RuleBuilder
4
4
  attr_accessor lhs: Lexer::Token
5
- attr_accessor lhs_tag: untyped
6
5
  attr_accessor line: Integer?
6
+ attr_reader lhs_tag: Lexer::Token::Tag?
7
7
  attr_reader rhs: Array[Lexer::Token]
8
8
  attr_reader user_code: Lexer::Token::UserCode?
9
9
  attr_reader precedence_sym: Lexer::Token?
@@ -13,18 +13,20 @@ module Lrama
13
13
  @position_in_original_rule_rhs: Integer?
14
14
  @skip_preprocess_references: bool
15
15
  @user_code: Lexer::Token::UserCode?
16
+ @rule_builders_for_parameterizing_rules: Array[RuleBuilder]
16
17
  @rule_builders_for_derived_rules: Array[RuleBuilder]
17
18
  @rules: Array[Rule]
18
19
  @replaced_rhs: Array[Lexer::Token]
19
20
  @parameterizing_rules: Array[Rule]
21
+ @old_parameterizing_rules: Array[Rule]
20
22
  @midrule_action_rules: Array[Rule]
21
23
 
22
- def initialize: (Counter rule_counter, Counter midrule_action_counter, ?Integer position_in_original_rule_rhs, ?skip_preprocess_references: bool) -> void
24
+ def initialize: (Counter rule_counter, Counter midrule_action_counter, ?Integer position_in_original_rule_rhs, ?lhs_tag: Lexer::Token::Tag?, ?skip_preprocess_references: bool) -> void
23
25
  def add_rhs: (Lexer::Token rhs) -> void
24
- def user_code=: (Lexer::Token::UserCode user_code) -> void
25
- def precedence_sym=: (Lexer::Token user_code) -> void
26
+ def user_code=: (Lexer::Token::UserCode? user_code) -> void
27
+ def precedence_sym=: (Lexer::Token? precedence_sym) -> void
26
28
  def complete_input: () -> void
27
- def setup_rules: (Grammar::ParameterizingRuleResolver parameterizing_resolver) -> void
29
+ def setup_rules: (Grammar::ParameterizingRule::Resolver parameterizing_rule_resolver) -> void
28
30
  def rules: () -> Array[Rule]
29
31
 
30
32
  private
@@ -32,7 +34,8 @@ module Lrama
32
34
  def freeze_rhs: () -> void
33
35
  def preprocess_references: () -> void
34
36
  def build_rules: () -> void
35
- def process_rhs: (Grammar::ParameterizingRuleResolver parameterizing_resolver) -> void
37
+ def process_rhs: (Grammar::ParameterizingRule::Resolver parameterizing_rule_resolver) -> void
38
+ def lhs_s_value: (Lexer::Token::InstantiateRule token, Grammar::Binding bindings) -> String
36
39
  def numberize_references: () -> void
37
40
  def flush_user_code: () -> void
38
41
  end
@@ -2,10 +2,12 @@ module Lrama
2
2
  class Lexer
3
3
  class Token
4
4
  class InstantiateRule < Token
5
- attr_accessor args: Array[Lexer::Token]
5
+ attr_reader args: Array[Lexer::Token]
6
+ attr_reader lhs_tag: Lexer::Token::Tag?
6
7
 
7
- def initialize: (s_value: String, ?alias_name: String, ?location: Location, ?args: Array[Lexer::Token]) -> void
8
+ def initialize: (s_value: String, ?alias_name: String, ?location: Location, ?args: Array[Lexer::Token], ?lhs_tag: Lexer::Token::Tag?) -> void
8
9
  def rule_name: () -> String
10
+ def args_count: () -> Integer
9
11
  end
10
12
  end
11
13
  end
@@ -17,6 +17,7 @@ module Lrama
17
17
  def last_column: () -> Integer
18
18
  alias line first_line
19
19
  alias column first_column
20
+ def invalid_ref: (Lrama::Grammar::Reference ref, String message) -> bot
20
21
  end
21
22
  end
22
23
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lrama
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yuichiro Kaneko
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-12-25 00:00:00.000000000 Z
11
+ date: 2024-01-13 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: LALR (1) parser generator written by Ruby
14
14
  email:
@@ -48,6 +48,7 @@ files:
48
48
  - lib/lrama/digraph.rb
49
49
  - lib/lrama/grammar.rb
50
50
  - lib/lrama/grammar/auxiliary.rb
51
+ - lib/lrama/grammar/binding.rb
51
52
  - lib/lrama/grammar/code.rb
52
53
  - lib/lrama/grammar/code/initial_action_code.rb
53
54
  - lib/lrama/grammar/code/no_reference_code.rb
@@ -56,9 +57,9 @@ files:
56
57
  - lib/lrama/grammar/counter.rb
57
58
  - lib/lrama/grammar/error_token.rb
58
59
  - lib/lrama/grammar/parameterizing_rule.rb
59
- - lib/lrama/grammar/parameterizing_rule_builder.rb
60
- - lib/lrama/grammar/parameterizing_rule_resolver.rb
61
- - lib/lrama/grammar/parameterizing_rule_rhs_builder.rb
60
+ - lib/lrama/grammar/parameterizing_rule/resolver.rb
61
+ - lib/lrama/grammar/parameterizing_rule/rhs.rb
62
+ - lib/lrama/grammar/parameterizing_rule/rule.rb
62
63
  - lib/lrama/grammar/parameterizing_rules/builder.rb
63
64
  - lib/lrama/grammar/parameterizing_rules/builder/base.rb
64
65
  - lib/lrama/grammar/parameterizing_rules/builder/list.rb
@@ -112,14 +113,15 @@ files:
112
113
  - sig/lrama/bitmap.rbs
113
114
  - sig/lrama/digraph.rbs
114
115
  - sig/lrama/grammar.rbs
116
+ - sig/lrama/grammar/binding.rbs
115
117
  - sig/lrama/grammar/code.rbs
116
118
  - sig/lrama/grammar/code/printer_code.rbs
117
119
  - sig/lrama/grammar/counter.rbs
118
120
  - sig/lrama/grammar/error_token.rbs
119
121
  - sig/lrama/grammar/parameterizing_rule.rbs
120
- - sig/lrama/grammar/parameterizing_rule_builder.rbs
121
- - sig/lrama/grammar/parameterizing_rule_resolver.rbs
122
- - sig/lrama/grammar/parameterizing_rule_rhs_builder.rbs
122
+ - sig/lrama/grammar/parameterizing_rule/resolver.rbs
123
+ - sig/lrama/grammar/parameterizing_rule/rhs.rbs
124
+ - sig/lrama/grammar/parameterizing_rule/rule.rbs
123
125
  - sig/lrama/grammar/parameterizing_rules/builder.rbs
124
126
  - sig/lrama/grammar/parameterizing_rules/builder/base.rbs
125
127
  - sig/lrama/grammar/parameterizing_rules/builder/list.rbs
@@ -168,7 +170,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
168
170
  - !ruby/object:Gem::Version
169
171
  version: '0'
170
172
  requirements: []
171
- rubygems_version: 3.5.1
173
+ rubygems_version: 3.5.3
172
174
  signing_key:
173
175
  specification_version: 4
174
176
  summary: LALR (1) parser generator written by Ruby
@@ -1,34 +0,0 @@
1
- module Lrama
2
- class Grammar
3
- class ParameterizingRuleBuilder
4
- attr_reader :name, :parameters, :rhs
5
-
6
- def initialize(name, parameters, rhs)
7
- @name = name
8
- @parameters = parameters
9
- @rhs = rhs
10
- @required_parameters_count = parameters.count
11
- end
12
-
13
- def build_rules(token, actual_args, rule_counter, lhs_tag, line, rule_builders)
14
- validate_argument_number!(token)
15
- lhs = lhs(actual_args)
16
- @rhs.map do |rhs|
17
- rhs.build_rules(token, actual_args, parameters, rule_counter, lhs, lhs_tag, line, rule_builders)
18
- end.flatten
19
- end
20
-
21
- private
22
-
23
- def validate_argument_number!(token)
24
- unless @required_parameters_count == token.args.count
25
- raise "Invalid number of arguments. expect: #{@required_parameters_count} actual: #{token.args.count}"
26
- end
27
- end
28
-
29
- def lhs(actual_args)
30
- Lrama::Lexer::Token::Ident.new(s_value: "#{name}_#{actual_args.map(&:s_value).join('_')}")
31
- end
32
- end
33
- end
34
- end
@@ -1,30 +0,0 @@
1
- module Lrama
2
- class Grammar
3
- class ParameterizingRuleResolver
4
- def initialize
5
- @parameterizing_rule_builders = []
6
- end
7
-
8
- def add_parameterizing_rule_builder(builder)
9
- @parameterizing_rule_builders << builder
10
- end
11
-
12
- def defined?(name)
13
- !rule_builders(name).empty?
14
- end
15
-
16
- def build_rules(token, rule_counter, lhs_tag, line)
17
- builder = rule_builders(token.s_value).last
18
- raise "Unknown parameterizing rule #{token.s_value} at line #{token.line}" unless builder
19
-
20
- builder.build_rules(token, token.args, rule_counter, lhs_tag, line, @parameterizing_rule_builders)
21
- end
22
-
23
- private
24
-
25
- def rule_builders(name)
26
- @parameterizing_rule_builders.select { |builder| builder.name == name }
27
- end
28
- end
29
- end
30
- end
@@ -1,53 +0,0 @@
1
- module Lrama
2
- class Grammar
3
- class ParameterizingRuleRhsBuilder
4
- attr_accessor :symbols, :user_code, :precedence_sym
5
-
6
- def initialize
7
- @symbols = []
8
- @user_code = nil
9
- @precedence_sym = nil
10
- end
11
-
12
- def build_rules(token, actual_args, parameters, rule_counter, lhs, lhs_tag, line, rule_builders)
13
- nested_rules = build_nested_rules(token, actual_args, parameters, rule_counter, lhs_tag, line, rule_builders)
14
- rule = Rule.new(id: rule_counter.increment, _lhs: lhs, _rhs: rhs(token, actual_args, parameters, nested_rules.last), lhs_tag: lhs_tag, token_code: user_code, precedence_sym: precedence_sym, lineno: line)
15
- ParameterizingRule.new(rules: nested_rules.map(&:rules) + [rule], token: lhs)
16
- end
17
-
18
- private
19
-
20
- def build_nested_rules(token, actual_args, parameters, rule_counter, lhs_tag, line, rule_builders)
21
- symbols.each_with_index.map do |sym, i|
22
- next unless sym.is_a?(Lexer::Token::InstantiateRule)
23
-
24
- builder = rule_builders.select { |builder| builder.name == sym.s_value }.last
25
- raise "Unknown parameterizing rule #{token.s_value} at line #{token.line}" unless builder
26
-
27
- builder.build_rules(sym, nested_actual_args(actual_args, parameters, i), rule_counter, lhs_tag, line, rule_builders)
28
- end.flatten.compact
29
- end
30
-
31
- def nested_actual_args(actual_args, parameters, idx)
32
- symbols[idx].args.map do |arg|
33
- i = parameters.index { |parameter| parameter.s_value == arg.s_value }
34
- i.nil? ? arg : actual_args[i]
35
- end
36
- end
37
-
38
- def rhs(token, actual_args, parameters, nested_rule)
39
- symbols.map do |sym|
40
- if sym.is_a?(Lexer::Token::InstantiateRule)
41
- sym.args.map do |arg|
42
- idx = parameters.index { |parameter| parameter.s_value == arg.s_value }
43
- idx.nil? ? sym : nested_rule&.token
44
- end
45
- else
46
- idx = parameters.index { |parameter| parameter.s_value == sym.s_value }
47
- idx.nil? ? sym : actual_args[idx]
48
- end
49
- end.flatten
50
- end
51
- end
52
- end
53
- end
@@ -1,19 +0,0 @@
1
- module Lrama
2
- class Grammar
3
- class ParameterizingRuleBuilder
4
- attr_reader name: String
5
- attr_reader parameters: Array[Lexer::Token]
6
- attr_reader rhs: Array[Grammar::ParameterizingRuleRhsBuilder]
7
-
8
- @required_parameters_count: Integer
9
-
10
- def initialize: (String name, Array[Lexer::Token] parameters, Array[Grammar::ParameterizingRuleRhsBuilder] rhs) -> void
11
- def build_rules: (Lexer::Token::InstantiateRule token, Array[Lexer::Token] actual_args, Counter rule_counter, untyped lhs_tag, Integer? line, Array[ParameterizingRuleBuilder] rule_builders) -> Array[Grammar::ParameterizingRule]
12
-
13
- private
14
-
15
- def validate_argument_number!: (Lexer::Token::InstantiateRule token) -> void
16
- def lhs: (Array[Lexer::Token] actual_args) -> Lexer::Token
17
- end
18
- end
19
- end
@@ -1,16 +0,0 @@
1
- module Lrama
2
- class Grammar
3
- class ParameterizingRuleResolver
4
- @parameterizing_rule_builders: Array[Grammar::ParameterizingRuleBuilder]
5
-
6
- def initialize: () -> void
7
- def add_parameterizing_rule_builder: (Grammar::ParameterizingRuleBuilder builder) -> void
8
- def defined?: (String) -> bool
9
- def build_rules: (Lexer::Token::InstantiateRule token, Counter rule_counter, untyped lhs_tag, Integer? line) -> Array[Grammar::ParameterizingRule]
10
-
11
- private
12
-
13
- def rule_builders: (String) -> Array[Grammar::ParameterizingRuleBuilder]
14
- end
15
- end
16
- end
@@ -1,18 +0,0 @@
1
- module Lrama
2
- class Grammar
3
- class ParameterizingRuleRhsBuilder
4
- attr_reader symbols: Array[untyped]
5
- attr_reader user_code: Lexer::Token::UserCode?
6
- attr_reader precedence_sym: Lexer::Token?
7
-
8
- def initialize: () -> void
9
- def build_rules: (Lexer::Token::InstantiateRule token, Array[Lexer::Token] actual_args, Array[Lexer::Token] parameters, Counter rule_counter, Lexer::Token lhs, untyped lhs_tag, Integer? line, Array[ParameterizingRuleBuilder] rule_builders) -> Grammar::ParameterizingRule
10
-
11
- private
12
-
13
- def build_nested_rules: (Lexer::Token::InstantiateRule token, Array[Lexer::Token] actual_args, Array[Lexer::Token] parameters, Counter rule_counter, untyped lhs_tag, Integer? line, Array[ParameterizingRuleBuilder] rule_builders) -> Array[Grammar::ParameterizingRule]
14
- def nested_actual_args: (Array[Lexer::Token] actual_args, Array[Lexer::Token] parameters, Integer idx) -> Array[Lexer::Token]
15
- def rhs: (Lexer::Token token, Array[Lexer::Token] actual_args, Array[Lexer::Token] parameters, ParameterizingRule? nested_rule) -> Array[Lexer::Token]
16
- end
17
- end
18
- end