mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 72b785e072
			
		
	
	
		72b785e072
		
	
	
	
	
		
			
			* 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
 | |
| }
 |