aboutsummaryrefslogtreecommitdiffstats
path: root/tool/lrama/lib/lrama/grammar/parameterizing_rules/builder/base.rb
diff options
context:
space:
mode:
authoryui-knk <spiketeika@gmail.com>2023-11-18 17:46:38 +0900
committerYuichiro Kaneko <spiketeika@gmail.com>2023-11-18 19:38:55 +0900
commitc56dd94db0001b900a2dab3ee350a182d6bb42af (patch)
tree7a4f5236452ae721f67fe6602f3dcbc68a085ac1 /tool/lrama/lib/lrama/grammar/parameterizing_rules/builder/base.rb
parentf479e629ab497f325091096819fa5bf60c0d03b2 (diff)
downloadruby-c56dd94db0001b900a2dab3ee350a182d6bb42af.tar.gz
Lrama v0.5.10
Diffstat (limited to 'tool/lrama/lib/lrama/grammar/parameterizing_rules/builder/base.rb')
-rw-r--r--tool/lrama/lib/lrama/grammar/parameterizing_rules/builder/base.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/tool/lrama/lib/lrama/grammar/parameterizing_rules/builder/base.rb b/tool/lrama/lib/lrama/grammar/parameterizing_rules/builder/base.rb
new file mode 100644
index 0000000000..a85348c94f
--- /dev/null
+++ b/tool/lrama/lib/lrama/grammar/parameterizing_rules/builder/base.rb
@@ -0,0 +1,28 @@
+module Lrama
+ class Grammar
+ class ParameterizingRules
+ class Builder
+ class Base
+ def initialize(token, rule_counter, lhs, user_code, precedence_sym, line)
+ @args = token.args
+ @token = @args.first
+ @rule_counter = rule_counter
+ @lhs = lhs
+ @user_code = user_code
+ @precedence_sym = precedence_sym
+ @line = line
+ @expected_argument_num = 1
+ end
+
+ private
+
+ def validate_argument_number!
+ unless @args.count == @expected_argument_num
+ raise "Invalid number of arguments. expect: #{@expected_argument_num} actual: #{@args.count}"
+ end
+ end
+ end
+ end
+ end
+ end
+end