mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* defs/keywords (struct kwtable): shrink since members do not exceed 16bit. lex_state needs to be int (or enum lex_state_e) when EXPR_MAX_STATE reaches it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			53 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
%{
 | 
						|
struct kwtable {short name, id[2], state;};
 | 
						|
const struct kwtable *rb_reserved_word(const char *, unsigned int);
 | 
						|
#ifndef RIPPER
 | 
						|
static const struct kwtable *reserved_word(/*!ANSI{*/const char *, unsigned int/*}!ANSI*/);
 | 
						|
#define rb_reserved_word(str, len) reserved_word(str, len)
 | 
						|
%}
 | 
						|
 | 
						|
struct kwtable;
 | 
						|
%%
 | 
						|
__ENCODING__, {keyword__ENCODING__, keyword__ENCODING__}, EXPR_END
 | 
						|
__LINE__, {keyword__LINE__, keyword__LINE__}, EXPR_END
 | 
						|
__FILE__, {keyword__FILE__, keyword__FILE__}, EXPR_END
 | 
						|
BEGIN, {keyword_BEGIN, keyword_BEGIN}, EXPR_END
 | 
						|
END, {keyword_END, keyword_END}, EXPR_END
 | 
						|
alias, {keyword_alias, keyword_alias}, EXPR_FNAME|EXPR_FITEM
 | 
						|
and, {keyword_and, keyword_and}, EXPR_VALUE
 | 
						|
begin, {keyword_begin, keyword_begin}, EXPR_BEG
 | 
						|
break, {keyword_break, keyword_break}, EXPR_MID
 | 
						|
case, {keyword_case, keyword_case}, EXPR_VALUE
 | 
						|
class, {keyword_class, keyword_class}, EXPR_CLASS
 | 
						|
def, {keyword_def, keyword_def}, EXPR_FNAME
 | 
						|
defined?, {keyword_defined, keyword_defined}, EXPR_ARG
 | 
						|
do, {keyword_do, keyword_do}, EXPR_BEG
 | 
						|
else, {keyword_else, keyword_else}, EXPR_BEG
 | 
						|
elsif, {keyword_elsif, keyword_elsif}, EXPR_VALUE
 | 
						|
end, {keyword_end, keyword_end}, EXPR_END
 | 
						|
ensure, {keyword_ensure, keyword_ensure}, EXPR_BEG
 | 
						|
false, {keyword_false, keyword_false}, EXPR_END
 | 
						|
for, {keyword_for, keyword_for}, EXPR_VALUE
 | 
						|
if, {keyword_if, modifier_if}, EXPR_VALUE
 | 
						|
in, {keyword_in, keyword_in}, EXPR_VALUE
 | 
						|
module, {keyword_module, keyword_module}, EXPR_VALUE
 | 
						|
next, {keyword_next, keyword_next}, EXPR_MID
 | 
						|
nil, {keyword_nil, keyword_nil}, EXPR_END
 | 
						|
not, {keyword_not, keyword_not}, EXPR_ARG
 | 
						|
or, {keyword_or, keyword_or}, EXPR_VALUE
 | 
						|
redo, {keyword_redo, keyword_redo}, EXPR_END
 | 
						|
rescue, {keyword_rescue, modifier_rescue}, EXPR_MID
 | 
						|
retry, {keyword_retry, keyword_retry}, EXPR_END
 | 
						|
return, {keyword_return, keyword_return}, EXPR_MID
 | 
						|
self, {keyword_self, keyword_self}, EXPR_END
 | 
						|
super, {keyword_super, keyword_super}, EXPR_ARG
 | 
						|
then, {keyword_then, keyword_then}, EXPR_BEG
 | 
						|
true, {keyword_true, keyword_true}, EXPR_END
 | 
						|
undef, {keyword_undef, keyword_undef}, EXPR_FNAME|EXPR_FITEM
 | 
						|
unless, {keyword_unless, modifier_unless}, EXPR_VALUE
 | 
						|
until, {keyword_until, modifier_until}, EXPR_VALUE
 | 
						|
when, {keyword_when, keyword_when}, EXPR_VALUE
 | 
						|
while, {keyword_while, modifier_while}, EXPR_VALUE
 | 
						|
yield, {keyword_yield, keyword_yield}, EXPR_ARG
 | 
						|
%%
 | 
						|
#endif
 |