From 3f92ae46c43875b09854cc07a54695c840d8eb65 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Sun, 22 Aug 2021 21:21:41 -0400 Subject: [PATCH] Map rule components to Token/Rule references --- lib/imbecile.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/imbecile.rb b/lib/imbecile.rb index 4672670..c139d4b 100644 --- a/lib/imbecile.rb +++ b/lib/imbecile.rb @@ -57,6 +57,17 @@ class Imbecile unless rule_names["Start"] raise Error.new("Start rule not found") end + @rules.each do |rule| + rule.components.map! do |component| + if token_names[component] + token_names[component] + elsif rule_names[component] + rule_names[component] + else + raise Error.new("Symbol #{component} not found") + end + end + end lexer = Lexer.new(@tokens) classname = @classname || File.basename(output_file).sub(%r{[^a-zA-Z0-9].*}, "").capitalize erb = ERB.new(File.read(File.join(File.dirname(File.expand_path(__FILE__)), "../assets/parser.d.erb")), nil, "<>")