From 72b785e07210c7419802caa3595fc03d84df2c3a Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 5 Nov 2015 04:04:00 +0000 Subject: id.def: token_ops * defs/id.def (token_ops): gather associations between IDs, operators, and parser tokens. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- template/id.c.tmpl | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'template/id.c.tmpl') diff --git a/template/id.c.tmpl b/template/id.c.tmpl index cac213a..477a76b 100644 --- a/template/id.c.tmpl +++ b/template/id.c.tmpl @@ -13,7 +13,23 @@ <% defs = File.join(File.dirname(File.dirname(erb.filename)), "defs/id.def") ids = eval(File.read(defs), binding, defs) +ops = ids[:token_op].uniq {|id, op, token| token && op} %> +% ops.each do |_id, _op, token| +% next unless token +#define t<%=token%> RUBY_TOKEN(<%=token%>) +% end + +static const struct { + unsigned short token; + const char name[3], term; +} op_tbl[] = { +% ops.each do |_id, op, token| +% next unless token + {t<%=token%>, "<%=op%>"}, +% end +}; + static void Init_id(void) { -- cgit v1.1