ripper 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2 @@
1
+ #define TRUE 1
2
+ #define FALSE 0
@@ -0,0 +1,50 @@
1
+ /**********************************************************************
2
+
3
+ id.c -
4
+
5
+ $Author: akr $
6
+ created at: Thu Jul 12 04:37:51 2007
7
+
8
+ Copyright (C) 2004-2007 Koichi Sasada
9
+
10
+ **********************************************************************/
11
+
12
+ #include "ruby/ruby.h"
13
+
14
+ #include "id.h"
15
+
16
+ static void
17
+ Init_id(void)
18
+ {
19
+ #undef rb_intern
20
+ #define rb_intern(str) rb_intern_const(str)
21
+ rb_encoding *enc = rb_usascii_encoding();
22
+
23
+ REGISTER_SYMID(idNULL, "");
24
+ REGISTER_SYMID(idIFUNC, "<IFUNC>");
25
+ REGISTER_SYMID(idCFUNC, "<CFUNC>");
26
+ REGISTER_SYMID(idRespond_to, "respond_to?");
27
+
28
+ REGISTER_SYMID(id_core_set_method_alias, "core#set_method_alias");
29
+ REGISTER_SYMID(id_core_set_variable_alias, "core#set_variable_alias");
30
+ REGISTER_SYMID(id_core_undef_method, "core#undef_method");
31
+ REGISTER_SYMID(id_core_define_method, "core#define_method");
32
+ REGISTER_SYMID(id_core_define_singleton_method, "core#define_singleton_method");
33
+ REGISTER_SYMID(id_core_set_postexe, "core#set_postexe");
34
+
35
+ REGISTER_SYMID(idEach, "each");
36
+ REGISTER_SYMID(idLength, "length");
37
+ REGISTER_SYMID(idSize, "size");
38
+ REGISTER_SYMID(idLambda, "lambda");
39
+ REGISTER_SYMID(idIntern, "intern");
40
+ REGISTER_SYMID(idGets, "gets");
41
+ REGISTER_SYMID(idSucc, "succ");
42
+ REGISTER_SYMID(idMethodMissing, "method_missing");
43
+ #if SUPPORT_JOKE
44
+ REGISTER_SYMID(idBitblt, "bitblt");
45
+ REGISTER_SYMID(idAnswer, "the_answer_to_life_the_universe_and_everything");
46
+ #endif
47
+ REGISTER_SYMID(idSend, "send");
48
+ REGISTER_SYMID(id__send__, "__send__");
49
+ REGISTER_SYMID(idInitialize, "initialize");
50
+ }
@@ -0,0 +1,170 @@
1
+ /* DO NOT EDIT THIS FILE DIRECTLY */
2
+ /**********************************************************************
3
+
4
+ id.h -
5
+
6
+ $Author: akr $
7
+ created at: Sun Oct 19 21:12:51 2008
8
+
9
+ Copyright (C) 2007 Koichi Sasada
10
+
11
+ **********************************************************************/
12
+
13
+ #ifndef RUBY_ID_H
14
+ #define RUBY_ID_H
15
+
16
+ #define ID_SCOPE_SHIFT 3
17
+ #define ID_SCOPE_MASK 0x07
18
+ #define ID_LOCAL 0x00
19
+ #define ID_INSTANCE 0x01
20
+ #define ID_GLOBAL 0x03
21
+ #define ID_ATTRSET 0x04
22
+ #define ID_CONST 0x05
23
+ #define ID_CLASS 0x06
24
+ #define ID_JUNK 0x07
25
+ #define ID_INTERNAL ID_JUNK
26
+
27
+ #ifdef USE_PARSE_H
28
+ #include "parse.h"
29
+ #endif
30
+
31
+ #define symIFUNC ID2SYM(idIFUNC)
32
+ #define symCFUNC ID2SYM(idCFUNC)
33
+
34
+ #if !defined tLAST_TOKEN && defined YYTOKENTYPE
35
+ #define tLAST_TOKEN tLAST_TOKEN
36
+ #endif
37
+
38
+ enum ruby_method_ids {
39
+ #ifndef tLAST_TOKEN
40
+ tUPLUS = 321,
41
+ tUMINUS = 322,
42
+ tPOW = 323,
43
+ tCMP = 324,
44
+ tEQ = 325,
45
+ tEQQ = 326,
46
+ tNEQ = 327,
47
+ tGEQ = 328,
48
+ tLEQ = 329,
49
+ tANDOP = 330,
50
+ tOROP = 331,
51
+ tMATCH = 332,
52
+ tNMATCH = 333,
53
+ tDOT2 = 334,
54
+ tDOT3 = 335,
55
+ tAREF = 336,
56
+ tASET = 337,
57
+ tLSHFT = 338,
58
+ tRSHFT = 339,
59
+ tLAMBDA = 352,
60
+ idNULL = 365,
61
+ idRespond_to = 366,
62
+ idIFUNC = 367,
63
+ idCFUNC = 368,
64
+ id_core_set_method_alias = 369,
65
+ id_core_set_variable_alias = 370,
66
+ id_core_undef_method = 371,
67
+ id_core_define_method = 372,
68
+ id_core_define_singleton_method = 373,
69
+ id_core_set_postexe = 374,
70
+ tLAST_TOKEN = 375,
71
+ #endif
72
+ idDot2 = tDOT2,
73
+ idDot3 = tDOT3,
74
+ idUPlus = tUPLUS,
75
+ idUMinus = tUMINUS,
76
+ idPow = tPOW,
77
+ idCmp = tCMP,
78
+ idPLUS = '+',
79
+ idMINUS = '-',
80
+ idMULT = '*',
81
+ idDIV = '/',
82
+ idMOD = '%',
83
+ idLT = '<',
84
+ idLTLT = tLSHFT,
85
+ idLE = tLEQ,
86
+ idGT = '>',
87
+ idGE = tGEQ,
88
+ idEq = tEQ,
89
+ idEqq = tEQQ,
90
+ idNeq = tNEQ,
91
+ idNot = '!',
92
+ idBackquote = '`',
93
+ idEqTilde = tMATCH,
94
+ idNeqTilde = tNMATCH,
95
+ idAREF = tAREF,
96
+ idASET = tASET,
97
+ idLAST_TOKEN = tLAST_TOKEN >> ID_SCOPE_SHIFT,
98
+ tIntern,
99
+ tMethodMissing,
100
+ tLength,
101
+ tSize,
102
+ tGets,
103
+ tSucc,
104
+ tEach,
105
+ tLambda,
106
+ tSend,
107
+ t__send__,
108
+ tInitialize,
109
+ #if SUPPORT_JOKE
110
+ tBitblt,
111
+ tAnswer,
112
+ #endif
113
+ tLAST_ID,
114
+ #define TOKEN2ID(n) id##n = ((t##n<<ID_SCOPE_SHIFT)|ID_LOCAL)
115
+ #if SUPPORT_JOKE
116
+ TOKEN2ID(Bitblt),
117
+ TOKEN2ID(Answer),
118
+ #endif
119
+ TOKEN2ID(Intern),
120
+ TOKEN2ID(MethodMissing),
121
+ TOKEN2ID(Length),
122
+ TOKEN2ID(Size),
123
+ TOKEN2ID(Gets),
124
+ TOKEN2ID(Succ),
125
+ TOKEN2ID(Each),
126
+ TOKEN2ID(Lambda),
127
+ TOKEN2ID(Send),
128
+ TOKEN2ID(__send__),
129
+ TOKEN2ID(Initialize)
130
+ };
131
+
132
+ #ifdef tLAST_TOKEN
133
+ struct ruby_method_ids_check {
134
+ #define ruby_method_id_check_for(name, value) \
135
+ int checking_for_##name[name == value ? 1 : -1]
136
+ ruby_method_id_check_for(tUPLUS, 321);
137
+ ruby_method_id_check_for(tUMINUS, 322);
138
+ ruby_method_id_check_for(tPOW, 323);
139
+ ruby_method_id_check_for(tCMP, 324);
140
+ ruby_method_id_check_for(tEQ, 325);
141
+ ruby_method_id_check_for(tEQQ, 326);
142
+ ruby_method_id_check_for(tNEQ, 327);
143
+ ruby_method_id_check_for(tGEQ, 328);
144
+ ruby_method_id_check_for(tLEQ, 329);
145
+ ruby_method_id_check_for(tANDOP, 330);
146
+ ruby_method_id_check_for(tOROP, 331);
147
+ ruby_method_id_check_for(tMATCH, 332);
148
+ ruby_method_id_check_for(tNMATCH, 333);
149
+ ruby_method_id_check_for(tDOT2, 334);
150
+ ruby_method_id_check_for(tDOT3, 335);
151
+ ruby_method_id_check_for(tAREF, 336);
152
+ ruby_method_id_check_for(tASET, 337);
153
+ ruby_method_id_check_for(tLSHFT, 338);
154
+ ruby_method_id_check_for(tRSHFT, 339);
155
+ ruby_method_id_check_for(tLAMBDA, 352);
156
+ ruby_method_id_check_for(idNULL, 365);
157
+ ruby_method_id_check_for(idRespond_to, 366);
158
+ ruby_method_id_check_for(idIFUNC, 367);
159
+ ruby_method_id_check_for(idCFUNC, 368);
160
+ ruby_method_id_check_for(id_core_set_method_alias, 369);
161
+ ruby_method_id_check_for(id_core_set_variable_alias, 370);
162
+ ruby_method_id_check_for(id_core_undef_method, 371);
163
+ ruby_method_id_check_for(id_core_define_method, 372);
164
+ ruby_method_id_check_for(id_core_define_singleton_method, 373);
165
+ ruby_method_id_check_for(id_core_set_postexe, 374);
166
+ ruby_method_id_check_for(tLAST_TOKEN, 375);
167
+ };
168
+ #endif
169
+
170
+ #endif /* RUBY_ID_H */
@@ -0,0 +1,219 @@
1
+ /* C code produced by gperf version 3.0.4 */
2
+ /* Command-line: gperf -C -p -j1 -i 1 -g -o -t -N rb_reserved_word -k'1,3,$' defs/keywords */
3
+
4
+ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
5
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
6
+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
7
+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
8
+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
9
+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
10
+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
11
+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
12
+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
13
+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
14
+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
15
+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
16
+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
17
+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
18
+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
19
+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
20
+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
21
+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
22
+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
23
+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
24
+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
25
+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
26
+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
27
+ /* The character set is not based on ISO-646. */
28
+ error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
29
+ #endif
30
+
31
+ #line 1 "defs/keywords"
32
+
33
+ struct kwtable {const char *name; int id[2]; enum lex_state_e state;};
34
+ const struct kwtable *rb_reserved_word(const char *, unsigned int);
35
+ #ifdef RIPPER
36
+ static const struct kwtable *reserved_word(const char *, unsigned int);
37
+ #define rb_reserved_word(str, len) reserved_word(str, len)
38
+ #line 9 "defs/keywords"
39
+ struct kwtable;
40
+
41
+ #define TOTAL_KEYWORDS 41
42
+ #define MIN_WORD_LENGTH 2
43
+ #define MAX_WORD_LENGTH 12
44
+ #define MIN_HASH_VALUE 8
45
+ #define MAX_HASH_VALUE 50
46
+ /* maximum key range = 43, duplicates = 0 */
47
+
48
+ #ifdef __GNUC__
49
+ __inline
50
+ #else
51
+ #ifdef __cplusplus
52
+ inline
53
+ #endif
54
+ #endif
55
+ static unsigned int
56
+ hash (str, len)
57
+ register const char *str;
58
+ register unsigned int len;
59
+ {
60
+ static const unsigned char asso_values[] =
61
+ {
62
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
63
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
64
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
65
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
66
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
67
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
68
+ 51, 51, 51, 26, 51, 51, 14, 51, 16, 8,
69
+ 11, 13, 51, 51, 51, 51, 10, 51, 13, 51,
70
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
71
+ 51, 51, 51, 51, 51, 11, 51, 13, 1, 26,
72
+ 4, 1, 8, 28, 51, 23, 51, 1, 1, 27,
73
+ 5, 19, 21, 51, 8, 3, 3, 11, 51, 21,
74
+ 24, 16, 51, 51, 51, 51, 51, 51, 51, 51,
75
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
76
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
77
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
78
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
79
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
80
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
81
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
82
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
83
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
84
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
85
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
86
+ 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
87
+ 51, 51, 51, 51, 51, 51
88
+ };
89
+ register int hval = len;
90
+
91
+ switch (hval)
92
+ {
93
+ default:
94
+ hval += asso_values[(unsigned char)str[2]];
95
+ /*FALLTHROUGH*/
96
+ case 2:
97
+ case 1:
98
+ hval += asso_values[(unsigned char)str[0]];
99
+ break;
100
+ }
101
+ return hval + asso_values[(unsigned char)str[len - 1]];
102
+ }
103
+
104
+ #ifdef __GNUC__
105
+ __inline
106
+ #if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
107
+ __attribute__ ((__gnu_inline__))
108
+ #endif
109
+ #endif
110
+ const struct kwtable *
111
+ rb_reserved_word (str, len)
112
+ register const char *str;
113
+ register unsigned int len;
114
+ {
115
+ static const struct kwtable wordlist[] =
116
+ {
117
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
118
+ #line 19 "defs/keywords"
119
+ {"break", {keyword_break, keyword_break}, EXPR_MID},
120
+ #line 25 "defs/keywords"
121
+ {"else", {keyword_else, keyword_else}, EXPR_BEG},
122
+ #line 35 "defs/keywords"
123
+ {"nil", {keyword_nil, keyword_nil}, EXPR_END},
124
+ #line 28 "defs/keywords"
125
+ {"ensure", {keyword_ensure, keyword_ensure}, EXPR_BEG},
126
+ #line 27 "defs/keywords"
127
+ {"end", {keyword_end, keyword_end}, EXPR_END},
128
+ #line 44 "defs/keywords"
129
+ {"then", {keyword_then, keyword_then}, EXPR_BEG},
130
+ #line 36 "defs/keywords"
131
+ {"not", {keyword_not, keyword_not}, EXPR_ARG},
132
+ #line 29 "defs/keywords"
133
+ {"false", {keyword_false, keyword_false}, EXPR_END},
134
+ #line 42 "defs/keywords"
135
+ {"self", {keyword_self, keyword_self}, EXPR_END},
136
+ #line 26 "defs/keywords"
137
+ {"elsif", {keyword_elsif, keyword_elsif}, EXPR_VALUE},
138
+ #line 39 "defs/keywords"
139
+ {"rescue", {keyword_rescue, modifier_rescue}, EXPR_MID},
140
+ #line 45 "defs/keywords"
141
+ {"true", {keyword_true, keyword_true}, EXPR_END},
142
+ #line 48 "defs/keywords"
143
+ {"until", {keyword_until, modifier_until}, EXPR_VALUE},
144
+ #line 47 "defs/keywords"
145
+ {"unless", {keyword_unless, modifier_unless}, EXPR_VALUE},
146
+ #line 41 "defs/keywords"
147
+ {"return", {keyword_return, keyword_return}, EXPR_MID},
148
+ #line 22 "defs/keywords"
149
+ {"def", {keyword_def, keyword_def}, EXPR_FNAME},
150
+ #line 17 "defs/keywords"
151
+ {"and", {keyword_and, keyword_and}, EXPR_VALUE},
152
+ #line 24 "defs/keywords"
153
+ {"do", {keyword_do, keyword_do}, EXPR_BEG},
154
+ #line 51 "defs/keywords"
155
+ {"yield", {keyword_yield, keyword_yield}, EXPR_ARG},
156
+ #line 30 "defs/keywords"
157
+ {"for", {keyword_for, keyword_for}, EXPR_VALUE},
158
+ #line 46 "defs/keywords"
159
+ {"undef", {keyword_undef, keyword_undef}, EXPR_FNAME},
160
+ #line 37 "defs/keywords"
161
+ {"or", {keyword_or, keyword_or}, EXPR_VALUE},
162
+ #line 32 "defs/keywords"
163
+ {"in", {keyword_in, keyword_in}, EXPR_VALUE},
164
+ #line 49 "defs/keywords"
165
+ {"when", {keyword_when, keyword_when}, EXPR_VALUE},
166
+ #line 40 "defs/keywords"
167
+ {"retry", {keyword_retry, keyword_retry}, EXPR_END},
168
+ #line 31 "defs/keywords"
169
+ {"if", {keyword_if, modifier_if}, EXPR_VALUE},
170
+ #line 20 "defs/keywords"
171
+ {"case", {keyword_case, keyword_case}, EXPR_VALUE},
172
+ #line 38 "defs/keywords"
173
+ {"redo", {keyword_redo, keyword_redo}, EXPR_END},
174
+ #line 34 "defs/keywords"
175
+ {"next", {keyword_next, keyword_next}, EXPR_MID},
176
+ #line 43 "defs/keywords"
177
+ {"super", {keyword_super, keyword_super}, EXPR_ARG},
178
+ #line 33 "defs/keywords"
179
+ {"module", {keyword_module, keyword_module}, EXPR_VALUE},
180
+ #line 18 "defs/keywords"
181
+ {"begin", {keyword_begin, keyword_begin}, EXPR_BEG},
182
+ #line 12 "defs/keywords"
183
+ {"__LINE__", {keyword__LINE__, keyword__LINE__}, EXPR_END},
184
+ #line 13 "defs/keywords"
185
+ {"__FILE__", {keyword__FILE__, keyword__FILE__}, EXPR_END},
186
+ #line 11 "defs/keywords"
187
+ {"__ENCODING__", {keyword__ENCODING__, keyword__ENCODING__}, EXPR_END},
188
+ #line 15 "defs/keywords"
189
+ {"END", {keyword_END, keyword_END}, EXPR_END},
190
+ #line 16 "defs/keywords"
191
+ {"alias", {keyword_alias, keyword_alias}, EXPR_FNAME},
192
+ #line 14 "defs/keywords"
193
+ {"BEGIN", {keyword_BEGIN, keyword_BEGIN}, EXPR_END},
194
+ #line 23 "defs/keywords"
195
+ {"defined?", {keyword_defined, keyword_defined}, EXPR_ARG},
196
+ #line 21 "defs/keywords"
197
+ {"class", {keyword_class, keyword_class}, EXPR_CLASS},
198
+ {""}, {""},
199
+ #line 50 "defs/keywords"
200
+ {"while", {keyword_while, modifier_while}, EXPR_VALUE}
201
+ };
202
+
203
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
204
+ {
205
+ register int key = hash (str, len);
206
+
207
+ if (key <= MAX_HASH_VALUE && key >= 0)
208
+ {
209
+ register const char *s = wordlist[key].name;
210
+
211
+ if (*str == *s && !strcmp (str + 1, s + 1))
212
+ return &wordlist[key];
213
+ }
214
+ }
215
+ return 0;
216
+ }
217
+ #line 52 "defs/keywords"
218
+
219
+ #endif
@@ -0,0 +1,187 @@
1
+ /* A Bison parser, made by GNU Bison 2.4.3. */
2
+
3
+ /* Skeleton interface for Bison's Yacc-like parsers in C
4
+
5
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
6
+ 2009, 2010 Free Software Foundation, Inc.
7
+
8
+ This program is free software: you can redistribute it and/or modify
9
+ it under the terms of the GNU General Public License as published by
10
+ the Free Software Foundation, either version 3 of the License, or
11
+ (at your option) any later version.
12
+
13
+ This program is distributed in the hope that it will be useful,
14
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ GNU General Public License for more details.
17
+
18
+ You should have received a copy of the GNU General Public License
19
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
20
+
21
+ /* As a special exception, you may create a larger work that contains
22
+ part or all of the Bison parser skeleton and distribute that work
23
+ under terms of your choice, so long as that work isn't itself a
24
+ parser generator using the skeleton or a modified version thereof
25
+ as a parser skeleton. Alternatively, if you modify or redistribute
26
+ the parser skeleton itself, you may (at your option) remove this
27
+ special exception, which will cause the skeleton and the resulting
28
+ Bison output files to be licensed under the GNU General Public
29
+ License without this special exception.
30
+
31
+ This special exception was added by the Free Software Foundation in
32
+ version 2.2 of Bison. */
33
+
34
+
35
+ /* Tokens. */
36
+ #ifndef YYTOKENTYPE
37
+ # define YYTOKENTYPE
38
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
39
+ know about them. */
40
+ enum yytokentype {
41
+ keyword_class = 258,
42
+ keyword_module = 259,
43
+ keyword_def = 260,
44
+ keyword_undef = 261,
45
+ keyword_begin = 262,
46
+ keyword_rescue = 263,
47
+ keyword_ensure = 264,
48
+ keyword_end = 265,
49
+ keyword_if = 266,
50
+ keyword_unless = 267,
51
+ keyword_then = 268,
52
+ keyword_elsif = 269,
53
+ keyword_else = 270,
54
+ keyword_case = 271,
55
+ keyword_when = 272,
56
+ keyword_while = 273,
57
+ keyword_until = 274,
58
+ keyword_for = 275,
59
+ keyword_break = 276,
60
+ keyword_next = 277,
61
+ keyword_redo = 278,
62
+ keyword_retry = 279,
63
+ keyword_in = 280,
64
+ keyword_do = 281,
65
+ keyword_do_cond = 282,
66
+ keyword_do_block = 283,
67
+ keyword_do_LAMBDA = 284,
68
+ keyword_return = 285,
69
+ keyword_yield = 286,
70
+ keyword_super = 287,
71
+ keyword_self = 288,
72
+ keyword_nil = 289,
73
+ keyword_true = 290,
74
+ keyword_false = 291,
75
+ keyword_and = 292,
76
+ keyword_or = 293,
77
+ keyword_not = 294,
78
+ modifier_if = 295,
79
+ modifier_unless = 296,
80
+ modifier_while = 297,
81
+ modifier_until = 298,
82
+ modifier_rescue = 299,
83
+ keyword_alias = 300,
84
+ keyword_defined = 301,
85
+ keyword_BEGIN = 302,
86
+ keyword_END = 303,
87
+ keyword__LINE__ = 304,
88
+ keyword__FILE__ = 305,
89
+ keyword__ENCODING__ = 306,
90
+ tIDENTIFIER = 307,
91
+ tFID = 308,
92
+ tGVAR = 309,
93
+ tIVAR = 310,
94
+ tCONSTANT = 311,
95
+ tCVAR = 312,
96
+ tLABEL = 313,
97
+ tINTEGER = 314,
98
+ tFLOAT = 315,
99
+ tSTRING_CONTENT = 316,
100
+ tCHAR = 317,
101
+ tNTH_REF = 318,
102
+ tBACK_REF = 319,
103
+ tREGEXP_END = 320,
104
+ tUPLUS = 321,
105
+ tUMINUS = 322,
106
+ tPOW = 323,
107
+ tCMP = 324,
108
+ tEQ = 325,
109
+ tEQQ = 326,
110
+ tNEQ = 327,
111
+ tGEQ = 328,
112
+ tLEQ = 329,
113
+ tANDOP = 330,
114
+ tOROP = 331,
115
+ tMATCH = 332,
116
+ tNMATCH = 333,
117
+ tDOT2 = 334,
118
+ tDOT3 = 335,
119
+ tAREF = 336,
120
+ tASET = 337,
121
+ tLSHFT = 338,
122
+ tRSHFT = 339,
123
+ tCOLON2 = 340,
124
+ tCOLON3 = 341,
125
+ tOP_ASGN = 342,
126
+ tASSOC = 343,
127
+ tLPAREN = 344,
128
+ tLPAREN_ARG = 345,
129
+ tRPAREN = 346,
130
+ tLBRACK = 347,
131
+ tLBRACE = 348,
132
+ tLBRACE_ARG = 349,
133
+ tSTAR = 350,
134
+ tAMPER = 351,
135
+ tLAMBDA = 352,
136
+ tSYMBEG = 353,
137
+ tSTRING_BEG = 354,
138
+ tXSTRING_BEG = 355,
139
+ tREGEXP_BEG = 356,
140
+ tWORDS_BEG = 357,
141
+ tQWORDS_BEG = 358,
142
+ tSTRING_DBEG = 359,
143
+ tSTRING_DVAR = 360,
144
+ tSTRING_END = 361,
145
+ tLAMBEG = 362,
146
+ tLOWEST = 363,
147
+ tUMINUS_NUM = 364,
148
+ idNULL = 365,
149
+ idRespond_to = 366,
150
+ idIFUNC = 367,
151
+ idCFUNC = 368,
152
+ id_core_set_method_alias = 369,
153
+ id_core_set_variable_alias = 370,
154
+ id_core_undef_method = 371,
155
+ id_core_define_method = 372,
156
+ id_core_define_singleton_method = 373,
157
+ id_core_set_postexe = 374,
158
+ tLAST_TOKEN = 375
159
+ };
160
+ #endif
161
+
162
+
163
+
164
+ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
165
+ typedef union YYSTYPE
166
+ {
167
+
168
+ /* Line 1685 of yacc.c */
169
+
170
+ VALUE val;
171
+ NODE *node;
172
+ ID id;
173
+ int num;
174
+ const struct vtable *vars;
175
+
176
+
177
+
178
+ /* Line 1685 of yacc.c */
179
+ } YYSTYPE;
180
+ # define YYSTYPE_IS_TRIVIAL 1
181
+ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
182
+ # define YYSTYPE_IS_DECLARED 1
183
+ #endif
184
+
185
+
186
+
187
+