mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* 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
		
			
				
	
	
		
			43 lines
		
	
	
	
		
			999 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
	
		
			999 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), 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)
 | 
						|
{
 | 
						|
#undef rb_intern
 | 
						|
#define rb_intern(str) rb_intern_const(str)
 | 
						|
    rb_encoding *enc = rb_usascii_encoding();
 | 
						|
 | 
						|
% ids[:predefined].each do |token, name|
 | 
						|
    REGISTER_SYMID(id<%=token%>, "<%=name%>");
 | 
						|
% end
 | 
						|
}
 |