mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
a977c66312
Separate the logic accross the tables from the template view for id.h.
41 lines
934 B
C
41 lines
934 B
C
%# -*- c -*-
|
|
/* DO NOT EDIT THIS FILE DIRECTLY */
|
|
/**********************************************************************
|
|
|
|
id.c -
|
|
|
|
$Author$
|
|
created at: Wed Dec 5 02:36:10 2012
|
|
|
|
Copyright (C) 2004-2007 Koichi Sasada
|
|
|
|
**********************************************************************/
|
|
<%
|
|
defs = File.join(File.dirname(File.dirname(erb.filename)), "defs/id.def")
|
|
ids = eval(File.read(defs), nil, 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)
|
|
{
|
|
rb_encoding *enc = rb_usascii_encoding();
|
|
|
|
% ids[:predefined].each do |token, name|
|
|
REGISTER_SYMID(id<%=token%>, "<%=name%>");
|
|
% end
|
|
}
|