summaryrefslogtreecommitdiff
path: root/template/id.c.tmpl
diff options
context:
space:
mode:
Diffstat (limited to 'template/id.c.tmpl')
-rw-r--r--template/id.c.tmpl16
1 files changed, 16 insertions, 0 deletions
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)
{