diff --git a/assets/parser.d.erb b/assets/parser.d.erb index 87e1f18..4bcca7e 100644 --- a/assets/parser.d.erb +++ b/assets/parser.d.erb @@ -4,4 +4,10 @@ module <%= @grammar.modulename %>; <% end %> class <%= classname %> { + enum + { +<% @grammar.tokens.each do |token| %> + TOKEN_<%= token.c_name %>, +<% end %> + } } diff --git a/lib/imbecile/grammar/token.rb b/lib/imbecile/grammar/token.rb index 573744f..aa3fc23 100644 --- a/lib/imbecile/grammar/token.rb +++ b/lib/imbecile/grammar/token.rb @@ -28,6 +28,10 @@ module Imbecile @nfa = regex.nfa end + def c_name + @name.upcase + end + def to_s @name end