fancy 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. data/README.md +4 -1
  2. data/Rakefile +8 -0
  3. data/bin/fyi +25 -20
  4. data/bin/ifancy +39 -5
  5. data/{extconf.rb → boot/extconf.rb} +1 -1
  6. data/boot/fancy_ext/block_env.rb +0 -14
  7. data/boot/fancy_ext/kernel.rb +6 -2
  8. data/boot/rbx-compiler/parser/fancy_parser.bundle +0 -0
  9. data/examples/actor.fy +37 -0
  10. data/examples/armstrong_numbers.fy +1 -1
  11. data/examples/curl_async.fy +37 -0
  12. data/examples/echo.fy +1 -1
  13. data/examples/factorial.fy +1 -1
  14. data/examples/future_composition.fy +20 -0
  15. data/examples/game_of_life.fy +2 -2
  16. data/examples/person.fy +4 -8
  17. data/examples/rbx/blocks.fy +1 -1
  18. data/examples/return.fy +1 -1
  19. data/examples/struct.fy +9 -0
  20. data/lib/argv.fy +2 -2
  21. data/lib/array.fy +157 -0
  22. data/lib/block.fy +18 -1
  23. data/lib/boot.fy +5 -1
  24. data/lib/compiler/ast/class_def.fy +1 -1
  25. data/lib/compiler/ast/identifier.fy +2 -2
  26. data/lib/compiler/ast/message_send.fy +2 -2
  27. data/lib/compiler/ast/method_def.fy +2 -2
  28. data/lib/compiler/ast/try_catch.fy +5 -1
  29. data/lib/documentation.fy +1 -1
  30. data/lib/enumerable.fy +3 -7
  31. data/lib/enumerator.fy +77 -0
  32. data/lib/false_class.fy +52 -0
  33. data/lib/fancy_spec.fy +40 -12
  34. data/lib/fdoc.fy +2 -2
  35. data/lib/file.fy +8 -1
  36. data/lib/future.fy +23 -2
  37. data/lib/iteration.fy +60 -0
  38. data/lib/main.fy +4 -4
  39. data/lib/nil_class.fy +14 -22
  40. data/lib/number.fy +51 -0
  41. data/lib/object.fy +126 -43
  42. data/lib/package/installer.fy +1 -1
  43. data/lib/parser/ext/lexer.lex +6 -1
  44. data/lib/parser/ext/parser.y +18 -0
  45. data/lib/parser/methods.fy +20 -2
  46. data/lib/proxy.fy +20 -3
  47. data/lib/rbx.fy +0 -1
  48. data/lib/rbx/array.fy +4 -138
  49. data/lib/rbx/block.fy +25 -1
  50. data/lib/rbx/class.fy +21 -0
  51. data/lib/rbx/exception.fy +1 -0
  52. data/lib/rbx/fiber.fy +1 -0
  53. data/lib/rbx/file.fy +8 -0
  54. data/lib/rbx/integer.fy +0 -8
  55. data/lib/rbx/method.fy +34 -7
  56. data/lib/rbx/no_method_error.fy +8 -1
  57. data/lib/rbx/object.fy +3 -32
  58. data/lib/rbx/range.fy +13 -1
  59. data/lib/rbx/regexp.fy +3 -0
  60. data/lib/rbx/string.fy +6 -1
  61. data/lib/rbx/system.fy +20 -2
  62. data/lib/set.fy +2 -2
  63. data/lib/string.fy +1 -1
  64. data/lib/struct.fy +15 -12
  65. data/lib/symbol.fy +2 -2
  66. data/lib/true_class.fy +16 -20
  67. data/lib/version.fy +1 -1
  68. data/tests/argv.fy +1 -0
  69. data/tests/array.fy +33 -2
  70. data/tests/block.fy +44 -0
  71. data/tests/class.fy +102 -88
  72. data/tests/control_flow.fy +131 -8
  73. data/tests/enumerator.fy +85 -0
  74. data/tests/exception.fy +13 -13
  75. data/tests/file.fy +4 -13
  76. data/tests/future.fy +26 -0
  77. data/tests/method.fy +83 -72
  78. data/tests/nil_class.fy +20 -13
  79. data/tests/number.fy +16 -9
  80. data/tests/object.fy +39 -20
  81. data/tests/string.fy +7 -0
  82. data/tests/true_class.fy +4 -4
  83. data/tools/fancy-mode.el +1 -1
  84. metadata +15 -20
  85. data/boot/compiler/parser/ext/fancy_parser.bundle +0 -0
  86. data/boot/rbx-compiler/parser/Makefile +0 -162
  87. data/boot/rbx-compiler/parser/lexer.c +0 -2316
  88. data/boot/rbx-compiler/parser/lexer.h +0 -315
  89. data/boot/rbx-compiler/parser/parser.c +0 -3105
  90. data/boot/rbx-compiler/parser/parser.h +0 -114
  91. data/lib/lazy_array.fy +0 -23
  92. data/lib/parser/ext/Makefile +0 -162
  93. data/lib/parser/ext/fancy_parser.bundle +0 -0
  94. data/lib/parser/ext/lexer.c +0 -2360
  95. data/lib/parser/ext/lexer.h +0 -315
  96. data/lib/parser/ext/parser.c +0 -3382
  97. data/lib/parser/ext/parser.h +0 -118
  98. data/lib/rbx/false_class.fy +0 -58
@@ -1,315 +0,0 @@
1
- #ifndef yyHEADER_H
2
- #define yyHEADER_H 1
3
- #define yyIN_HEADER 1
4
-
5
- #line 6 "lexer.h"
6
-
7
- #line 8 "lexer.h"
8
-
9
- #define YY_INT_ALIGNED short int
10
-
11
- /* A lexical scanner generated by flex */
12
-
13
- #define FLEX_SCANNER
14
- #define YY_FLEX_MAJOR_VERSION 2
15
- #define YY_FLEX_MINOR_VERSION 5
16
- #define YY_FLEX_SUBMINOR_VERSION 35
17
- #if YY_FLEX_SUBMINOR_VERSION > 0
18
- #define FLEX_BETA
19
- #endif
20
-
21
- /* First, we deal with platform-specific or compiler-specific issues. */
22
-
23
- /* begin standard C headers. */
24
- #include <stdio.h>
25
- #include <string.h>
26
- #include <errno.h>
27
- #include <stdlib.h>
28
-
29
- /* end standard C headers. */
30
-
31
- /* flex integer type definitions */
32
-
33
- #ifndef FLEXINT_H
34
- #define FLEXINT_H
35
-
36
- /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
37
-
38
- #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
39
-
40
- /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
41
- * if you want the limit (max/min) macros for int types.
42
- */
43
- #ifndef __STDC_LIMIT_MACROS
44
- #define __STDC_LIMIT_MACROS 1
45
- #endif
46
-
47
- #include <inttypes.h>
48
- typedef int8_t flex_int8_t;
49
- typedef uint8_t flex_uint8_t;
50
- typedef int16_t flex_int16_t;
51
- typedef uint16_t flex_uint16_t;
52
- typedef int32_t flex_int32_t;
53
- typedef uint32_t flex_uint32_t;
54
- #else
55
- typedef signed char flex_int8_t;
56
- typedef short int flex_int16_t;
57
- typedef int flex_int32_t;
58
- typedef unsigned char flex_uint8_t;
59
- typedef unsigned short int flex_uint16_t;
60
- typedef unsigned int flex_uint32_t;
61
- #endif /* ! C99 */
62
-
63
- /* Limits of integral types. */
64
- #ifndef INT8_MIN
65
- #define INT8_MIN (-128)
66
- #endif
67
- #ifndef INT16_MIN
68
- #define INT16_MIN (-32767-1)
69
- #endif
70
- #ifndef INT32_MIN
71
- #define INT32_MIN (-2147483647-1)
72
- #endif
73
- #ifndef INT8_MAX
74
- #define INT8_MAX (127)
75
- #endif
76
- #ifndef INT16_MAX
77
- #define INT16_MAX (32767)
78
- #endif
79
- #ifndef INT32_MAX
80
- #define INT32_MAX (2147483647)
81
- #endif
82
- #ifndef UINT8_MAX
83
- #define UINT8_MAX (255U)
84
- #endif
85
- #ifndef UINT16_MAX
86
- #define UINT16_MAX (65535U)
87
- #endif
88
- #ifndef UINT32_MAX
89
- #define UINT32_MAX (4294967295U)
90
- #endif
91
-
92
- #endif /* ! FLEXINT_H */
93
-
94
- #ifdef __cplusplus
95
-
96
- /* The "const" storage-class-modifier is valid. */
97
- #define YY_USE_CONST
98
-
99
- #else /* ! __cplusplus */
100
-
101
- /* C99 requires __STDC__ to be defined as 1. */
102
- #if defined (__STDC__)
103
-
104
- #define YY_USE_CONST
105
-
106
- #endif /* defined (__STDC__) */
107
- #endif /* ! __cplusplus */
108
-
109
- #ifdef YY_USE_CONST
110
- #define yyconst const
111
- #else
112
- #define yyconst
113
- #endif
114
-
115
- /* Size of default input buffer. */
116
- #ifndef YY_BUF_SIZE
117
- #define YY_BUF_SIZE 16384
118
- #endif
119
-
120
- #ifndef YY_TYPEDEF_YY_BUFFER_STATE
121
- #define YY_TYPEDEF_YY_BUFFER_STATE
122
- typedef struct yy_buffer_state *YY_BUFFER_STATE;
123
- #endif
124
-
125
- #ifndef YY_TYPEDEF_YY_SIZE_T
126
- #define YY_TYPEDEF_YY_SIZE_T
127
- typedef size_t yy_size_t;
128
- #endif
129
-
130
- extern yy_size_t yyleng;
131
-
132
- extern FILE *yyin, *yyout;
133
-
134
- #ifndef YY_STRUCT_YY_BUFFER_STATE
135
- #define YY_STRUCT_YY_BUFFER_STATE
136
- struct yy_buffer_state
137
- {
138
- FILE *yy_input_file;
139
-
140
- char *yy_ch_buf; /* input buffer */
141
- char *yy_buf_pos; /* current position in input buffer */
142
-
143
- /* Size of input buffer in bytes, not including room for EOB
144
- * characters.
145
- */
146
- yy_size_t yy_buf_size;
147
-
148
- /* Number of characters read into yy_ch_buf, not including EOB
149
- * characters.
150
- */
151
- yy_size_t yy_n_chars;
152
-
153
- /* Whether we "own" the buffer - i.e., we know we created it,
154
- * and can realloc() it to grow it, and should free() it to
155
- * delete it.
156
- */
157
- int yy_is_our_buffer;
158
-
159
- /* Whether this is an "interactive" input source; if so, and
160
- * if we're using stdio for input, then we want to use getc()
161
- * instead of fread(), to make sure we stop fetching input after
162
- * each newline.
163
- */
164
- int yy_is_interactive;
165
-
166
- /* Whether we're considered to be at the beginning of a line.
167
- * If so, '^' rules will be active on the next match, otherwise
168
- * not.
169
- */
170
- int yy_at_bol;
171
-
172
- int yy_bs_lineno; /**< The line count. */
173
- int yy_bs_column; /**< The column count. */
174
-
175
- /* Whether to try to fill the input buffer when we reach the
176
- * end of it.
177
- */
178
- int yy_fill_buffer;
179
-
180
- int yy_buffer_status;
181
-
182
- };
183
- #endif /* !YY_STRUCT_YY_BUFFER_STATE */
184
-
185
- void yyrestart (FILE *input_file );
186
- void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer );
187
- YY_BUFFER_STATE yy_create_buffer (FILE *file,int size );
188
- void yy_delete_buffer (YY_BUFFER_STATE b );
189
- void yy_flush_buffer (YY_BUFFER_STATE b );
190
- void yypush_buffer_state (YY_BUFFER_STATE new_buffer );
191
- void yypop_buffer_state (void );
192
-
193
- YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );
194
- YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str );
195
- YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len );
196
-
197
- void *yyalloc (yy_size_t );
198
- void *yyrealloc (void *,yy_size_t );
199
- void yyfree (void * );
200
-
201
- extern int yylineno;
202
-
203
- extern char *yytext;
204
- #define yytext_ptr yytext
205
-
206
- #ifdef YY_HEADER_EXPORT_START_CONDITIONS
207
- #define INITIAL 0
208
-
209
- #endif
210
-
211
- #ifndef YY_NO_UNISTD_H
212
- /* Special case for "unistd.h", since it is non-ANSI. We include it way
213
- * down here because we want the user's section 1 to have been scanned first.
214
- * The user has a chance to override it with an option.
215
- */
216
- #include <unistd.h>
217
- #endif
218
-
219
- #ifndef YY_EXTRA_TYPE
220
- #define YY_EXTRA_TYPE void *
221
- #endif
222
-
223
- /* Accessor methods to globals.
224
- These are made visible to non-reentrant scanners for convenience. */
225
-
226
- int yylex_destroy (void );
227
-
228
- int yyget_debug (void );
229
-
230
- void yyset_debug (int debug_flag );
231
-
232
- YY_EXTRA_TYPE yyget_extra (void );
233
-
234
- void yyset_extra (YY_EXTRA_TYPE user_defined );
235
-
236
- FILE *yyget_in (void );
237
-
238
- void yyset_in (FILE * in_str );
239
-
240
- FILE *yyget_out (void );
241
-
242
- void yyset_out (FILE * out_str );
243
-
244
- yy_size_t yyget_leng (void );
245
-
246
- char *yyget_text (void );
247
-
248
- int yyget_lineno (void );
249
-
250
- void yyset_lineno (int line_number );
251
-
252
- /* Macros after this point can all be overridden by user definitions in
253
- * section 1.
254
- */
255
-
256
- #ifndef YY_SKIP_YYWRAP
257
- #ifdef __cplusplus
258
- extern "C" int yywrap (void );
259
- #else
260
- extern int yywrap (void );
261
- #endif
262
- #endif
263
-
264
- #ifndef yytext_ptr
265
- static void yy_flex_strncpy (char *,yyconst char *,int );
266
- #endif
267
-
268
- #ifdef YY_NEED_STRLEN
269
- static int yy_flex_strlen (yyconst char * );
270
- #endif
271
-
272
- #ifndef YY_NO_INPUT
273
-
274
- #endif
275
-
276
- /* Amount of stuff to slurp up with each read. */
277
- #ifndef YY_READ_BUF_SIZE
278
- #define YY_READ_BUF_SIZE 8192
279
- #endif
280
-
281
- /* Number of entries by which start-condition stack grows. */
282
- #ifndef YY_START_STACK_INCR
283
- #define YY_START_STACK_INCR 25
284
- #endif
285
-
286
- /* Default declaration of generated scanner - a define so the user can
287
- * easily add parameters.
288
- */
289
- #ifndef YY_DECL
290
- #define YY_DECL_IS_OURS 1
291
-
292
- extern int yylex (void);
293
-
294
- #define YY_DECL int yylex (void)
295
- #endif /* !YY_DECL */
296
-
297
- /* yy_get_previous_state - get the state just before the EOB char was reached */
298
-
299
- #undef YY_NEW_FILE
300
- #undef YY_FLUSH_BUFFER
301
- #undef yy_set_bol
302
- #undef yy_new_buffer
303
- #undef yy_set_interactive
304
- #undef YY_DO_BEFORE_ACTION
305
-
306
- #ifdef YY_DECL_IS_OURS
307
- #undef YY_DECL_IS_OURS
308
- #undef YY_DECL
309
- #endif
310
-
311
- #line 181 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/lexer.lex"
312
-
313
- #line 314 "lexer.h"
314
- #undef yyIN_HEADER
315
- #endif /* yyHEADER_H */
@@ -1,3105 +0,0 @@
1
- /* A Bison parser, made by GNU Bison 2.4.3. */
2
-
3
- /* Skeleton implementation 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
- /* C LALR(1) parser skeleton written by Richard Stallman, by
35
- simplifying the original so-called "semantic" parser. */
36
-
37
- /* All symbols defined below should begin with yy or YY, to avoid
38
- infringing on user name space. This should be done even for local
39
- variables, as they might otherwise be expanded by user macros.
40
- There are some unavoidable exceptions within include files to
41
- define necessary library symbols; they are noted "INFRINGES ON
42
- USER NAME SPACE" below. */
43
-
44
- /* Identify Bison output. */
45
- #define YYBISON 1
46
-
47
- /* Bison version. */
48
- #define YYBISON_VERSION "2.4.3"
49
-
50
- /* Skeleton name. */
51
- #define YYSKELETON_NAME "yacc.c"
52
-
53
- /* Pure parsers. */
54
- #define YYPURE 0
55
-
56
- /* Push parsers. */
57
- #define YYPUSH 0
58
-
59
- /* Pull parsers. */
60
- #define YYPULL 1
61
-
62
- /* Using locations. */
63
- #define YYLSP_NEEDED 0
64
-
65
-
66
-
67
- /* Copy the first part of user declarations. */
68
-
69
- /* Line 189 of yacc.c */
70
- #line 1 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
71
-
72
- #include "ruby.h"
73
-
74
- int yyerror(VALUE, char *s);
75
- int yylex(VALUE);
76
-
77
- VALUE fy_terminal_node(VALUE, char *);
78
- VALUE fy_terminal_node_from(VALUE, char *, char*);
79
-
80
- extern int yylineno;
81
- extern char *yytext;
82
-
83
-
84
-
85
- /* Line 189 of yacc.c */
86
- #line 87 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.c"
87
-
88
- /* Enabling traces. */
89
- #ifndef YYDEBUG
90
- # define YYDEBUG 0
91
- #endif
92
-
93
- /* Enabling verbose error messages. */
94
- #ifdef YYERROR_VERBOSE
95
- # undef YYERROR_VERBOSE
96
- # define YYERROR_VERBOSE 1
97
- #else
98
- # define YYERROR_VERBOSE 0
99
- #endif
100
-
101
- /* Enabling the token table. */
102
- #ifndef YYTOKEN_TABLE
103
- # define YYTOKEN_TABLE 0
104
- #endif
105
-
106
-
107
- /* Tokens. */
108
- #ifndef YYTOKENTYPE
109
- # define YYTOKENTYPE
110
- /* Put the tokens into the symbol table, so that GDB and other debuggers
111
- know about them. */
112
- enum yytokentype {
113
- LPAREN = 258,
114
- RPAREN = 259,
115
- LCURLY = 260,
116
- RCURLY = 261,
117
- LBRACKET = 262,
118
- RBRACKET = 263,
119
- LHASH = 264,
120
- RHASH = 265,
121
- STAB = 266,
122
- ARROW = 267,
123
- THIN_ARROW = 268,
124
- COMMA = 269,
125
- SEMI = 270,
126
- NL = 271,
127
- COLON = 272,
128
- RETURN_LOCAL = 273,
129
- RETURN = 274,
130
- REQUIRE = 275,
131
- TRY = 276,
132
- CATCH = 277,
133
- FINALLY = 278,
134
- RETRY = 279,
135
- SUPER = 280,
136
- PRIVATE = 281,
137
- PROTECTED = 282,
138
- CLASS = 283,
139
- DEF = 284,
140
- DOT = 285,
141
- DOLLAR = 286,
142
- EQUALS = 287,
143
- MATCH = 288,
144
- CASE = 289,
145
- IDENTIFIER = 290,
146
- RUBY_SEND_OPEN = 291,
147
- RUBY_OPER_OPEN = 292,
148
- CONSTANT = 293,
149
- INTEGER_LITERAL = 294,
150
- HEX_LITERAL = 295,
151
- OCT_LITERAL = 296,
152
- BIN_LITERAL = 297,
153
- DOUBLE_LITERAL = 298,
154
- STRING_LITERAL = 299,
155
- MULTI_STRING_LITERAL = 300,
156
- SYMBOL_LITERAL = 301,
157
- REGEX_LITERAL = 302,
158
- OPERATOR = 303
159
- };
160
- #endif
161
-
162
-
163
-
164
- #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
165
- typedef union YYSTYPE
166
- {
167
-
168
- /* Line 214 of yacc.c */
169
- #line 18 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
170
-
171
- VALUE object;
172
- ID symbol;
173
-
174
-
175
-
176
- /* Line 214 of yacc.c */
177
- #line 178 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.c"
178
- } YYSTYPE;
179
- # define YYSTYPE_IS_TRIVIAL 1
180
- # define yystype YYSTYPE /* obsolescent; will be withdrawn */
181
- # define YYSTYPE_IS_DECLARED 1
182
- #endif
183
-
184
-
185
- /* Copy the second part of user declarations. */
186
-
187
-
188
- /* Line 264 of yacc.c */
189
- #line 190 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.c"
190
-
191
- #ifdef short
192
- # undef short
193
- #endif
194
-
195
- #ifdef YYTYPE_UINT8
196
- typedef YYTYPE_UINT8 yytype_uint8;
197
- #else
198
- typedef unsigned char yytype_uint8;
199
- #endif
200
-
201
- #ifdef YYTYPE_INT8
202
- typedef YYTYPE_INT8 yytype_int8;
203
- #elif (defined __STDC__ || defined __C99__FUNC__ \
204
- || defined __cplusplus || defined _MSC_VER)
205
- typedef signed char yytype_int8;
206
- #else
207
- typedef short int yytype_int8;
208
- #endif
209
-
210
- #ifdef YYTYPE_UINT16
211
- typedef YYTYPE_UINT16 yytype_uint16;
212
- #else
213
- typedef unsigned short int yytype_uint16;
214
- #endif
215
-
216
- #ifdef YYTYPE_INT16
217
- typedef YYTYPE_INT16 yytype_int16;
218
- #else
219
- typedef short int yytype_int16;
220
- #endif
221
-
222
- #ifndef YYSIZE_T
223
- # ifdef __SIZE_TYPE__
224
- # define YYSIZE_T __SIZE_TYPE__
225
- # elif defined size_t
226
- # define YYSIZE_T size_t
227
- # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
228
- || defined __cplusplus || defined _MSC_VER)
229
- # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
230
- # define YYSIZE_T size_t
231
- # else
232
- # define YYSIZE_T unsigned int
233
- # endif
234
- #endif
235
-
236
- #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
237
-
238
- #ifndef YY_
239
- # if defined YYENABLE_NLS && YYENABLE_NLS
240
- # if ENABLE_NLS
241
- # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
242
- # define YY_(msgid) dgettext ("bison-runtime", msgid)
243
- # endif
244
- # endif
245
- # ifndef YY_
246
- # define YY_(msgid) msgid
247
- # endif
248
- #endif
249
-
250
- /* Suppress unused-variable warnings by "using" E. */
251
- #if ! defined lint || defined __GNUC__
252
- # define YYUSE(e) ((void) (e))
253
- #else
254
- # define YYUSE(e) /* empty */
255
- #endif
256
-
257
- /* Identity function, used to suppress warnings about constant conditions. */
258
- #ifndef lint
259
- # define YYID(n) (n)
260
- #else
261
- #if (defined __STDC__ || defined __C99__FUNC__ \
262
- || defined __cplusplus || defined _MSC_VER)
263
- static int
264
- YYID (int yyi)
265
- #else
266
- static int
267
- YYID (yyi)
268
- int yyi;
269
- #endif
270
- {
271
- return yyi;
272
- }
273
- #endif
274
-
275
- #if ! defined yyoverflow || YYERROR_VERBOSE
276
-
277
- /* The parser invokes alloca or malloc; define the necessary symbols. */
278
-
279
- # ifdef YYSTACK_USE_ALLOCA
280
- # if YYSTACK_USE_ALLOCA
281
- # ifdef __GNUC__
282
- # define YYSTACK_ALLOC __builtin_alloca
283
- # elif defined __BUILTIN_VA_ARG_INCR
284
- # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
285
- # elif defined _AIX
286
- # define YYSTACK_ALLOC __alloca
287
- # elif defined _MSC_VER
288
- # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
289
- # define alloca _alloca
290
- # else
291
- # define YYSTACK_ALLOC alloca
292
- # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
293
- || defined __cplusplus || defined _MSC_VER)
294
- # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
295
- # ifndef _STDLIB_H
296
- # define _STDLIB_H 1
297
- # endif
298
- # endif
299
- # endif
300
- # endif
301
- # endif
302
-
303
- # ifdef YYSTACK_ALLOC
304
- /* Pacify GCC's `empty if-body' warning. */
305
- # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
306
- # ifndef YYSTACK_ALLOC_MAXIMUM
307
- /* The OS might guarantee only one guard page at the bottom of the stack,
308
- and a page size can be as small as 4096 bytes. So we cannot safely
309
- invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
310
- to allow for a few compiler-allocated temporary stack slots. */
311
- # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
312
- # endif
313
- # else
314
- # define YYSTACK_ALLOC YYMALLOC
315
- # define YYSTACK_FREE YYFREE
316
- # ifndef YYSTACK_ALLOC_MAXIMUM
317
- # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
318
- # endif
319
- # if (defined __cplusplus && ! defined _STDLIB_H \
320
- && ! ((defined YYMALLOC || defined malloc) \
321
- && (defined YYFREE || defined free)))
322
- # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
323
- # ifndef _STDLIB_H
324
- # define _STDLIB_H 1
325
- # endif
326
- # endif
327
- # ifndef YYMALLOC
328
- # define YYMALLOC malloc
329
- # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
330
- || defined __cplusplus || defined _MSC_VER)
331
- void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
332
- # endif
333
- # endif
334
- # ifndef YYFREE
335
- # define YYFREE free
336
- # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
337
- || defined __cplusplus || defined _MSC_VER)
338
- void free (void *); /* INFRINGES ON USER NAME SPACE */
339
- # endif
340
- # endif
341
- # endif
342
- #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
343
-
344
-
345
- #if (! defined yyoverflow \
346
- && (! defined __cplusplus \
347
- || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
348
-
349
- /* A type that is properly aligned for any stack member. */
350
- union yyalloc
351
- {
352
- yytype_int16 yyss_alloc;
353
- YYSTYPE yyvs_alloc;
354
- };
355
-
356
- /* The size of the maximum gap between one aligned stack and the next. */
357
- # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
358
-
359
- /* The size of an array large to enough to hold all stacks, each with
360
- N elements. */
361
- # define YYSTACK_BYTES(N) \
362
- ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
363
- + YYSTACK_GAP_MAXIMUM)
364
-
365
- /* Copy COUNT objects from FROM to TO. The source and destination do
366
- not overlap. */
367
- # ifndef YYCOPY
368
- # if defined __GNUC__ && 1 < __GNUC__
369
- # define YYCOPY(To, From, Count) \
370
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
371
- # else
372
- # define YYCOPY(To, From, Count) \
373
- do \
374
- { \
375
- YYSIZE_T yyi; \
376
- for (yyi = 0; yyi < (Count); yyi++) \
377
- (To)[yyi] = (From)[yyi]; \
378
- } \
379
- while (YYID (0))
380
- # endif
381
- # endif
382
-
383
- /* Relocate STACK from its old location to the new one. The
384
- local variables YYSIZE and YYSTACKSIZE give the old and new number of
385
- elements in the stack, and YYPTR gives the new location of the
386
- stack. Advance YYPTR to a properly aligned location for the next
387
- stack. */
388
- # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
389
- do \
390
- { \
391
- YYSIZE_T yynewbytes; \
392
- YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
393
- Stack = &yyptr->Stack_alloc; \
394
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
395
- yyptr += yynewbytes / sizeof (*yyptr); \
396
- } \
397
- while (YYID (0))
398
-
399
- #endif
400
-
401
- /* YYFINAL -- State number of the termination state. */
402
- #define YYFINAL 105
403
- /* YYLAST -- Last index in YYTABLE. */
404
- #define YYLAST 1133
405
-
406
- /* YYNTOKENS -- Number of terminals. */
407
- #define YYNTOKENS 49
408
- /* YYNNTS -- Number of nonterminals. */
409
- #define YYNNTS 73
410
- /* YYNRULES -- Number of rules. */
411
- #define YYNRULES 165
412
- /* YYNRULES -- Number of states. */
413
- #define YYNSTATES 279
414
-
415
- /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
416
- #define YYUNDEFTOK 2
417
- #define YYMAXUTOK 303
418
-
419
- #define YYTRANSLATE(YYX) \
420
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
421
-
422
- /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
423
- static const yytype_uint8 yytranslate[] =
424
- {
425
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
426
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
427
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
428
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
429
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
430
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
431
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
432
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
433
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
434
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
435
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
436
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
437
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
438
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
439
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
440
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
441
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
442
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
443
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
444
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
445
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
446
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
447
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
448
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
449
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
450
- 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
451
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
452
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
453
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
454
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
455
- 45, 46, 47, 48
456
- };
457
-
458
- #if YYDEBUG
459
- /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
460
- YYRHS. */
461
- static const yytype_uint16 yyprhs[] =
462
- {
463
- 0, 0, 3, 4, 6, 8, 10, 13, 15, 18,
464
- 19, 21, 23, 25, 27, 30, 33, 36, 42, 46,
465
- 48, 50, 52, 54, 56, 58, 60, 62, 64, 66,
466
- 68, 70, 72, 74, 76, 78, 84, 88, 93, 95,
467
- 99, 101, 103, 105, 107, 109, 111, 113, 115, 119,
468
- 122, 124, 127, 129, 132, 135, 137, 139, 141, 144,
469
- 147, 150, 152, 156, 162, 164, 166, 168, 170, 172,
470
- 174, 178, 180, 183, 186, 195, 197, 201, 205, 209,
471
- 214, 219, 224, 230, 236, 243, 246, 249, 251, 253,
472
- 255, 259, 262, 265, 269, 271, 274, 278, 284, 289,
473
- 293, 297, 302, 307, 313, 315, 319, 321, 324, 329,
474
- 333, 336, 340, 346, 348, 351, 353, 356, 357, 360,
475
- 362, 364, 366, 368, 370, 372, 374, 376, 378, 380,
476
- 382, 384, 386, 388, 390, 392, 394, 396, 398, 400,
477
- 402, 404, 406, 412, 414, 419, 422, 426, 432, 436,
478
- 438, 444, 448, 455, 457, 459, 461, 464, 466, 470,
479
- 476, 485, 493, 495, 498, 503
480
- };
481
-
482
- /* YYRHS -- A `-1'-separated list of the rules' RHS. */
483
- static const yytype_int8 yyrhs[] =
484
- {
485
- 50, 0, -1, -1, 55, -1, 52, -1, 15, -1,
486
- 51, 51, -1, 16, -1, 52, 16, -1, -1, 52,
487
- -1, 57, -1, 58, -1, 54, -1, 55, 54, -1,
488
- 51, 55, -1, 55, 51, -1, 5, 53, 55, 53,
489
- 6, -1, 5, 53, 6, -1, 59, -1, 66, -1,
490
- 67, -1, 68, -1, 74, -1, 69, -1, 94, -1,
491
- 119, -1, 85, -1, 90, -1, 88, -1, 91, -1,
492
- 107, -1, 64, -1, 25, -1, 24, -1, 3, 53,
493
- 58, 53, 4, -1, 58, 30, 53, -1, 64, 32,
494
- 53, 58, -1, 60, -1, 65, 32, 109, -1, 48,
495
- -1, 38, -1, 35, -1, 33, -1, 28, -1, 70,
496
- -1, 63, -1, 64, -1, 65, 14, 64, -1, 18,
497
- 58, -1, 18, -1, 19, 58, -1, 19, -1, 20,
498
- 101, -1, 20, 64, -1, 72, -1, 73, -1, 62,
499
- -1, 70, 62, -1, 29, 26, -1, 29, 27, -1,
500
- 29, -1, 28, 70, 56, -1, 28, 70, 17, 70,
501
- 56, -1, 79, -1, 80, -1, 81, -1, 82, -1,
502
- 83, -1, 84, -1, 63, 17, 63, -1, 75, -1,
503
- 76, 75, -1, 76, 78, -1, 63, 17, 63, 3,
504
- 53, 58, 53, 4, -1, 77, -1, 78, 53, 77,
505
- -1, 71, 76, 56, -1, 71, 63, 56, -1, 71,
506
- 64, 76, 56, -1, 71, 64, 63, 56, -1, 71,
507
- 61, 63, 56, -1, 71, 7, 8, 63, 56, -1,
508
- 71, 64, 61, 63, 56, -1, 71, 64, 7, 8,
509
- 63, 56, -1, 58, 63, -1, 58, 92, -1, 92,
510
- -1, 36, -1, 37, -1, 58, 86, 89, -1, 86,
511
- 89, -1, 4, 112, -1, 109, 4, 112, -1, 4,
512
- -1, 109, 4, -1, 58, 61, 93, -1, 58, 61,
513
- 30, 53, 93, -1, 58, 7, 58, 8, -1, 58,
514
- 87, 89, -1, 63, 17, 93, -1, 63, 17, 53,
515
- 93, -1, 92, 63, 17, 93, -1, 92, 63, 17,
516
- 53, 93, -1, 64, -1, 3, 58, 4, -1, 107,
517
- -1, 31, 58, -1, 21, 56, 97, 98, -1, 21,
518
- 56, 96, -1, 22, 56, -1, 22, 58, 56, -1,
519
- 22, 58, 12, 63, 56, -1, 95, -1, 96, 95,
520
- -1, 95, -1, 97, 95, -1, -1, 23, 56, -1,
521
- 39, -1, 43, -1, 44, -1, 45, -1, 46, -1,
522
- 47, -1, 40, -1, 41, -1, 42, -1, 99, -1,
523
- 104, -1, 105, -1, 106, -1, 100, -1, 101, -1,
524
- 102, -1, 111, -1, 108, -1, 103, -1, 112, -1,
525
- 113, -1, 114, -1, 110, -1, 7, 53, 109, 53,
526
- 8, -1, 58, -1, 109, 14, 53, 58, -1, 109,
527
- 14, -1, 7, 53, 8, -1, 9, 53, 118, 53,
528
- 10, -1, 9, 53, 10, -1, 56, -1, 11, 115,
529
- 11, 53, 56, -1, 3, 109, 4, -1, 3, 58,
530
- 30, 30, 58, 4, -1, 117, -1, 116, -1, 63,
531
- -1, 116, 63, -1, 63, -1, 117, 14, 63, -1,
532
- 58, 53, 12, 53, 58, -1, 118, 14, 53, 58,
533
- 53, 12, 53, 58, -1, 33, 58, 5, 53, 120,
534
- 53, 6, -1, 121, -1, 120, 121, -1, 34, 58,
535
- 13, 55, -1, 34, 58, 13, 11, 115, 11, 55,
536
- -1
537
- };
538
-
539
- /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
540
- static const yytype_uint16 yyrline[] =
541
- {
542
- 0, 156, 156, 157, 162, 163, 164, 167, 168, 171,
543
- 172, 175, 176, 179, 182, 185, 188, 193, 196, 201,
544
- 202, 203, 204, 207, 208, 209, 210, 211, 212, 213,
545
- 214, 215, 216, 217, 218, 219, 222, 227, 230, 233,
546
- 238, 243, 248, 251, 254, 259, 260, 263, 266, 271,
547
- 274, 279, 282, 287, 290, 295, 296, 299, 302, 307,
548
- 308, 309, 312, 317, 322, 323, 324, 325, 326, 327,
549
- 330, 335, 338, 341, 346, 351, 354, 359, 365, 371,
550
- 376, 381, 384, 390, 393, 399, 402, 405, 414, 418,
551
- 423, 426, 436, 439, 442, 445, 450, 453, 456, 462,
552
- 468, 471, 474, 477, 482, 485, 488, 491, 496, 499,
553
- 504, 507, 510, 515, 518, 523, 526, 529, 534, 539,
554
- 543, 547, 550, 554, 558, 563, 569, 575, 581, 582,
555
- 583, 584, 585, 586, 587, 588, 589, 590, 591, 592,
556
- 593, 596, 599, 604, 607, 610, 615, 620, 623, 628,
557
- 631, 636, 641, 646, 647, 650, 653, 658, 661, 666,
558
- 669, 674, 679, 682, 687, 690
559
- };
560
- #endif
561
-
562
- #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
563
- /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
564
- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
565
- static const char *const yytname[] =
566
- {
567
- "$end", "error", "$undefined", "LPAREN", "RPAREN", "LCURLY", "RCURLY",
568
- "LBRACKET", "RBRACKET", "LHASH", "RHASH", "STAB", "ARROW", "THIN_ARROW",
569
- "COMMA", "SEMI", "NL", "COLON", "RETURN_LOCAL", "RETURN", "REQUIRE",
570
- "TRY", "CATCH", "FINALLY", "RETRY", "SUPER", "PRIVATE", "PROTECTED",
571
- "CLASS", "DEF", "DOT", "DOLLAR", "EQUALS", "MATCH", "CASE", "IDENTIFIER",
572
- "RUBY_SEND_OPEN", "RUBY_OPER_OPEN", "CONSTANT", "INTEGER_LITERAL",
573
- "HEX_LITERAL", "OCT_LITERAL", "BIN_LITERAL", "DOUBLE_LITERAL",
574
- "STRING_LITERAL", "MULTI_STRING_LITERAL", "SYMBOL_LITERAL",
575
- "REGEX_LITERAL", "OPERATOR", "$accept", "programm", "delim", "nls",
576
- "space", "code", "expression_list", "expression_block", "statement",
577
- "exp", "assignment", "multiple_assignment", "operator", "constant",
578
- "identifier", "any_identifier", "identifier_list",
579
- "return_local_statement", "return_statement", "require_statement",
580
- "class_def", "const_identifier", "def", "class_no_super", "class_super",
581
- "method_def", "method_arg", "method_args", "method_arg_default",
582
- "method_args_default", "method_w_args", "method_no_args",
583
- "class_method_w_args", "class_method_no_args", "operator_def",
584
- "class_operator_def", "message_send", "ruby_send_open", "ruby_oper_open",
585
- "ruby_send", "ruby_args", "operator_send", "ruby_oper_send", "send_args",
586
- "arg_exp", "try_catch_block", "catch_block", "required_catch_blocks",
587
- "catch_blocks", "finally_block", "integer_literal", "double_literal",
588
- "string_literal", "symbol_literal", "regex_literal", "hex_literal",
589
- "oct_literal", "bin_literal", "literal_value", "array_literal",
590
- "exp_comma_list", "empty_array", "hash_literal", "block_literal",
591
- "tuple_literal", "range_literal", "block_args",
592
- "block_args_without_comma", "block_args_with_comma", "key_value_list",
593
- "match_expr", "match_body", "match_clause", 0
594
- };
595
- #endif
596
-
597
- # ifdef YYPRINT
598
- /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
599
- token YYLEX-NUM. */
600
- static const yytype_uint16 yytoknum[] =
601
- {
602
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
603
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
604
- 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
605
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
606
- 295, 296, 297, 298, 299, 300, 301, 302, 303
607
- };
608
- # endif
609
-
610
- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
611
- static const yytype_uint8 yyr1[] =
612
- {
613
- 0, 49, 50, 50, 51, 51, 51, 52, 52, 53,
614
- 53, 54, 54, 55, 55, 55, 55, 56, 56, 57,
615
- 57, 57, 57, 58, 58, 58, 58, 58, 58, 58,
616
- 58, 58, 58, 58, 58, 58, 58, 59, 59, 60,
617
- 61, 62, 63, 63, 63, 64, 64, 65, 65, 66,
618
- 66, 67, 67, 68, 68, 69, 69, 70, 70, 71,
619
- 71, 71, 72, 73, 74, 74, 74, 74, 74, 74,
620
- 75, 76, 76, 76, 77, 78, 78, 79, 80, 81,
621
- 82, 83, 83, 84, 84, 85, 85, 85, 86, 87,
622
- 88, 88, 89, 89, 89, 89, 90, 90, 90, 91,
623
- 92, 92, 92, 92, 93, 93, 93, 93, 94, 94,
624
- 95, 95, 95, 96, 96, 97, 97, 97, 98, 99,
625
- 100, 101, 101, 102, 103, 104, 105, 106, 107, 107,
626
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
627
- 107, 108, 108, 109, 109, 109, 110, 111, 111, 112,
628
- 112, 113, 114, 115, 115, 116, 116, 117, 117, 118,
629
- 118, 119, 120, 120, 121, 121
630
- };
631
-
632
- /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
633
- static const yytype_uint8 yyr2[] =
634
- {
635
- 0, 2, 0, 1, 1, 1, 2, 1, 2, 0,
636
- 1, 1, 1, 1, 2, 2, 2, 5, 3, 1,
637
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
638
- 1, 1, 1, 1, 1, 5, 3, 4, 1, 3,
639
- 1, 1, 1, 1, 1, 1, 1, 1, 3, 2,
640
- 1, 2, 1, 2, 2, 1, 1, 1, 2, 2,
641
- 2, 1, 3, 5, 1, 1, 1, 1, 1, 1,
642
- 3, 1, 2, 2, 8, 1, 3, 3, 3, 4,
643
- 4, 4, 5, 5, 6, 2, 2, 1, 1, 1,
644
- 3, 2, 2, 3, 1, 2, 3, 5, 4, 3,
645
- 3, 4, 4, 5, 1, 3, 1, 2, 4, 3,
646
- 2, 3, 5, 1, 2, 1, 2, 0, 2, 1,
647
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
648
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
649
- 1, 1, 5, 1, 4, 2, 3, 5, 3, 1,
650
- 5, 3, 6, 1, 1, 1, 2, 1, 3, 5,
651
- 8, 7, 1, 2, 4, 7
652
- };
653
-
654
- /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
655
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
656
- means the default is an error. */
657
- static const yytype_uint8 yydefact[] =
658
- {
659
- 2, 0, 9, 9, 9, 0, 5, 7, 50, 52,
660
- 0, 0, 34, 33, 44, 61, 43, 42, 88, 41,
661
- 119, 125, 126, 127, 120, 121, 122, 123, 124, 0,
662
- 0, 4, 13, 3, 149, 11, 12, 19, 38, 57,
663
- 46, 32, 0, 20, 21, 22, 24, 45, 0, 55,
664
- 56, 23, 64, 65, 66, 67, 68, 69, 27, 0,
665
- 29, 28, 30, 87, 25, 128, 132, 133, 134, 137,
666
- 129, 130, 131, 31, 136, 141, 135, 138, 139, 140,
667
- 26, 10, 0, 143, 32, 0, 0, 0, 0, 44,
668
- 43, 155, 0, 154, 153, 49, 51, 46, 54, 53,
669
- 117, 0, 59, 60, 0, 1, 0, 15, 8, 16,
670
- 14, 0, 9, 89, 40, 0, 85, 0, 0, 86,
671
- 0, 9, 0, 0, 58, 0, 0, 46, 0, 71,
672
- 0, 94, 143, 91, 0, 0, 9, 9, 151, 9,
673
- 18, 9, 146, 9, 148, 9, 9, 9, 156, 0,
674
- 0, 113, 109, 0, 0, 62, 9, 6, 0, 36,
675
- 0, 9, 0, 104, 96, 106, 90, 99, 0, 100,
676
- 0, 48, 39, 0, 0, 0, 78, 0, 0, 0,
677
- 0, 77, 0, 72, 75, 9, 92, 95, 0, 0,
678
- 0, 0, 4, 0, 0, 0, 9, 0, 0, 158,
679
- 110, 0, 114, 0, 116, 108, 0, 0, 98, 143,
680
- 0, 107, 101, 37, 0, 81, 70, 0, 0, 80,
681
- 79, 0, 0, 93, 0, 102, 35, 0, 144, 17,
682
- 142, 9, 0, 147, 150, 0, 111, 118, 63, 0,
683
- 9, 162, 105, 97, 82, 0, 83, 70, 0, 76,
684
- 103, 152, 0, 9, 0, 0, 0, 163, 84, 9,
685
- 0, 159, 0, 112, 0, 161, 0, 0, 9, 0,
686
- 164, 9, 0, 0, 0, 160, 0, 74, 165
687
- };
688
-
689
- /* YYDEFGOTO[NTERM-NUM]. */
690
- static const yytype_int16 yydefgoto[] =
691
- {
692
- -1, 29, 109, 81, 159, 32, 107, 34, 35, 36,
693
- 37, 38, 115, 39, 40, 84, 42, 43, 44, 45,
694
- 46, 47, 48, 49, 50, 51, 129, 130, 184, 185,
695
- 52, 53, 54, 55, 56, 57, 58, 59, 118, 60,
696
- 133, 61, 62, 63, 164, 64, 151, 152, 153, 205,
697
- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
698
- 134, 75, 76, 77, 78, 79, 92, 93, 94, 146,
699
- 80, 240, 241
700
- };
701
-
702
- /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
703
- STATE-NUM. */
704
- #define YYPACT_NINF -125
705
- static const yytype_int16 yypact[] =
706
- {
707
- 681, 771, -1, -1, -1, 64, -125, -125, 951, 951,
708
- 217, 15, -125, -125, -15, 121, 951, -125, -125, -125,
709
- -125, -125, -125, -125, -125, -125, -125, -125, -125, 27,
710
- 681, 25, -125, 681, -125, -125, 102, -125, -125, -125,
711
- 44, 3, 7, -125, -125, -125, -125, -15, 96, -125,
712
- -125, -125, -125, -125, -125, -125, -125, -125, -125, 816,
713
- -125, -125, -125, 64, -125, -125, -125, -125, -125, -125,
714
- -125, -125, -125, -125, -125, -125, -125, -125, -125, -125,
715
- -125, 25, 951, 495, -125, 28, 636, 861, 906, -125,
716
- -125, 32, 56, 64, 81, 102, 102, -125, -125, -125,
717
- 55, 11, -125, -125, 320, -125, 681, 681, -125, 137,
718
- -125, 951, -1, -125, -125, 996, 44, 816, 816, 64,
719
- 1041, -1, 63, 951, -125, 92, 64, 14, 22, -125,
720
- 123, 13, 102, -125, 74, 88, 185, 6, -125, 546,
721
- -125, 681, -125, 31, -125, 185, 65, -1, -125, 64,
722
- 951, 85, 55, 157, -15, -125, -1, 137, 344, -125,
723
- 951, -1, 951, -125, -125, -125, -125, -125, 1086, -125,
724
- 951, -125, 98, 64, 15, 64, -125, 113, 64, 14,
725
- 123, -125, 106, -125, -125, 58, -125, 13, 1041, 129,
726
- 951, 951, 25, 130, 119, 128, -1, 147, 15, -125,
727
- -125, 195, -125, 15, -125, -125, 20, 132, -125, 36,
728
- 1086, 260, -125, 102, 15, -125, -125, 64, 15, -125,
729
- -125, 64, 64, -125, 1086, -125, -125, 139, 102, -125,
730
- -125, -1, 951, -125, -125, 64, -125, -125, -125, 951,
731
- 10, -125, -125, -125, -125, 15, -125, 160, 156, -125,
732
- -125, -125, 951, 185, 15, 584, 171, -125, -125, -1,
733
- 64, 102, 182, -125, 726, -125, 951, 160, -1, 64,
734
- 681, 185, 951, 172, 194, 102, 681, -125, 681
735
- };
736
-
737
- /* YYPGOTO[NTERM-NUM]. */
738
- static const yytype_int16 yypgoto[] =
739
- {
740
- -125, -125, 8, 4, 50, -22, 1, 303, -125, 67,
741
- -125, -125, -35, -42, 239, 0, -125, -125, -125, -125,
742
- -125, -12, -125, -125, -125, -125, -124, 71, -19, -125,
743
- -125, -125, -125, -125, -125, -125, -125, 340, -125, -125,
744
- 42, -125, -125, 375, -106, -125, 29, -125, -125, -125,
745
- -125, -125, 198, -125, -125, -125, -125, -125, -108, -125,
746
- 2, -125, -125, -122, -125, -125, -65, -125, -125, -125,
747
- -125, -125, -31
748
- };
749
-
750
- /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
751
- positive, shift that token. If negative, reduce the rule which
752
- number is the opposite. If zero, do what YYDEFACT says.
753
- If YYTABLE_NINF, syntax error. */
754
- #define YYTABLE_NINF -158
755
- static const yytype_int16 yytable[] =
756
- {
757
- 41, 33, 101, 85, 31, 124, 183, 165, 30, 186,
758
- 98, 110, 165, 126, 169, 7, 2, -47, 2, 2,
759
- 2, 122, 7, 19, 5, 2, 7, 105, 154, 177,
760
- 41, 175, 138, 41, 31, 121, 190, 31, 106, 123,
761
- 242, 108, 139, 111, 239, 139, -157, 7, 128, 19,
762
- 89, 82, 86, 87, 88, 90, 183, 17, 19, 124,
763
- 165, 120, 212, -73, 89, 223, 137, 147, 83, 90,
764
- 114, 17, 18, 113, 7, 95, 96, 150, 187, 196,
765
- 165, 7, 225, 104, 114, 110, 41, 141, 139, 143,
766
- 31, 89, 89, 178, 30, 149, 90, 90, 17, 17,
767
- 173, 19, 165, 125, 243, 188, 41, 41, -115, 111,
768
- 31, 31, 139, 31, 106, 163, 165, 157, 250, 110,
769
- 163, 217, 171, 221, 89, 172, 132, 230, 2, 90,
770
- 89, 17, 112, 226, 19, 90, 229, 17, 18, 113,
771
- 231, 41, 206, 251, 114, 192, 111, 102, 103, 136,
772
- 114, 89, 6, 7, 132, 145, 90, 233, 17, 166,
773
- 167, 31, 85, 259, 124, 157, 239, 89, 163, 112,
774
- 168, 170, 90, 260, 17, 18, 113, 265, 158, 150,
775
- 203, 202, 204, 276, 132, 132, 189, 114, 163, 191,
776
- 132, 193, 111, 194, 268, 195, 197, 198, 277, 180,
777
- 2, 7, 111, 249, 273, 0, 207, 235, 99, 257,
778
- 163, 210, 0, 89, 0, 112, 0, 201, 90, 0,
779
- 17, 18, 113, 89, 163, 112, 0, 209, 90, 211,
780
- 17, 18, 113, 114, 0, 222, 0, 213, 224, 0,
781
- 0, 0, 0, 114, 91, 89, 232, 0, 110, 97,
782
- 90, 0, 17, 0, 0, 19, 110, 227, 228, 0,
783
- 0, 25, 26, 0, 41, 270, 0, 111, 31, 0,
784
- 41, 0, 30, 0, 31, 116, 41, 278, 41, 0,
785
- 192, 252, 31, 0, 30, 0, 0, 127, 89, 0,
786
- 256, 0, 0, 90, 0, 17, 18, 113, 0, 253,
787
- 0, 0, 135, 262, 0, 0, 255, 0, 114, 266,
788
- 0, 0, 0, 0, 100, 0, 0, 0, 272, 261,
789
- 0, 274, 116, 0, 0, 156, 198, 111, 0, 0,
790
- 0, 0, 148, 271, 116, 116, 0, 0, 0, 275,
791
- 0, 0, 0, 116, 0, 0, 0, 0, 89, 0,
792
- 112, 111, 208, 90, 97, 17, 18, 113, 135, 97,
793
- 0, 97, 0, 0, 0, 174, 0, 179, 114, 182,
794
- 0, 116, 89, 0, 112, 116, 117, 90, 0, 17,
795
- 18, 113, 0, 0, 116, 0, 0, 0, 199, 0,
796
- 0, 0, 114, 0, 0, 0, 0, 116, 0, 0,
797
- 0, 0, 0, 0, 155, 0, 0, 97, 0, 0,
798
- 0, 119, 214, 0, 216, 0, 0, 218, 0, 182,
799
- 0, 0, 0, 117, 0, 0, 0, 97, 0, 0,
800
- 176, 0, 0, 181, 0, 117, 117, 0, 0, 0,
801
- 116, 0, 0, 0, 117, 0, 0, 0, 116, 97,
802
- 116, 0, 116, 200, 0, 0, 245, 0, 119, 0,
803
- 247, 248, 0, 97, 0, 0, 116, 116, 0, 0,
804
- 119, 119, 117, 0, 254, 0, 117, 215, 0, 119,
805
- 0, 0, 219, 220, 0, 117, 0, 0, 0, 0,
806
- 0, 0, 116, 0, 116, 0, 0, 0, 117, 267,
807
- 116, 234, 111, 0, 236, 0, 237, 119, 91, 238,
808
- 116, 119, 0, 0, 116, 0, 0, 244, 0, 0,
809
- 119, 246, 0, 89, 0, 137, 0, 0, 90, 0,
810
- 17, 18, 113, 119, 0, 0, 0, 0, 0, 0,
811
- 0, 117, 0, 114, 0, 0, -145, 0, 258, 117,
812
- -145, 117, -145, 117, -145, 0, 0, 263, 0, 0,
813
- -145, -145, 7, 0, -145, -145, -145, 117, 117, 0,
814
- 0, 0, 0, 0, 0, 0, 119, 0, 0, 0,
815
- -145, 0, 0, 0, 119, 0, 119, 0, 119, 0,
816
- 0, 111, 0, 117, 0, 117, 0, 264, 0, 0,
817
- 0, 117, 119, 119, 0, 0, 0, 0, 0, 0,
818
- 0, 117, 89, 0, 112, 117, 0, 90, 0, 17,
819
- 18, 113, 0, 0, 0, 0, 0, 0, 119, 0,
820
- 119, 0, 114, 0, 0, 0, 119, 0, 0, 1,
821
- 0, 2, 140, 3, 0, 4, 119, 5, 0, 0,
822
- 119, 6, 7, 0, 8, 9, 10, 11, 0, 0,
823
- 12, 13, 0, 0, 14, 15, 0, 0, 0, 16,
824
- 0, 17, 18, 0, 19, 20, 21, 22, 23, 24,
825
- 25, 26, 27, 28, 1, 0, 2, 0, 3, 0,
826
- 4, 0, 5, 0, 0, 0, 6, 7, 0, 8,
827
- 9, 10, 11, 0, 0, 12, 13, 0, 0, 14,
828
- 15, 0, 0, 0, 16, 0, 17, 18, 0, 19,
829
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 1,
830
- 0, 2, 0, 3, 0, 4, 0, 269, 0, 0,
831
- 0, 6, 7, 0, 8, 9, 10, 11, 0, 0,
832
- 12, 13, 0, 0, 14, 15, 0, 0, 0, 16,
833
- 0, 17, 18, 0, 19, 20, 21, 22, 23, 24,
834
- 25, 26, 27, 28, 1, 0, 2, 0, 3, 0,
835
- 4, 0, 5, 0, 0, 0, 0, 7, 0, 0,
836
- 0, 0, 11, 0, 0, 12, 13, 0, 0, 14,
837
- 15, 0, 0, 0, 16, 0, 17, 18, 0, 19,
838
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 1,
839
- 131, 2, 0, 3, 0, 4, 0, 5, 0, 0,
840
- 0, 0, 0, 0, 0, 0, 0, 11, 0, 0,
841
- 12, 13, 0, 0, 14, 15, 0, 0, 0, 16,
842
- 0, 17, 18, 0, 19, 20, 21, 22, 23, 24,
843
- 25, 26, 27, 28, 1, 0, 2, 0, 3, 142,
844
- 4, 0, 5, 0, 0, 0, 0, 0, 0, 0,
845
- 0, 0, 11, 0, 0, 12, 13, 0, 0, 14,
846
- 15, 0, 0, 0, 16, 0, 17, 18, 0, 19,
847
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 1,
848
- 0, 2, 0, 3, 0, 4, 144, 5, 0, 0,
849
- 0, 0, 0, 0, 0, 0, 0, 11, 0, 0,
850
- 12, 13, 0, 0, 14, 15, 0, 0, 0, 16,
851
- 0, 17, 18, 0, 19, 20, 21, 22, 23, 24,
852
- 25, 26, 27, 28, 1, 0, 2, 0, 3, 0,
853
- 4, 0, 5, 0, 0, 0, 0, 0, 0, 0,
854
- 0, 0, 11, 0, 0, 12, 13, 0, 0, 14,
855
- 15, 0, 0, 0, 16, 0, 17, 18, 0, 19,
856
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 160,
857
- 0, 2, 0, 3, 0, 4, 0, 5, 0, 0,
858
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
859
- 0, 0, 0, 0, 89, 0, 161, 162, 0, 90,
860
- 0, 17, 0, 0, 19, 20, 21, 22, 23, 24,
861
- 25, 26, 27, 28, 160, 0, 2, 0, 3, 0,
862
- 4, 0, 5, 0, 0, 0, 0, 7, 0, 0,
863
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 89,
864
- 0, 0, 162, 0, 90, 0, 17, 0, 0, 19,
865
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 160,
866
- 0, 2, 0, 3, 0, 4, 0, 5, 0, 0,
867
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
868
- 0, 0, 0, 0, 89, 0, 0, 162, 0, 90,
869
- 0, 17, 0, 0, 19, 20, 21, 22, 23, 24,
870
- 25, 26, 27, 28
871
- };
872
-
873
- static const yytype_int16 yycheck[] =
874
- {
875
- 0, 0, 14, 1, 0, 47, 130, 115, 0, 131,
876
- 10, 33, 120, 48, 120, 16, 5, 14, 5, 5,
877
- 5, 14, 16, 38, 11, 5, 16, 0, 17, 7,
878
- 30, 17, 4, 33, 30, 32, 30, 33, 30, 32,
879
- 4, 16, 14, 7, 34, 14, 14, 16, 48, 38,
880
- 28, 1, 2, 3, 4, 33, 180, 35, 38, 101,
881
- 168, 17, 168, 5, 28, 187, 30, 11, 1, 33,
882
- 48, 35, 36, 37, 16, 8, 9, 22, 4, 14,
883
- 188, 16, 188, 16, 48, 107, 86, 86, 14, 87,
884
- 86, 28, 28, 128, 86, 14, 33, 33, 35, 35,
885
- 8, 38, 210, 7, 210, 17, 106, 107, 23, 7,
886
- 106, 107, 14, 109, 106, 115, 224, 109, 224, 141,
887
- 120, 8, 122, 17, 28, 123, 59, 8, 5, 33,
888
- 28, 35, 30, 4, 38, 33, 6, 35, 36, 37,
889
- 12, 141, 154, 4, 48, 141, 7, 26, 27, 82,
890
- 48, 28, 15, 16, 87, 88, 33, 10, 35, 117,
891
- 118, 157, 160, 3, 206, 157, 34, 28, 168, 30,
892
- 120, 121, 33, 17, 35, 36, 37, 6, 111, 22,
893
- 23, 152, 153, 11, 117, 118, 136, 48, 188, 139,
894
- 123, 141, 7, 143, 12, 145, 146, 147, 4, 128,
895
- 5, 16, 7, 222, 269, -1, 156, 12, 10, 240,
896
- 210, 161, -1, 28, -1, 30, -1, 150, 33, -1,
897
- 35, 36, 37, 28, 224, 30, -1, 160, 33, 162,
898
- 35, 36, 37, 48, -1, 185, -1, 170, 188, -1,
899
- -1, -1, -1, 48, 5, 28, 196, -1, 270, 10,
900
- 33, -1, 35, -1, -1, 38, 278, 190, 191, -1,
901
- -1, 44, 45, -1, 264, 264, -1, 7, 264, -1,
902
- 270, -1, 264, -1, 270, 36, 276, 276, 278, -1,
903
- 276, 231, 278, -1, 276, -1, -1, 48, 28, -1,
904
- 240, -1, -1, 33, -1, 35, 36, 37, -1, 232,
905
- -1, -1, 63, 253, -1, -1, 239, -1, 48, 259,
906
- -1, -1, -1, -1, 11, -1, -1, -1, 268, 252,
907
- -1, 271, 83, -1, -1, 5, 276, 7, -1, -1,
908
- -1, -1, 93, 266, 95, 96, -1, -1, -1, 272,
909
- -1, -1, -1, 104, -1, -1, -1, -1, 28, -1,
910
- 30, 7, 8, 33, 115, 35, 36, 37, 119, 120,
911
- -1, 122, -1, -1, -1, 126, -1, 128, 48, 130,
912
- -1, 132, 28, -1, 30, 136, 36, 33, -1, 35,
913
- 36, 37, -1, -1, 145, -1, -1, -1, 149, -1,
914
- -1, -1, 48, -1, -1, -1, -1, 158, -1, -1,
915
- -1, -1, -1, -1, 101, -1, -1, 168, -1, -1,
916
- -1, 36, 173, -1, 175, -1, -1, 178, -1, 180,
917
- -1, -1, -1, 83, -1, -1, -1, 188, -1, -1,
918
- 127, -1, -1, 130, -1, 95, 96, -1, -1, -1,
919
- 201, -1, -1, -1, 104, -1, -1, -1, 209, 210,
920
- 211, -1, 213, 150, -1, -1, 217, -1, 83, -1,
921
- 221, 222, -1, 224, -1, -1, 227, 228, -1, -1,
922
- 95, 96, 132, -1, 235, -1, 136, 174, -1, 104,
923
- -1, -1, 179, 180, -1, 145, -1, -1, -1, -1,
924
- -1, -1, 253, -1, 255, -1, -1, -1, 158, 260,
925
- 261, 198, 7, -1, 201, -1, 203, 132, 269, 206,
926
- 271, 136, -1, -1, 275, -1, -1, 214, -1, -1,
927
- 145, 218, -1, 28, -1, 30, -1, -1, 33, -1,
928
- 35, 36, 37, 158, -1, -1, -1, -1, -1, -1,
929
- -1, 201, -1, 48, -1, -1, 0, -1, 245, 209,
930
- 4, 211, 6, 213, 8, -1, -1, 254, -1, -1,
931
- 14, 15, 16, -1, 18, 19, 20, 227, 228, -1,
932
- -1, -1, -1, -1, -1, -1, 201, -1, -1, -1,
933
- 34, -1, -1, -1, 209, -1, 211, -1, 213, -1,
934
- -1, 7, -1, 253, -1, 255, -1, 13, -1, -1,
935
- -1, 261, 227, 228, -1, -1, -1, -1, -1, -1,
936
- -1, 271, 28, -1, 30, 275, -1, 33, -1, 35,
937
- 36, 37, -1, -1, -1, -1, -1, -1, 253, -1,
938
- 255, -1, 48, -1, -1, -1, 261, -1, -1, 3,
939
- -1, 5, 6, 7, -1, 9, 271, 11, -1, -1,
940
- 275, 15, 16, -1, 18, 19, 20, 21, -1, -1,
941
- 24, 25, -1, -1, 28, 29, -1, -1, -1, 33,
942
- -1, 35, 36, -1, 38, 39, 40, 41, 42, 43,
943
- 44, 45, 46, 47, 3, -1, 5, -1, 7, -1,
944
- 9, -1, 11, -1, -1, -1, 15, 16, -1, 18,
945
- 19, 20, 21, -1, -1, 24, 25, -1, -1, 28,
946
- 29, -1, -1, -1, 33, -1, 35, 36, -1, 38,
947
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 3,
948
- -1, 5, -1, 7, -1, 9, -1, 11, -1, -1,
949
- -1, 15, 16, -1, 18, 19, 20, 21, -1, -1,
950
- 24, 25, -1, -1, 28, 29, -1, -1, -1, 33,
951
- -1, 35, 36, -1, 38, 39, 40, 41, 42, 43,
952
- 44, 45, 46, 47, 3, -1, 5, -1, 7, -1,
953
- 9, -1, 11, -1, -1, -1, -1, 16, -1, -1,
954
- -1, -1, 21, -1, -1, 24, 25, -1, -1, 28,
955
- 29, -1, -1, -1, 33, -1, 35, 36, -1, 38,
956
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 3,
957
- 4, 5, -1, 7, -1, 9, -1, 11, -1, -1,
958
- -1, -1, -1, -1, -1, -1, -1, 21, -1, -1,
959
- 24, 25, -1, -1, 28, 29, -1, -1, -1, 33,
960
- -1, 35, 36, -1, 38, 39, 40, 41, 42, 43,
961
- 44, 45, 46, 47, 3, -1, 5, -1, 7, 8,
962
- 9, -1, 11, -1, -1, -1, -1, -1, -1, -1,
963
- -1, -1, 21, -1, -1, 24, 25, -1, -1, 28,
964
- 29, -1, -1, -1, 33, -1, 35, 36, -1, 38,
965
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 3,
966
- -1, 5, -1, 7, -1, 9, 10, 11, -1, -1,
967
- -1, -1, -1, -1, -1, -1, -1, 21, -1, -1,
968
- 24, 25, -1, -1, 28, 29, -1, -1, -1, 33,
969
- -1, 35, 36, -1, 38, 39, 40, 41, 42, 43,
970
- 44, 45, 46, 47, 3, -1, 5, -1, 7, -1,
971
- 9, -1, 11, -1, -1, -1, -1, -1, -1, -1,
972
- -1, -1, 21, -1, -1, 24, 25, -1, -1, 28,
973
- 29, -1, -1, -1, 33, -1, 35, 36, -1, 38,
974
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 3,
975
- -1, 5, -1, 7, -1, 9, -1, 11, -1, -1,
976
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
977
- -1, -1, -1, -1, 28, -1, 30, 31, -1, 33,
978
- -1, 35, -1, -1, 38, 39, 40, 41, 42, 43,
979
- 44, 45, 46, 47, 3, -1, 5, -1, 7, -1,
980
- 9, -1, 11, -1, -1, -1, -1, 16, -1, -1,
981
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 28,
982
- -1, -1, 31, -1, 33, -1, 35, -1, -1, 38,
983
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 3,
984
- -1, 5, -1, 7, -1, 9, -1, 11, -1, -1,
985
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
986
- -1, -1, -1, -1, 28, -1, -1, 31, -1, 33,
987
- -1, 35, -1, -1, 38, 39, 40, 41, 42, 43,
988
- 44, 45, 46, 47
989
- };
990
-
991
- /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
992
- symbol of state STATE-NUM. */
993
- static const yytype_uint8 yystos[] =
994
- {
995
- 0, 3, 5, 7, 9, 11, 15, 16, 18, 19,
996
- 20, 21, 24, 25, 28, 29, 33, 35, 36, 38,
997
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 50,
998
- 51, 52, 54, 55, 56, 57, 58, 59, 60, 62,
999
- 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
1000
- 73, 74, 79, 80, 81, 82, 83, 84, 85, 86,
1001
- 88, 90, 91, 92, 94, 99, 100, 101, 102, 103,
1002
- 104, 105, 106, 107, 108, 110, 111, 112, 113, 114,
1003
- 119, 52, 53, 58, 64, 109, 53, 53, 53, 28,
1004
- 33, 63, 115, 116, 117, 58, 58, 63, 64, 101,
1005
- 56, 70, 26, 27, 58, 0, 51, 55, 16, 51,
1006
- 54, 7, 30, 37, 48, 61, 63, 86, 87, 92,
1007
- 17, 32, 14, 32, 62, 7, 61, 63, 64, 75,
1008
- 76, 4, 58, 89, 109, 63, 58, 30, 4, 14,
1009
- 6, 55, 8, 109, 10, 58, 118, 11, 63, 14,
1010
- 22, 95, 96, 97, 17, 56, 5, 51, 58, 53,
1011
- 3, 30, 31, 64, 93, 107, 89, 89, 53, 93,
1012
- 53, 64, 109, 8, 63, 17, 56, 7, 61, 63,
1013
- 76, 56, 63, 75, 77, 78, 112, 4, 17, 53,
1014
- 30, 53, 52, 53, 53, 53, 14, 53, 53, 63,
1015
- 56, 58, 95, 23, 95, 98, 70, 53, 8, 58,
1016
- 53, 58, 93, 58, 63, 56, 63, 8, 63, 56,
1017
- 56, 17, 53, 112, 53, 93, 4, 58, 58, 6,
1018
- 8, 12, 53, 10, 56, 12, 56, 56, 56, 34,
1019
- 120, 121, 4, 93, 56, 63, 56, 63, 63, 77,
1020
- 93, 4, 53, 58, 63, 58, 53, 121, 56, 3,
1021
- 17, 58, 53, 56, 13, 6, 53, 63, 12, 11,
1022
- 55, 58, 53, 115, 53, 58, 11, 4, 55
1023
- };
1024
-
1025
- #define yyerrok (yyerrstatus = 0)
1026
- #define yyclearin (yychar = YYEMPTY)
1027
- #define YYEMPTY (-2)
1028
- #define YYEOF 0
1029
-
1030
- #define YYACCEPT goto yyacceptlab
1031
- #define YYABORT goto yyabortlab
1032
- #define YYERROR goto yyerrorlab
1033
-
1034
-
1035
- /* Like YYERROR except do call yyerror. This remains here temporarily
1036
- to ease the transition to the new meaning of YYERROR, for GCC.
1037
- Once GCC version 2 has supplanted version 1, this can go. However,
1038
- YYFAIL appears to be in use. Nevertheless, it is formally deprecated
1039
- in Bison 2.4.2's NEWS entry, where a plan to phase it out is
1040
- discussed. */
1041
-
1042
- #define YYFAIL goto yyerrlab
1043
- #if defined YYFAIL
1044
- /* This is here to suppress warnings from the GCC cpp's
1045
- -Wunused-macros. Normally we don't worry about that warning, but
1046
- some users do, and we want to make it easy for users to remove
1047
- YYFAIL uses, which will produce warnings from Bison 2.5. */
1048
- #endif
1049
-
1050
- #define YYRECOVERING() (!!yyerrstatus)
1051
-
1052
- #define YYBACKUP(Token, Value) \
1053
- do \
1054
- if (yychar == YYEMPTY && yylen == 1) \
1055
- { \
1056
- yychar = (Token); \
1057
- yylval = (Value); \
1058
- yytoken = YYTRANSLATE (yychar); \
1059
- YYPOPSTACK (1); \
1060
- goto yybackup; \
1061
- } \
1062
- else \
1063
- { \
1064
- yyerror (self, YY_("syntax error: cannot back up")); \
1065
- YYERROR; \
1066
- } \
1067
- while (YYID (0))
1068
-
1069
-
1070
- #define YYTERROR 1
1071
- #define YYERRCODE 256
1072
-
1073
-
1074
- /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1075
- If N is 0, then set CURRENT to the empty location which ends
1076
- the previous symbol: RHS[0] (always defined). */
1077
-
1078
- #define YYRHSLOC(Rhs, K) ((Rhs)[K])
1079
- #ifndef YYLLOC_DEFAULT
1080
- # define YYLLOC_DEFAULT(Current, Rhs, N) \
1081
- do \
1082
- if (YYID (N)) \
1083
- { \
1084
- (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
1085
- (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
1086
- (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
1087
- (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
1088
- } \
1089
- else \
1090
- { \
1091
- (Current).first_line = (Current).last_line = \
1092
- YYRHSLOC (Rhs, 0).last_line; \
1093
- (Current).first_column = (Current).last_column = \
1094
- YYRHSLOC (Rhs, 0).last_column; \
1095
- } \
1096
- while (YYID (0))
1097
- #endif
1098
-
1099
-
1100
- /* YY_LOCATION_PRINT -- Print the location on the stream.
1101
- This macro was not mandated originally: define only if we know
1102
- we won't break user code: when these are the locations we know. */
1103
-
1104
- #ifndef YY_LOCATION_PRINT
1105
- # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
1106
- # define YY_LOCATION_PRINT(File, Loc) \
1107
- fprintf (File, "%d.%d-%d.%d", \
1108
- (Loc).first_line, (Loc).first_column, \
1109
- (Loc).last_line, (Loc).last_column)
1110
- # else
1111
- # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1112
- # endif
1113
- #endif
1114
-
1115
-
1116
- /* YYLEX -- calling `yylex' with the right arguments. */
1117
-
1118
- #ifdef YYLEX_PARAM
1119
- # define YYLEX yylex (YYLEX_PARAM)
1120
- #else
1121
- # define YYLEX yylex (self)
1122
- #endif
1123
-
1124
- /* Enable debugging if requested. */
1125
- #if YYDEBUG
1126
-
1127
- # ifndef YYFPRINTF
1128
- # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1129
- # define YYFPRINTF fprintf
1130
- # endif
1131
-
1132
- # define YYDPRINTF(Args) \
1133
- do { \
1134
- if (yydebug) \
1135
- YYFPRINTF Args; \
1136
- } while (YYID (0))
1137
-
1138
- # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1139
- do { \
1140
- if (yydebug) \
1141
- { \
1142
- YYFPRINTF (stderr, "%s ", Title); \
1143
- yy_symbol_print (stderr, \
1144
- Type, Value, self); \
1145
- YYFPRINTF (stderr, "\n"); \
1146
- } \
1147
- } while (YYID (0))
1148
-
1149
-
1150
- /*--------------------------------.
1151
- | Print this symbol on YYOUTPUT. |
1152
- `--------------------------------*/
1153
-
1154
- /*ARGSUSED*/
1155
- #if (defined __STDC__ || defined __C99__FUNC__ \
1156
- || defined __cplusplus || defined _MSC_VER)
1157
- static void
1158
- yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, VALUE self)
1159
- #else
1160
- static void
1161
- yy_symbol_value_print (yyoutput, yytype, yyvaluep, self)
1162
- FILE *yyoutput;
1163
- int yytype;
1164
- YYSTYPE const * const yyvaluep;
1165
- VALUE self;
1166
- #endif
1167
- {
1168
- if (!yyvaluep)
1169
- return;
1170
- YYUSE (self);
1171
- # ifdef YYPRINT
1172
- if (yytype < YYNTOKENS)
1173
- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1174
- # else
1175
- YYUSE (yyoutput);
1176
- # endif
1177
- switch (yytype)
1178
- {
1179
- default:
1180
- break;
1181
- }
1182
- }
1183
-
1184
-
1185
- /*--------------------------------.
1186
- | Print this symbol on YYOUTPUT. |
1187
- `--------------------------------*/
1188
-
1189
- #if (defined __STDC__ || defined __C99__FUNC__ \
1190
- || defined __cplusplus || defined _MSC_VER)
1191
- static void
1192
- yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, VALUE self)
1193
- #else
1194
- static void
1195
- yy_symbol_print (yyoutput, yytype, yyvaluep, self)
1196
- FILE *yyoutput;
1197
- int yytype;
1198
- YYSTYPE const * const yyvaluep;
1199
- VALUE self;
1200
- #endif
1201
- {
1202
- if (yytype < YYNTOKENS)
1203
- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1204
- else
1205
- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1206
-
1207
- yy_symbol_value_print (yyoutput, yytype, yyvaluep, self);
1208
- YYFPRINTF (yyoutput, ")");
1209
- }
1210
-
1211
- /*------------------------------------------------------------------.
1212
- | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1213
- | TOP (included). |
1214
- `------------------------------------------------------------------*/
1215
-
1216
- #if (defined __STDC__ || defined __C99__FUNC__ \
1217
- || defined __cplusplus || defined _MSC_VER)
1218
- static void
1219
- yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1220
- #else
1221
- static void
1222
- yy_stack_print (yybottom, yytop)
1223
- yytype_int16 *yybottom;
1224
- yytype_int16 *yytop;
1225
- #endif
1226
- {
1227
- YYFPRINTF (stderr, "Stack now");
1228
- for (; yybottom <= yytop; yybottom++)
1229
- {
1230
- int yybot = *yybottom;
1231
- YYFPRINTF (stderr, " %d", yybot);
1232
- }
1233
- YYFPRINTF (stderr, "\n");
1234
- }
1235
-
1236
- # define YY_STACK_PRINT(Bottom, Top) \
1237
- do { \
1238
- if (yydebug) \
1239
- yy_stack_print ((Bottom), (Top)); \
1240
- } while (YYID (0))
1241
-
1242
-
1243
- /*------------------------------------------------.
1244
- | Report that the YYRULE is going to be reduced. |
1245
- `------------------------------------------------*/
1246
-
1247
- #if (defined __STDC__ || defined __C99__FUNC__ \
1248
- || defined __cplusplus || defined _MSC_VER)
1249
- static void
1250
- yy_reduce_print (YYSTYPE *yyvsp, int yyrule, VALUE self)
1251
- #else
1252
- static void
1253
- yy_reduce_print (yyvsp, yyrule, self)
1254
- YYSTYPE *yyvsp;
1255
- int yyrule;
1256
- VALUE self;
1257
- #endif
1258
- {
1259
- int yynrhs = yyr2[yyrule];
1260
- int yyi;
1261
- unsigned long int yylno = yyrline[yyrule];
1262
- YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1263
- yyrule - 1, yylno);
1264
- /* The symbols being reduced. */
1265
- for (yyi = 0; yyi < yynrhs; yyi++)
1266
- {
1267
- YYFPRINTF (stderr, " $%d = ", yyi + 1);
1268
- yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1269
- &(yyvsp[(yyi + 1) - (yynrhs)])
1270
- , self);
1271
- YYFPRINTF (stderr, "\n");
1272
- }
1273
- }
1274
-
1275
- # define YY_REDUCE_PRINT(Rule) \
1276
- do { \
1277
- if (yydebug) \
1278
- yy_reduce_print (yyvsp, Rule, self); \
1279
- } while (YYID (0))
1280
-
1281
- /* Nonzero means print parse trace. It is left uninitialized so that
1282
- multiple parsers can coexist. */
1283
- int yydebug;
1284
- #else /* !YYDEBUG */
1285
- # define YYDPRINTF(Args)
1286
- # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1287
- # define YY_STACK_PRINT(Bottom, Top)
1288
- # define YY_REDUCE_PRINT(Rule)
1289
- #endif /* !YYDEBUG */
1290
-
1291
-
1292
- /* YYINITDEPTH -- initial size of the parser's stacks. */
1293
- #ifndef YYINITDEPTH
1294
- # define YYINITDEPTH 200
1295
- #endif
1296
-
1297
- /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1298
- if the built-in stack extension method is used).
1299
-
1300
- Do not make this value too large; the results are undefined if
1301
- YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1302
- evaluated with infinite-precision integer arithmetic. */
1303
-
1304
- #ifndef YYMAXDEPTH
1305
- # define YYMAXDEPTH 10000
1306
- #endif
1307
-
1308
-
1309
-
1310
- #if YYERROR_VERBOSE
1311
-
1312
- # ifndef yystrlen
1313
- # if defined __GLIBC__ && defined _STRING_H
1314
- # define yystrlen strlen
1315
- # else
1316
- /* Return the length of YYSTR. */
1317
- #if (defined __STDC__ || defined __C99__FUNC__ \
1318
- || defined __cplusplus || defined _MSC_VER)
1319
- static YYSIZE_T
1320
- yystrlen (const char *yystr)
1321
- #else
1322
- static YYSIZE_T
1323
- yystrlen (yystr)
1324
- const char *yystr;
1325
- #endif
1326
- {
1327
- YYSIZE_T yylen;
1328
- for (yylen = 0; yystr[yylen]; yylen++)
1329
- continue;
1330
- return yylen;
1331
- }
1332
- # endif
1333
- # endif
1334
-
1335
- # ifndef yystpcpy
1336
- # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1337
- # define yystpcpy stpcpy
1338
- # else
1339
- /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1340
- YYDEST. */
1341
- #if (defined __STDC__ || defined __C99__FUNC__ \
1342
- || defined __cplusplus || defined _MSC_VER)
1343
- static char *
1344
- yystpcpy (char *yydest, const char *yysrc)
1345
- #else
1346
- static char *
1347
- yystpcpy (yydest, yysrc)
1348
- char *yydest;
1349
- const char *yysrc;
1350
- #endif
1351
- {
1352
- char *yyd = yydest;
1353
- const char *yys = yysrc;
1354
-
1355
- while ((*yyd++ = *yys++) != '\0')
1356
- continue;
1357
-
1358
- return yyd - 1;
1359
- }
1360
- # endif
1361
- # endif
1362
-
1363
- # ifndef yytnamerr
1364
- /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1365
- quotes and backslashes, so that it's suitable for yyerror. The
1366
- heuristic is that double-quoting is unnecessary unless the string
1367
- contains an apostrophe, a comma, or backslash (other than
1368
- backslash-backslash). YYSTR is taken from yytname. If YYRES is
1369
- null, do not copy; instead, return the length of what the result
1370
- would have been. */
1371
- static YYSIZE_T
1372
- yytnamerr (char *yyres, const char *yystr)
1373
- {
1374
- if (*yystr == '"')
1375
- {
1376
- YYSIZE_T yyn = 0;
1377
- char const *yyp = yystr;
1378
-
1379
- for (;;)
1380
- switch (*++yyp)
1381
- {
1382
- case '\'':
1383
- case ',':
1384
- goto do_not_strip_quotes;
1385
-
1386
- case '\\':
1387
- if (*++yyp != '\\')
1388
- goto do_not_strip_quotes;
1389
- /* Fall through. */
1390
- default:
1391
- if (yyres)
1392
- yyres[yyn] = *yyp;
1393
- yyn++;
1394
- break;
1395
-
1396
- case '"':
1397
- if (yyres)
1398
- yyres[yyn] = '\0';
1399
- return yyn;
1400
- }
1401
- do_not_strip_quotes: ;
1402
- }
1403
-
1404
- if (! yyres)
1405
- return yystrlen (yystr);
1406
-
1407
- return yystpcpy (yyres, yystr) - yyres;
1408
- }
1409
- # endif
1410
-
1411
- /* Copy into YYRESULT an error message about the unexpected token
1412
- YYCHAR while in state YYSTATE. Return the number of bytes copied,
1413
- including the terminating null byte. If YYRESULT is null, do not
1414
- copy anything; just return the number of bytes that would be
1415
- copied. As a special case, return 0 if an ordinary "syntax error"
1416
- message will do. Return YYSIZE_MAXIMUM if overflow occurs during
1417
- size calculation. */
1418
- static YYSIZE_T
1419
- yysyntax_error (char *yyresult, int yystate, int yychar)
1420
- {
1421
- int yyn = yypact[yystate];
1422
-
1423
- if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
1424
- return 0;
1425
- else
1426
- {
1427
- int yytype = YYTRANSLATE (yychar);
1428
- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
1429
- YYSIZE_T yysize = yysize0;
1430
- YYSIZE_T yysize1;
1431
- int yysize_overflow = 0;
1432
- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1433
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1434
- int yyx;
1435
-
1436
- # if 0
1437
- /* This is so xgettext sees the translatable formats that are
1438
- constructed on the fly. */
1439
- YY_("syntax error, unexpected %s");
1440
- YY_("syntax error, unexpected %s, expecting %s");
1441
- YY_("syntax error, unexpected %s, expecting %s or %s");
1442
- YY_("syntax error, unexpected %s, expecting %s or %s or %s");
1443
- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
1444
- # endif
1445
- char *yyfmt;
1446
- char const *yyf;
1447
- static char const yyunexpected[] = "syntax error, unexpected %s";
1448
- static char const yyexpecting[] = ", expecting %s";
1449
- static char const yyor[] = " or %s";
1450
- char yyformat[sizeof yyunexpected
1451
- + sizeof yyexpecting - 1
1452
- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
1453
- * (sizeof yyor - 1))];
1454
- char const *yyprefix = yyexpecting;
1455
-
1456
- /* Start YYX at -YYN if negative to avoid negative indexes in
1457
- YYCHECK. */
1458
- int yyxbegin = yyn < 0 ? -yyn : 0;
1459
-
1460
- /* Stay within bounds of both yycheck and yytname. */
1461
- int yychecklim = YYLAST - yyn + 1;
1462
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1463
- int yycount = 1;
1464
-
1465
- yyarg[0] = yytname[yytype];
1466
- yyfmt = yystpcpy (yyformat, yyunexpected);
1467
-
1468
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1469
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1470
- {
1471
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1472
- {
1473
- yycount = 1;
1474
- yysize = yysize0;
1475
- yyformat[sizeof yyunexpected - 1] = '\0';
1476
- break;
1477
- }
1478
- yyarg[yycount++] = yytname[yyx];
1479
- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1480
- yysize_overflow |= (yysize1 < yysize);
1481
- yysize = yysize1;
1482
- yyfmt = yystpcpy (yyfmt, yyprefix);
1483
- yyprefix = yyor;
1484
- }
1485
-
1486
- yyf = YY_(yyformat);
1487
- yysize1 = yysize + yystrlen (yyf);
1488
- yysize_overflow |= (yysize1 < yysize);
1489
- yysize = yysize1;
1490
-
1491
- if (yysize_overflow)
1492
- return YYSIZE_MAXIMUM;
1493
-
1494
- if (yyresult)
1495
- {
1496
- /* Avoid sprintf, as that infringes on the user's name space.
1497
- Don't have undefined behavior even if the translation
1498
- produced a string with the wrong number of "%s"s. */
1499
- char *yyp = yyresult;
1500
- int yyi = 0;
1501
- while ((*yyp = *yyf) != '\0')
1502
- {
1503
- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
1504
- {
1505
- yyp += yytnamerr (yyp, yyarg[yyi++]);
1506
- yyf += 2;
1507
- }
1508
- else
1509
- {
1510
- yyp++;
1511
- yyf++;
1512
- }
1513
- }
1514
- }
1515
- return yysize;
1516
- }
1517
- }
1518
- #endif /* YYERROR_VERBOSE */
1519
-
1520
-
1521
- /*-----------------------------------------------.
1522
- | Release the memory associated to this symbol. |
1523
- `-----------------------------------------------*/
1524
-
1525
- /*ARGSUSED*/
1526
- #if (defined __STDC__ || defined __C99__FUNC__ \
1527
- || defined __cplusplus || defined _MSC_VER)
1528
- static void
1529
- yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, VALUE self)
1530
- #else
1531
- static void
1532
- yydestruct (yymsg, yytype, yyvaluep, self)
1533
- const char *yymsg;
1534
- int yytype;
1535
- YYSTYPE *yyvaluep;
1536
- VALUE self;
1537
- #endif
1538
- {
1539
- YYUSE (yyvaluep);
1540
- YYUSE (self);
1541
-
1542
- if (!yymsg)
1543
- yymsg = "Deleting";
1544
- YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1545
-
1546
- switch (yytype)
1547
- {
1548
-
1549
- default:
1550
- break;
1551
- }
1552
- }
1553
-
1554
- /* Prevent warnings from -Wmissing-prototypes. */
1555
- #ifdef YYPARSE_PARAM
1556
- #if defined __STDC__ || defined __cplusplus
1557
- int yyparse (void *YYPARSE_PARAM);
1558
- #else
1559
- int yyparse ();
1560
- #endif
1561
- #else /* ! YYPARSE_PARAM */
1562
- #if defined __STDC__ || defined __cplusplus
1563
- int yyparse (VALUE self);
1564
- #else
1565
- int yyparse ();
1566
- #endif
1567
- #endif /* ! YYPARSE_PARAM */
1568
-
1569
-
1570
- /* The lookahead symbol. */
1571
- int yychar;
1572
-
1573
- /* The semantic value of the lookahead symbol. */
1574
- YYSTYPE yylval;
1575
-
1576
- /* Number of syntax errors so far. */
1577
- int yynerrs;
1578
-
1579
-
1580
-
1581
- /*-------------------------.
1582
- | yyparse or yypush_parse. |
1583
- `-------------------------*/
1584
-
1585
- #ifdef YYPARSE_PARAM
1586
- #if (defined __STDC__ || defined __C99__FUNC__ \
1587
- || defined __cplusplus || defined _MSC_VER)
1588
- int
1589
- yyparse (void *YYPARSE_PARAM)
1590
- #else
1591
- int
1592
- yyparse (YYPARSE_PARAM)
1593
- void *YYPARSE_PARAM;
1594
- #endif
1595
- #else /* ! YYPARSE_PARAM */
1596
- #if (defined __STDC__ || defined __C99__FUNC__ \
1597
- || defined __cplusplus || defined _MSC_VER)
1598
- int
1599
- yyparse (VALUE self)
1600
- #else
1601
- int
1602
- yyparse (self)
1603
- VALUE self;
1604
- #endif
1605
- #endif
1606
- {
1607
-
1608
-
1609
- int yystate;
1610
- /* Number of tokens to shift before error messages enabled. */
1611
- int yyerrstatus;
1612
-
1613
- /* The stacks and their tools:
1614
- `yyss': related to states.
1615
- `yyvs': related to semantic values.
1616
-
1617
- Refer to the stacks thru separate pointers, to allow yyoverflow
1618
- to reallocate them elsewhere. */
1619
-
1620
- /* The state stack. */
1621
- yytype_int16 yyssa[YYINITDEPTH];
1622
- yytype_int16 *yyss;
1623
- yytype_int16 *yyssp;
1624
-
1625
- /* The semantic value stack. */
1626
- YYSTYPE yyvsa[YYINITDEPTH];
1627
- YYSTYPE *yyvs;
1628
- YYSTYPE *yyvsp;
1629
-
1630
- YYSIZE_T yystacksize;
1631
-
1632
- int yyn;
1633
- int yyresult;
1634
- /* Lookahead token as an internal (translated) token number. */
1635
- int yytoken;
1636
- /* The variables used to return semantic value and location from the
1637
- action routines. */
1638
- YYSTYPE yyval;
1639
-
1640
- #if YYERROR_VERBOSE
1641
- /* Buffer for error messages, and its allocated size. */
1642
- char yymsgbuf[128];
1643
- char *yymsg = yymsgbuf;
1644
- YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1645
- #endif
1646
-
1647
- #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1648
-
1649
- /* The number of symbols on the RHS of the reduced rule.
1650
- Keep to zero when no symbol should be popped. */
1651
- int yylen = 0;
1652
-
1653
- yytoken = 0;
1654
- yyss = yyssa;
1655
- yyvs = yyvsa;
1656
- yystacksize = YYINITDEPTH;
1657
-
1658
- YYDPRINTF ((stderr, "Starting parse\n"));
1659
-
1660
- yystate = 0;
1661
- yyerrstatus = 0;
1662
- yynerrs = 0;
1663
- yychar = YYEMPTY; /* Cause a token to be read. */
1664
-
1665
- /* Initialize stack pointers.
1666
- Waste one element of value and location stack
1667
- so that they stay on the same level as the state stack.
1668
- The wasted elements are never initialized. */
1669
- yyssp = yyss;
1670
- yyvsp = yyvs;
1671
-
1672
- goto yysetstate;
1673
-
1674
- /*------------------------------------------------------------.
1675
- | yynewstate -- Push a new state, which is found in yystate. |
1676
- `------------------------------------------------------------*/
1677
- yynewstate:
1678
- /* In all cases, when you get here, the value and location stacks
1679
- have just been pushed. So pushing a state here evens the stacks. */
1680
- yyssp++;
1681
-
1682
- yysetstate:
1683
- *yyssp = yystate;
1684
-
1685
- if (yyss + yystacksize - 1 <= yyssp)
1686
- {
1687
- /* Get the current used size of the three stacks, in elements. */
1688
- YYSIZE_T yysize = yyssp - yyss + 1;
1689
-
1690
- #ifdef yyoverflow
1691
- {
1692
- /* Give user a chance to reallocate the stack. Use copies of
1693
- these so that the &'s don't force the real ones into
1694
- memory. */
1695
- YYSTYPE *yyvs1 = yyvs;
1696
- yytype_int16 *yyss1 = yyss;
1697
-
1698
- /* Each stack pointer address is followed by the size of the
1699
- data in use in that stack, in bytes. This used to be a
1700
- conditional around just the two extra args, but that might
1701
- be undefined if yyoverflow is a macro. */
1702
- yyoverflow (YY_("memory exhausted"),
1703
- &yyss1, yysize * sizeof (*yyssp),
1704
- &yyvs1, yysize * sizeof (*yyvsp),
1705
- &yystacksize);
1706
-
1707
- yyss = yyss1;
1708
- yyvs = yyvs1;
1709
- }
1710
- #else /* no yyoverflow */
1711
- # ifndef YYSTACK_RELOCATE
1712
- goto yyexhaustedlab;
1713
- # else
1714
- /* Extend the stack our own way. */
1715
- if (YYMAXDEPTH <= yystacksize)
1716
- goto yyexhaustedlab;
1717
- yystacksize *= 2;
1718
- if (YYMAXDEPTH < yystacksize)
1719
- yystacksize = YYMAXDEPTH;
1720
-
1721
- {
1722
- yytype_int16 *yyss1 = yyss;
1723
- union yyalloc *yyptr =
1724
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1725
- if (! yyptr)
1726
- goto yyexhaustedlab;
1727
- YYSTACK_RELOCATE (yyss_alloc, yyss);
1728
- YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1729
- # undef YYSTACK_RELOCATE
1730
- if (yyss1 != yyssa)
1731
- YYSTACK_FREE (yyss1);
1732
- }
1733
- # endif
1734
- #endif /* no yyoverflow */
1735
-
1736
- yyssp = yyss + yysize - 1;
1737
- yyvsp = yyvs + yysize - 1;
1738
-
1739
- YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1740
- (unsigned long int) yystacksize));
1741
-
1742
- if (yyss + yystacksize - 1 <= yyssp)
1743
- YYABORT;
1744
- }
1745
-
1746
- YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1747
-
1748
- if (yystate == YYFINAL)
1749
- YYACCEPT;
1750
-
1751
- goto yybackup;
1752
-
1753
- /*-----------.
1754
- | yybackup. |
1755
- `-----------*/
1756
- yybackup:
1757
-
1758
- /* Do appropriate processing given the current state. Read a
1759
- lookahead token if we need one and don't already have one. */
1760
-
1761
- /* First try to decide what to do without reference to lookahead token. */
1762
- yyn = yypact[yystate];
1763
- if (yyn == YYPACT_NINF)
1764
- goto yydefault;
1765
-
1766
- /* Not known => get a lookahead token if don't already have one. */
1767
-
1768
- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
1769
- if (yychar == YYEMPTY)
1770
- {
1771
- YYDPRINTF ((stderr, "Reading a token: "));
1772
- yychar = YYLEX;
1773
- }
1774
-
1775
- if (yychar <= YYEOF)
1776
- {
1777
- yychar = yytoken = YYEOF;
1778
- YYDPRINTF ((stderr, "Now at end of input.\n"));
1779
- }
1780
- else
1781
- {
1782
- yytoken = YYTRANSLATE (yychar);
1783
- YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1784
- }
1785
-
1786
- /* If the proper action on seeing token YYTOKEN is to reduce or to
1787
- detect an error, take that action. */
1788
- yyn += yytoken;
1789
- if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1790
- goto yydefault;
1791
- yyn = yytable[yyn];
1792
- if (yyn <= 0)
1793
- {
1794
- if (yyn == 0 || yyn == YYTABLE_NINF)
1795
- goto yyerrlab;
1796
- yyn = -yyn;
1797
- goto yyreduce;
1798
- }
1799
-
1800
- /* Count tokens shifted since error; after three, turn off error
1801
- status. */
1802
- if (yyerrstatus)
1803
- yyerrstatus--;
1804
-
1805
- /* Shift the lookahead token. */
1806
- YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1807
-
1808
- /* Discard the shifted token. */
1809
- yychar = YYEMPTY;
1810
-
1811
- yystate = yyn;
1812
- *++yyvsp = yylval;
1813
-
1814
- goto yynewstate;
1815
-
1816
-
1817
- /*-----------------------------------------------------------.
1818
- | yydefault -- do the default action for the current state. |
1819
- `-----------------------------------------------------------*/
1820
- yydefault:
1821
- yyn = yydefact[yystate];
1822
- if (yyn == 0)
1823
- goto yyerrlab;
1824
- goto yyreduce;
1825
-
1826
-
1827
- /*-----------------------------.
1828
- | yyreduce -- Do a reduction. |
1829
- `-----------------------------*/
1830
- yyreduce:
1831
- /* yyn is the number of a rule to reduce with. */
1832
- yylen = yyr2[yyn];
1833
-
1834
- /* If YYLEN is nonzero, implement the default value of the action:
1835
- `$$ = $1'.
1836
-
1837
- Otherwise, the following line sets YYVAL to garbage.
1838
- This behavior is undocumented and Bison
1839
- users should not rely upon it. Assigning to YYVAL
1840
- unconditionally makes the parser a bit smaller, and it avoids a
1841
- GCC warning that YYVAL may be used uninitialized. */
1842
- yyval = yyvsp[1-yylen];
1843
-
1844
-
1845
- YY_REDUCE_PRINT (yyn);
1846
- switch (yyn)
1847
- {
1848
- case 3:
1849
-
1850
- /* Line 1464 of yacc.c */
1851
- #line 157 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
1852
- {
1853
- rb_funcall(self, rb_intern("body="), 1, (yyvsp[(1) - (1)].object));
1854
- ;}
1855
- break;
1856
-
1857
- case 13:
1858
-
1859
- /* Line 1464 of yacc.c */
1860
- #line 179 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
1861
- {
1862
- (yyval.object) = rb_funcall(self, rb_intern("expr_list"), 2, INT2NUM(yylineno), (yyvsp[(1) - (1)].object));
1863
- ;}
1864
- break;
1865
-
1866
- case 14:
1867
-
1868
- /* Line 1464 of yacc.c */
1869
- #line 182 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
1870
- {
1871
- (yyval.object) = rb_funcall(self, rb_intern("expr_list"), 3, INT2NUM(yylineno), (yyvsp[(2) - (2)].object), (yyvsp[(1) - (2)].object));
1872
- ;}
1873
- break;
1874
-
1875
- case 15:
1876
-
1877
- /* Line 1464 of yacc.c */
1878
- #line 185 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
1879
- {
1880
- (yyval.object) = (yyvsp[(2) - (2)].object);
1881
- ;}
1882
- break;
1883
-
1884
- case 16:
1885
-
1886
- /* Line 1464 of yacc.c */
1887
- #line 188 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
1888
- {
1889
- (yyval.object) = (yyvsp[(1) - (2)].object);
1890
- ;}
1891
- break;
1892
-
1893
- case 17:
1894
-
1895
- /* Line 1464 of yacc.c */
1896
- #line 193 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
1897
- {
1898
- (yyval.object) = (yyvsp[(3) - (5)].object);
1899
- ;}
1900
- break;
1901
-
1902
- case 18:
1903
-
1904
- /* Line 1464 of yacc.c */
1905
- #line 196 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
1906
- {
1907
- (yyval.object) = rb_funcall(self, rb_intern("expr_list"), 1, INT2NUM(yylineno));
1908
- ;}
1909
- break;
1910
-
1911
- case 33:
1912
-
1913
- /* Line 1464 of yacc.c */
1914
- #line 217 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
1915
- { (yyval.object) = rb_funcall(self, rb_intern("super_exp"), 1, INT2NUM(yylineno)); ;}
1916
- break;
1917
-
1918
- case 34:
1919
-
1920
- /* Line 1464 of yacc.c */
1921
- #line 218 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
1922
- { (yyval.object) = rb_funcall(self, rb_intern("retry_exp"), 1, INT2NUM(yylineno)); ;}
1923
- break;
1924
-
1925
- case 35:
1926
-
1927
- /* Line 1464 of yacc.c */
1928
- #line 219 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
1929
- {
1930
- (yyval.object) = (yyvsp[(3) - (5)].object);
1931
- ;}
1932
- break;
1933
-
1934
- case 36:
1935
-
1936
- /* Line 1464 of yacc.c */
1937
- #line 222 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
1938
- {
1939
- (yyval.object) = (yyvsp[(1) - (3)].object);
1940
- ;}
1941
- break;
1942
-
1943
- case 37:
1944
-
1945
- /* Line 1464 of yacc.c */
1946
- #line 227 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
1947
- {
1948
- (yyval.object) = rb_funcall(self, rb_intern("assignment"), 3, INT2NUM(yylineno), (yyvsp[(1) - (4)].object), (yyvsp[(4) - (4)].object));
1949
- ;}
1950
- break;
1951
-
1952
- case 39:
1953
-
1954
- /* Line 1464 of yacc.c */
1955
- #line 233 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
1956
- {
1957
- (yyval.object) = rb_funcall(self, rb_intern("multiple_assignment"), 3, INT2NUM(yylineno), (yyvsp[(1) - (3)].object), (yyvsp[(3) - (3)].object));
1958
- ;}
1959
- break;
1960
-
1961
- case 40:
1962
-
1963
- /* Line 1464 of yacc.c */
1964
- #line 238 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
1965
- {
1966
- (yyval.object) = fy_terminal_node(self, "identifier");
1967
- ;}
1968
- break;
1969
-
1970
- case 41:
1971
-
1972
- /* Line 1464 of yacc.c */
1973
- #line 243 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
1974
- {
1975
- (yyval.object) = fy_terminal_node(self, "identifier");
1976
- ;}
1977
- break;
1978
-
1979
- case 42:
1980
-
1981
- /* Line 1464 of yacc.c */
1982
- #line 248 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
1983
- {
1984
- (yyval.object) = fy_terminal_node(self, "identifier");
1985
- ;}
1986
- break;
1987
-
1988
- case 43:
1989
-
1990
- /* Line 1464 of yacc.c */
1991
- #line 251 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
1992
- {
1993
- (yyval.object) = fy_terminal_node_from(self, "identifier", "match");
1994
- ;}
1995
- break;
1996
-
1997
- case 44:
1998
-
1999
- /* Line 1464 of yacc.c */
2000
- #line 254 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2001
- {
2002
- (yyval.object) = fy_terminal_node_from(self, "identifier", "class");
2003
- ;}
2004
- break;
2005
-
2006
- case 47:
2007
-
2008
- /* Line 1464 of yacc.c */
2009
- #line 263 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2010
- {
2011
- (yyval.object) = (yyvsp[(1) - (1)].object);
2012
- ;}
2013
- break;
2014
-
2015
- case 48:
2016
-
2017
- /* Line 1464 of yacc.c */
2018
- #line 266 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2019
- {
2020
- (yyval.object) = rb_funcall(self, rb_intern("identifier_list"), 3, INT2NUM(yylineno), (yyvsp[(1) - (3)].object), (yyvsp[(3) - (3)].object));
2021
- ;}
2022
- break;
2023
-
2024
- case 49:
2025
-
2026
- /* Line 1464 of yacc.c */
2027
- #line 271 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2028
- {
2029
- (yyval.object) = rb_funcall(self, rb_intern("return_local"), 2, INT2NUM(yylineno), (yyvsp[(2) - (2)].object));
2030
- ;}
2031
- break;
2032
-
2033
- case 50:
2034
-
2035
- /* Line 1464 of yacc.c */
2036
- #line 274 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2037
- {
2038
- (yyval.object) = rb_funcall(self, rb_intern("return_local"), 1, INT2NUM(yylineno));
2039
- ;}
2040
- break;
2041
-
2042
- case 51:
2043
-
2044
- /* Line 1464 of yacc.c */
2045
- #line 279 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2046
- {
2047
- (yyval.object) = rb_funcall(self, rb_intern("return_stmt"), 2, INT2NUM(yylineno), (yyvsp[(2) - (2)].object));
2048
- ;}
2049
- break;
2050
-
2051
- case 52:
2052
-
2053
- /* Line 1464 of yacc.c */
2054
- #line 282 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2055
- {
2056
- (yyval.object) = rb_funcall(self, rb_intern("return_stmt"), 1, INT2NUM(yylineno));
2057
- ;}
2058
- break;
2059
-
2060
- case 53:
2061
-
2062
- /* Line 1464 of yacc.c */
2063
- #line 287 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2064
- {
2065
- (yyval.object) = rb_funcall(self, rb_intern("require_stmt"), 2, INT2NUM(yylineno), (yyvsp[(2) - (2)].object));
2066
- ;}
2067
- break;
2068
-
2069
- case 54:
2070
-
2071
- /* Line 1464 of yacc.c */
2072
- #line 290 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2073
- {
2074
- (yyval.object) = rb_funcall(self, rb_intern("require_stmt"), 2, INT2NUM(yylineno), (yyvsp[(2) - (2)].object));
2075
- ;}
2076
- break;
2077
-
2078
- case 57:
2079
-
2080
- /* Line 1464 of yacc.c */
2081
- #line 299 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2082
- {
2083
- (yyval.object) = rb_funcall(self, rb_intern("const_identifier"), 2, INT2NUM(yylineno), (yyvsp[(1) - (1)].object));
2084
- ;}
2085
- break;
2086
-
2087
- case 58:
2088
-
2089
- /* Line 1464 of yacc.c */
2090
- #line 302 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2091
- {
2092
- (yyval.object) = rb_funcall(self, rb_intern("const_identifier"), 3, INT2NUM(yylineno), (yyvsp[(2) - (2)].object), (yyvsp[(1) - (2)].object));
2093
- ;}
2094
- break;
2095
-
2096
- case 59:
2097
-
2098
- /* Line 1464 of yacc.c */
2099
- #line 307 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2100
- { (yyval.object) = rb_intern("private"); ;}
2101
- break;
2102
-
2103
- case 60:
2104
-
2105
- /* Line 1464 of yacc.c */
2106
- #line 308 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2107
- { (yyval.object) = rb_intern("protected"); ;}
2108
- break;
2109
-
2110
- case 61:
2111
-
2112
- /* Line 1464 of yacc.c */
2113
- #line 309 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2114
- { (yyval.object) = rb_intern("public"); ;}
2115
- break;
2116
-
2117
- case 62:
2118
-
2119
- /* Line 1464 of yacc.c */
2120
- #line 312 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2121
- {
2122
- (yyval.object) = rb_funcall(self, rb_intern("class_def"), 4, INT2NUM(yylineno), (yyvsp[(2) - (3)].object), Qnil, (yyvsp[(3) - (3)].object));
2123
- ;}
2124
- break;
2125
-
2126
- case 63:
2127
-
2128
- /* Line 1464 of yacc.c */
2129
- #line 317 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2130
- {
2131
- (yyval.object) = rb_funcall(self, rb_intern("class_def"), 4, INT2NUM(yylineno), (yyvsp[(2) - (5)].object), (yyvsp[(4) - (5)].object), (yyvsp[(5) - (5)].object));
2132
- ;}
2133
- break;
2134
-
2135
- case 70:
2136
-
2137
- /* Line 1464 of yacc.c */
2138
- #line 330 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2139
- {
2140
- (yyval.object) = rb_funcall(self, rb_intern("method_arg"), 3, INT2NUM(yylineno), (yyvsp[(1) - (3)].object), (yyvsp[(3) - (3)].object));
2141
- ;}
2142
- break;
2143
-
2144
- case 71:
2145
-
2146
- /* Line 1464 of yacc.c */
2147
- #line 335 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2148
- {
2149
- (yyval.object) = rb_funcall(self, rb_intern("expr_ary"), 2, INT2NUM(yylineno), (yyvsp[(1) - (1)].object));
2150
- ;}
2151
- break;
2152
-
2153
- case 72:
2154
-
2155
- /* Line 1464 of yacc.c */
2156
- #line 338 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2157
- {
2158
- (yyval.object) = rb_funcall(self, rb_intern("expr_ary"), 3, INT2NUM(yylineno), (yyvsp[(2) - (2)].object), (yyvsp[(1) - (2)].object));
2159
- ;}
2160
- break;
2161
-
2162
- case 73:
2163
-
2164
- /* Line 1464 of yacc.c */
2165
- #line 341 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2166
- {
2167
- (yyval.object) = rb_funcall(self, rb_intern("expr_ary"), 3, INT2NUM(yylineno), (yyvsp[(2) - (2)].object), (yyvsp[(1) - (2)].object));
2168
- ;}
2169
- break;
2170
-
2171
- case 74:
2172
-
2173
- /* Line 1464 of yacc.c */
2174
- #line 346 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2175
- {
2176
- (yyval.object) = rb_funcall(self, rb_intern("method_arg"), 4, INT2NUM(yylineno), (yyvsp[(1) - (8)].object), (yyvsp[(3) - (8)].object), (yyvsp[(6) - (8)].object));
2177
- ;}
2178
- break;
2179
-
2180
- case 75:
2181
-
2182
- /* Line 1464 of yacc.c */
2183
- #line 351 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2184
- {
2185
- (yyval.object) = rb_funcall(self, rb_intern("expr_ary"), 2, INT2NUM(yylineno), (yyvsp[(1) - (1)].object));
2186
- ;}
2187
- break;
2188
-
2189
- case 76:
2190
-
2191
- /* Line 1464 of yacc.c */
2192
- #line 354 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2193
- {
2194
- (yyval.object) = rb_funcall(self, rb_intern("expr_ary"), 3, INT2NUM(yylineno), (yyvsp[(3) - (3)].object), (yyvsp[(1) - (3)].object));
2195
- ;}
2196
- break;
2197
-
2198
- case 77:
2199
-
2200
- /* Line 1464 of yacc.c */
2201
- #line 359 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2202
- {
2203
- (yyval.object) = rb_funcall(self, rb_intern("method_def_expand"), 4, INT2NUM(yylineno), (yyvsp[(2) - (3)].object), (yyvsp[(3) - (3)].object), (yyvsp[(1) - (3)].object));
2204
- ;}
2205
- break;
2206
-
2207
- case 78:
2208
-
2209
- /* Line 1464 of yacc.c */
2210
- #line 365 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2211
- {
2212
- (yyval.object) = rb_funcall(self, rb_intern("method_def_no_args"), 4, INT2NUM(yylineno), (yyvsp[(2) - (3)].object), (yyvsp[(3) - (3)].object), (yyvsp[(1) - (3)].object));
2213
- ;}
2214
- break;
2215
-
2216
- case 79:
2217
-
2218
- /* Line 1464 of yacc.c */
2219
- #line 371 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2220
- {
2221
- (yyval.object) = rb_funcall(self, rb_intern("sin_method_def_expand"), 5, INT2NUM(yylineno), (yyvsp[(2) - (4)].object), (yyvsp[(3) - (4)].object), (yyvsp[(4) - (4)].object), (yyvsp[(1) - (4)].object));
2222
- ;}
2223
- break;
2224
-
2225
- case 80:
2226
-
2227
- /* Line 1464 of yacc.c */
2228
- #line 376 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2229
- {
2230
- (yyval.object) = rb_funcall(self, rb_intern("sin_method_def_no_args"), 5, INT2NUM(yylineno), (yyvsp[(2) - (4)].object), (yyvsp[(3) - (4)].object), (yyvsp[(4) - (4)].object), (yyvsp[(1) - (4)].object));
2231
- ;}
2232
- break;
2233
-
2234
- case 81:
2235
-
2236
- /* Line 1464 of yacc.c */
2237
- #line 381 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2238
- {
2239
- (yyval.object) = rb_funcall(self, rb_intern("operator_def"), 5, INT2NUM(yylineno), (yyvsp[(2) - (4)].object), (yyvsp[(3) - (4)].object), (yyvsp[(4) - (4)].object), (yyvsp[(1) - (4)].object));
2240
- ;}
2241
- break;
2242
-
2243
- case 82:
2244
-
2245
- /* Line 1464 of yacc.c */
2246
- #line 384 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2247
- {
2248
- (yyval.object) = rb_funcall(self, rb_intern("operator_def"), 5,
2249
- INT2NUM(yylineno), fy_terminal_node_from(self, "identifier", "[]"), (yyvsp[(4) - (5)].object), (yyvsp[(5) - (5)].object), (yyvsp[(1) - (5)].object));
2250
- ;}
2251
- break;
2252
-
2253
- case 83:
2254
-
2255
- /* Line 1464 of yacc.c */
2256
- #line 390 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2257
- {
2258
- (yyval.object) = rb_funcall(self, rb_intern("sin_operator_def"), 6, INT2NUM(yylineno), (yyvsp[(2) - (5)].object), (yyvsp[(3) - (5)].object), (yyvsp[(4) - (5)].object), (yyvsp[(5) - (5)].object), (yyvsp[(1) - (5)].object));
2259
- ;}
2260
- break;
2261
-
2262
- case 84:
2263
-
2264
- /* Line 1464 of yacc.c */
2265
- #line 393 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2266
- {
2267
- (yyval.object) = rb_funcall(self, rb_intern("sin_operator_def"), 6,
2268
- INT2NUM(yylineno), (yyvsp[(2) - (6)].object), fy_terminal_node_from(self, "identifier", "[]"), (yyvsp[(5) - (6)].object), (yyvsp[(6) - (6)].object), (yyvsp[(1) - (6)].object));
2269
- ;}
2270
- break;
2271
-
2272
- case 85:
2273
-
2274
- /* Line 1464 of yacc.c */
2275
- #line 399 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2276
- {
2277
- (yyval.object) = rb_funcall(self, rb_intern("msg_send_basic"), 3, INT2NUM(yylineno), (yyvsp[(1) - (2)].object), (yyvsp[(2) - (2)].object));
2278
- ;}
2279
- break;
2280
-
2281
- case 86:
2282
-
2283
- /* Line 1464 of yacc.c */
2284
- #line 402 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2285
- {
2286
- (yyval.object) = rb_funcall(self, rb_intern("msg_send_args"), 3, INT2NUM(yylineno), (yyvsp[(1) - (2)].object), (yyvsp[(2) - (2)].object));
2287
- ;}
2288
- break;
2289
-
2290
- case 87:
2291
-
2292
- /* Line 1464 of yacc.c */
2293
- #line 405 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2294
- {
2295
- (yyval.object) = rb_funcall(self, rb_intern("msg_send_args"), 3, INT2NUM(yylineno), Qnil, (yyvsp[(1) - (1)].object));
2296
- ;}
2297
- break;
2298
-
2299
- case 88:
2300
-
2301
- /* Line 1464 of yacc.c */
2302
- #line 414 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2303
- {
2304
- // remove the trailing left paren and create an identifier.
2305
- (yyval.object) = fy_terminal_node(self, "ruby_send_open");
2306
- ;}
2307
- break;
2308
-
2309
- case 89:
2310
-
2311
- /* Line 1464 of yacc.c */
2312
- #line 418 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2313
- {
2314
- // remove the trailing left paren and create an identifier.
2315
- (yyval.object) = fy_terminal_node(self, "ruby_send_open");
2316
- ;}
2317
- break;
2318
-
2319
- case 90:
2320
-
2321
- /* Line 1464 of yacc.c */
2322
- #line 423 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2323
- {
2324
- (yyval.object) = rb_funcall(self, rb_intern("msg_send_ruby"), 4, INT2NUM(yylineno), (yyvsp[(1) - (3)].object), (yyvsp[(2) - (3)].object), (yyvsp[(3) - (3)].object));
2325
- ;}
2326
- break;
2327
-
2328
- case 91:
2329
-
2330
- /* Line 1464 of yacc.c */
2331
- #line 426 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2332
- {
2333
- (yyval.object) = rb_funcall(self, rb_intern("msg_send_ruby"), 4, INT2NUM(yylineno), Qnil, (yyvsp[(1) - (2)].object), (yyvsp[(2) - (2)].object));
2334
- ;}
2335
- break;
2336
-
2337
- case 92:
2338
-
2339
- /* Line 1464 of yacc.c */
2340
- #line 436 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2341
- {
2342
- (yyval.object) = rb_funcall(self, rb_intern("ruby_args"), 3, INT2NUM(yylineno), Qnil, (yyvsp[(2) - (2)].object));
2343
- ;}
2344
- break;
2345
-
2346
- case 93:
2347
-
2348
- /* Line 1464 of yacc.c */
2349
- #line 439 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2350
- {
2351
- (yyval.object) = rb_funcall(self, rb_intern("ruby_args"), 3, INT2NUM(yylineno), (yyvsp[(1) - (3)].object), (yyvsp[(3) - (3)].object));
2352
- ;}
2353
- break;
2354
-
2355
- case 94:
2356
-
2357
- /* Line 1464 of yacc.c */
2358
- #line 442 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2359
- {
2360
- (yyval.object) = rb_funcall(self, rb_intern("ruby_args"), 1, INT2NUM(yylineno));
2361
- ;}
2362
- break;
2363
-
2364
- case 95:
2365
-
2366
- /* Line 1464 of yacc.c */
2367
- #line 445 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2368
- {
2369
- (yyval.object) = rb_funcall(self, rb_intern("ruby_args"), 2, INT2NUM(yylineno), (yyvsp[(1) - (2)].object));
2370
- ;}
2371
- break;
2372
-
2373
- case 96:
2374
-
2375
- /* Line 1464 of yacc.c */
2376
- #line 450 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2377
- {
2378
- (yyval.object) = rb_funcall(self, rb_intern("oper_send_basic"), 4, INT2NUM(yylineno), (yyvsp[(1) - (3)].object), (yyvsp[(2) - (3)].object), (yyvsp[(3) - (3)].object));
2379
- ;}
2380
- break;
2381
-
2382
- case 97:
2383
-
2384
- /* Line 1464 of yacc.c */
2385
- #line 453 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2386
- {
2387
- (yyval.object) = rb_funcall(self, rb_intern("oper_send_basic"), 4, INT2NUM(yylineno), (yyvsp[(1) - (5)].object), (yyvsp[(2) - (5)].object), (yyvsp[(5) - (5)].object));
2388
- ;}
2389
- break;
2390
-
2391
- case 98:
2392
-
2393
- /* Line 1464 of yacc.c */
2394
- #line 456 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2395
- {
2396
- (yyval.object) = rb_funcall(self, rb_intern("oper_send_basic"), 4,
2397
- INT2NUM(yylineno), (yyvsp[(1) - (4)].object), fy_terminal_node_from(self, "identifier", "[]"), (yyvsp[(3) - (4)].object));
2398
- ;}
2399
- break;
2400
-
2401
- case 99:
2402
-
2403
- /* Line 1464 of yacc.c */
2404
- #line 462 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2405
- {
2406
- (yyval.object) = rb_funcall(self, rb_intern("msg_send_ruby"), 4, INT2NUM(yylineno), (yyvsp[(1) - (3)].object), (yyvsp[(2) - (3)].object), (yyvsp[(3) - (3)].object));
2407
- ;}
2408
- break;
2409
-
2410
- case 100:
2411
-
2412
- /* Line 1464 of yacc.c */
2413
- #line 468 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2414
- {
2415
- (yyval.object) = rb_funcall(self, rb_intern("send_args"), 3, INT2NUM(yylineno), (yyvsp[(1) - (3)].object), (yyvsp[(3) - (3)].object));
2416
- ;}
2417
- break;
2418
-
2419
- case 101:
2420
-
2421
- /* Line 1464 of yacc.c */
2422
- #line 471 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2423
- {
2424
- (yyval.object) = rb_funcall(self, rb_intern("send_args"), 3, INT2NUM(yylineno), (yyvsp[(1) - (4)].object), (yyvsp[(4) - (4)].object));
2425
- ;}
2426
- break;
2427
-
2428
- case 102:
2429
-
2430
- /* Line 1464 of yacc.c */
2431
- #line 474 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2432
- {
2433
- (yyval.object) = rb_funcall(self, rb_intern("send_args"), 4, INT2NUM(yylineno), (yyvsp[(2) - (4)].object), (yyvsp[(4) - (4)].object), (yyvsp[(1) - (4)].object));
2434
- ;}
2435
- break;
2436
-
2437
- case 103:
2438
-
2439
- /* Line 1464 of yacc.c */
2440
- #line 477 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2441
- {
2442
- (yyval.object) = rb_funcall(self, rb_intern("send_args"), 4, INT2NUM(yylineno), (yyvsp[(2) - (5)].object), (yyvsp[(5) - (5)].object), (yyvsp[(1) - (5)].object));
2443
- ;}
2444
- break;
2445
-
2446
- case 104:
2447
-
2448
- /* Line 1464 of yacc.c */
2449
- #line 482 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2450
- {
2451
- (yyval.object) = (yyvsp[(1) - (1)].object);
2452
- ;}
2453
- break;
2454
-
2455
- case 105:
2456
-
2457
- /* Line 1464 of yacc.c */
2458
- #line 485 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2459
- {
2460
- (yyval.object) = (yyvsp[(2) - (3)].object);
2461
- ;}
2462
- break;
2463
-
2464
- case 106:
2465
-
2466
- /* Line 1464 of yacc.c */
2467
- #line 488 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2468
- {
2469
- (yyval.object) = (yyvsp[(1) - (1)].object);
2470
- ;}
2471
- break;
2472
-
2473
- case 107:
2474
-
2475
- /* Line 1464 of yacc.c */
2476
- #line 491 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2477
- {
2478
- (yyval.object) = (yyvsp[(2) - (2)].object);
2479
- ;}
2480
- break;
2481
-
2482
- case 108:
2483
-
2484
- /* Line 1464 of yacc.c */
2485
- #line 496 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2486
- {
2487
- (yyval.object) = rb_funcall(self, rb_intern("try_catch_finally"), 4, INT2NUM(yylineno), (yyvsp[(2) - (4)].object), (yyvsp[(3) - (4)].object), (yyvsp[(4) - (4)].object));
2488
- ;}
2489
- break;
2490
-
2491
- case 109:
2492
-
2493
- /* Line 1464 of yacc.c */
2494
- #line 499 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2495
- {
2496
- (yyval.object) = rb_funcall(self, rb_intern("try_catch_finally"), 3, INT2NUM(yylineno), (yyvsp[(2) - (3)].object), (yyvsp[(3) - (3)].object));
2497
- ;}
2498
- break;
2499
-
2500
- case 110:
2501
-
2502
- /* Line 1464 of yacc.c */
2503
- #line 504 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2504
- {
2505
- (yyval.object) = rb_funcall(self, rb_intern("catch_handler"), 2, INT2NUM(yylineno), (yyvsp[(2) - (2)].object));
2506
- ;}
2507
- break;
2508
-
2509
- case 111:
2510
-
2511
- /* Line 1464 of yacc.c */
2512
- #line 507 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2513
- {
2514
- (yyval.object) = rb_funcall(self, rb_intern("catch_handler"), 3, INT2NUM(yylineno), (yyvsp[(3) - (3)].object), (yyvsp[(2) - (3)].object));
2515
- ;}
2516
- break;
2517
-
2518
- case 112:
2519
-
2520
- /* Line 1464 of yacc.c */
2521
- #line 510 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2522
- {
2523
- (yyval.object) = rb_funcall(self, rb_intern("catch_handler"), 4, INT2NUM(yylineno), (yyvsp[(5) - (5)].object), (yyvsp[(2) - (5)].object), (yyvsp[(4) - (5)].object));
2524
- ;}
2525
- break;
2526
-
2527
- case 113:
2528
-
2529
- /* Line 1464 of yacc.c */
2530
- #line 515 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2531
- {
2532
- (yyval.object) = rb_funcall(self, rb_intern("catch_handlers"), 2, INT2NUM(yylineno), (yyvsp[(1) - (1)].object));
2533
- ;}
2534
- break;
2535
-
2536
- case 114:
2537
-
2538
- /* Line 1464 of yacc.c */
2539
- #line 518 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2540
- {
2541
- (yyval.object) = rb_funcall(self, rb_intern("catch_handlers"), 3, INT2NUM(yylineno), (yyvsp[(2) - (2)].object), (yyvsp[(1) - (2)].object));
2542
- ;}
2543
- break;
2544
-
2545
- case 115:
2546
-
2547
- /* Line 1464 of yacc.c */
2548
- #line 523 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2549
- {
2550
- (yyval.object) = rb_funcall(self, rb_intern("catch_handlers"), 2, INT2NUM(yylineno), (yyvsp[(1) - (1)].object));
2551
- ;}
2552
- break;
2553
-
2554
- case 116:
2555
-
2556
- /* Line 1464 of yacc.c */
2557
- #line 526 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2558
- {
2559
- (yyval.object) = rb_funcall(self, rb_intern("catch_handlers"), 3, INT2NUM(yylineno), (yyvsp[(2) - (2)].object), (yyvsp[(1) - (2)].object));
2560
- ;}
2561
- break;
2562
-
2563
- case 117:
2564
-
2565
- /* Line 1464 of yacc.c */
2566
- #line 529 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2567
- {
2568
- (yyval.object) = rb_funcall(self, rb_intern("catch_handlers"), 1, INT2NUM(yylineno));
2569
- ;}
2570
- break;
2571
-
2572
- case 118:
2573
-
2574
- /* Line 1464 of yacc.c */
2575
- #line 534 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2576
- {
2577
- (yyval.object) = (yyvsp[(2) - (2)].object);
2578
- ;}
2579
- break;
2580
-
2581
- case 119:
2582
-
2583
- /* Line 1464 of yacc.c */
2584
- #line 539 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2585
- {
2586
- (yyval.object) = fy_terminal_node(self, "integer_literal");
2587
- ;}
2588
- break;
2589
-
2590
- case 120:
2591
-
2592
- /* Line 1464 of yacc.c */
2593
- #line 543 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2594
- {
2595
- (yyval.object) = fy_terminal_node(self, "double_literal");
2596
- ;}
2597
- break;
2598
-
2599
- case 121:
2600
-
2601
- /* Line 1464 of yacc.c */
2602
- #line 547 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2603
- {
2604
- (yyval.object) = fy_terminal_node(self, "string_literal");
2605
- ;}
2606
- break;
2607
-
2608
- case 122:
2609
-
2610
- /* Line 1464 of yacc.c */
2611
- #line 550 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2612
- {
2613
- (yyval.object) = fy_terminal_node(self, "multiline_string_literal");
2614
- ;}
2615
- break;
2616
-
2617
- case 123:
2618
-
2619
- /* Line 1464 of yacc.c */
2620
- #line 554 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2621
- {
2622
- (yyval.object) = fy_terminal_node(self, "symbol_literal");
2623
- ;}
2624
- break;
2625
-
2626
- case 124:
2627
-
2628
- /* Line 1464 of yacc.c */
2629
- #line 558 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2630
- {
2631
- (yyval.object) = fy_terminal_node(self, "regex_literal");
2632
- ;}
2633
- break;
2634
-
2635
- case 125:
2636
-
2637
- /* Line 1464 of yacc.c */
2638
- #line 563 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2639
- {
2640
- (yyval.object) = rb_funcall(self, rb_intern("integer_literal"), 3,
2641
- INT2NUM(yylineno), rb_str_new2(yytext), INT2NUM(16));
2642
- ;}
2643
- break;
2644
-
2645
- case 126:
2646
-
2647
- /* Line 1464 of yacc.c */
2648
- #line 569 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2649
- {
2650
- (yyval.object) = rb_funcall(self, rb_intern("integer_literal"), 3,
2651
- INT2NUM(yylineno), rb_str_new2(yytext), INT2NUM(8));
2652
- ;}
2653
- break;
2654
-
2655
- case 127:
2656
-
2657
- /* Line 1464 of yacc.c */
2658
- #line 575 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2659
- {
2660
- (yyval.object) = rb_funcall(self, rb_intern("integer_literal"), 3,
2661
- INT2NUM(yylineno), rb_str_new2(yytext), INT2NUM(2));
2662
- ;}
2663
- break;
2664
-
2665
- case 141:
2666
-
2667
- /* Line 1464 of yacc.c */
2668
- #line 596 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2669
- {
2670
- (yyval.object) = (yyvsp[(1) - (1)].object);
2671
- ;}
2672
- break;
2673
-
2674
- case 142:
2675
-
2676
- /* Line 1464 of yacc.c */
2677
- #line 599 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2678
- {
2679
- (yyval.object) = rb_funcall(self, rb_intern("array_literal"), 2, INT2NUM(yylineno), (yyvsp[(3) - (5)].object));
2680
- ;}
2681
- break;
2682
-
2683
- case 143:
2684
-
2685
- /* Line 1464 of yacc.c */
2686
- #line 604 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2687
- {
2688
- (yyval.object) = rb_funcall(self, rb_intern("expr_ary"), 2, INT2NUM(yylineno), (yyvsp[(1) - (1)].object));
2689
- ;}
2690
- break;
2691
-
2692
- case 144:
2693
-
2694
- /* Line 1464 of yacc.c */
2695
- #line 607 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2696
- {
2697
- (yyval.object) = rb_funcall(self, rb_intern("expr_ary"), 3, INT2NUM(yylineno), (yyvsp[(4) - (4)].object), (yyvsp[(1) - (4)].object));
2698
- ;}
2699
- break;
2700
-
2701
- case 145:
2702
-
2703
- /* Line 1464 of yacc.c */
2704
- #line 610 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2705
- {
2706
- (yyval.object) = (yyvsp[(1) - (2)].object);
2707
- ;}
2708
- break;
2709
-
2710
- case 146:
2711
-
2712
- /* Line 1464 of yacc.c */
2713
- #line 615 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2714
- {
2715
- (yyval.object) = rb_funcall(self, rb_intern("array_literal"), 1, INT2NUM(yylineno));
2716
- ;}
2717
- break;
2718
-
2719
- case 147:
2720
-
2721
- /* Line 1464 of yacc.c */
2722
- #line 620 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2723
- {
2724
- (yyval.object) = rb_funcall(self, rb_intern("hash_literal"), 2, INT2NUM(yylineno), (yyvsp[(3) - (5)].object));
2725
- ;}
2726
- break;
2727
-
2728
- case 148:
2729
-
2730
- /* Line 1464 of yacc.c */
2731
- #line 623 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2732
- {
2733
- (yyval.object) = rb_funcall(self, rb_intern("hash_literal"), 1, INT2NUM(yylineno));
2734
- ;}
2735
- break;
2736
-
2737
- case 149:
2738
-
2739
- /* Line 1464 of yacc.c */
2740
- #line 628 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2741
- {
2742
- (yyval.object) = rb_funcall(self, rb_intern("block_literal"), 3, INT2NUM(yylineno), Qnil, (yyvsp[(1) - (1)].object));
2743
- ;}
2744
- break;
2745
-
2746
- case 150:
2747
-
2748
- /* Line 1464 of yacc.c */
2749
- #line 631 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2750
- {
2751
- (yyval.object) = rb_funcall(self, rb_intern("block_literal"), 3, INT2NUM(yylineno), (yyvsp[(2) - (5)].object), (yyvsp[(5) - (5)].object));
2752
- ;}
2753
- break;
2754
-
2755
- case 151:
2756
-
2757
- /* Line 1464 of yacc.c */
2758
- #line 636 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2759
- {
2760
- (yyval.object) = rb_funcall(self, rb_intern("tuple_literal"), 2, INT2NUM(yylineno), (yyvsp[(2) - (3)].object));
2761
- ;}
2762
- break;
2763
-
2764
- case 152:
2765
-
2766
- /* Line 1464 of yacc.c */
2767
- #line 641 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2768
- {
2769
- (yyval.object) = rb_funcall(self, rb_intern("range_literal"), 3, INT2NUM(yylineno), (yyvsp[(2) - (6)].object), (yyvsp[(5) - (6)].object));
2770
- ;}
2771
- break;
2772
-
2773
- case 155:
2774
-
2775
- /* Line 1464 of yacc.c */
2776
- #line 650 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2777
- {
2778
- (yyval.object) = rb_funcall(self, rb_intern("block_args"), 2, INT2NUM(yylineno), (yyvsp[(1) - (1)].object));
2779
- ;}
2780
- break;
2781
-
2782
- case 156:
2783
-
2784
- /* Line 1464 of yacc.c */
2785
- #line 653 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2786
- {
2787
- (yyval.object) = rb_funcall(self, rb_intern("block_args"), 3, INT2NUM(yylineno), (yyvsp[(2) - (2)].object), (yyvsp[(1) - (2)].object));
2788
- ;}
2789
- break;
2790
-
2791
- case 157:
2792
-
2793
- /* Line 1464 of yacc.c */
2794
- #line 658 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2795
- {
2796
- (yyval.object) = rb_funcall(self, rb_intern("block_args"), 2, INT2NUM(yylineno), (yyvsp[(1) - (1)].object));
2797
- ;}
2798
- break;
2799
-
2800
- case 158:
2801
-
2802
- /* Line 1464 of yacc.c */
2803
- #line 661 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2804
- {
2805
- (yyval.object) = rb_funcall(self, rb_intern("block_args"), 3, INT2NUM(yylineno), (yyvsp[(3) - (3)].object), (yyvsp[(1) - (3)].object));
2806
- ;}
2807
- break;
2808
-
2809
- case 159:
2810
-
2811
- /* Line 1464 of yacc.c */
2812
- #line 666 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2813
- {
2814
- (yyval.object) = rb_funcall(self, rb_intern("key_value_list"), 3, INT2NUM(yylineno), (yyvsp[(1) - (5)].object), (yyvsp[(5) - (5)].object));
2815
- ;}
2816
- break;
2817
-
2818
- case 160:
2819
-
2820
- /* Line 1464 of yacc.c */
2821
- #line 669 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2822
- {
2823
- (yyval.object) = rb_funcall(self, rb_intern("key_value_list"), 4, INT2NUM(yylineno), (yyvsp[(4) - (8)].object), (yyvsp[(8) - (8)].object), (yyvsp[(1) - (8)].object));
2824
- ;}
2825
- break;
2826
-
2827
- case 161:
2828
-
2829
- /* Line 1464 of yacc.c */
2830
- #line 674 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2831
- {
2832
- (yyval.object) = rb_funcall(self, rb_intern("match_expr"), 3, INT2NUM(yylineno), (yyvsp[(2) - (7)].object), (yyvsp[(5) - (7)].object));
2833
- ;}
2834
- break;
2835
-
2836
- case 162:
2837
-
2838
- /* Line 1464 of yacc.c */
2839
- #line 679 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2840
- {
2841
- (yyval.object) = rb_funcall(self, rb_intern("match_body"), 2, INT2NUM(yylineno), (yyvsp[(1) - (1)].object));
2842
- ;}
2843
- break;
2844
-
2845
- case 163:
2846
-
2847
- /* Line 1464 of yacc.c */
2848
- #line 682 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2849
- {
2850
- (yyval.object) = rb_funcall(self, rb_intern("match_body"), 3, INT2NUM(yylineno), (yyvsp[(2) - (2)].object), (yyvsp[(1) - (2)].object));
2851
- ;}
2852
- break;
2853
-
2854
- case 164:
2855
-
2856
- /* Line 1464 of yacc.c */
2857
- #line 687 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2858
- {
2859
- (yyval.object) = rb_funcall(self, rb_intern("match_clause"), 3, INT2NUM(yylineno), (yyvsp[(2) - (4)].object), (yyvsp[(4) - (4)].object));
2860
- ;}
2861
- break;
2862
-
2863
- case 165:
2864
-
2865
- /* Line 1464 of yacc.c */
2866
- #line 690 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
2867
- {
2868
- (yyval.object) = rb_funcall(self, rb_intern("match_clause"), 4, INT2NUM(yylineno), (yyvsp[(2) - (7)].object), (yyvsp[(7) - (7)].object), (yyvsp[(5) - (7)].object));
2869
- ;}
2870
- break;
2871
-
2872
-
2873
-
2874
- /* Line 1464 of yacc.c */
2875
- #line 2876 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.c"
2876
- default: break;
2877
- }
2878
- YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
2879
-
2880
- YYPOPSTACK (yylen);
2881
- yylen = 0;
2882
- YY_STACK_PRINT (yyss, yyssp);
2883
-
2884
- *++yyvsp = yyval;
2885
-
2886
- /* Now `shift' the result of the reduction. Determine what state
2887
- that goes to, based on the state we popped back to and the rule
2888
- number reduced by. */
2889
-
2890
- yyn = yyr1[yyn];
2891
-
2892
- yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
2893
- if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2894
- yystate = yytable[yystate];
2895
- else
2896
- yystate = yydefgoto[yyn - YYNTOKENS];
2897
-
2898
- goto yynewstate;
2899
-
2900
-
2901
- /*------------------------------------.
2902
- | yyerrlab -- here on detecting error |
2903
- `------------------------------------*/
2904
- yyerrlab:
2905
- /* If not already recovering from an error, report this error. */
2906
- if (!yyerrstatus)
2907
- {
2908
- ++yynerrs;
2909
- #if ! YYERROR_VERBOSE
2910
- yyerror (self, YY_("syntax error"));
2911
- #else
2912
- {
2913
- YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
2914
- if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
2915
- {
2916
- YYSIZE_T yyalloc = 2 * yysize;
2917
- if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
2918
- yyalloc = YYSTACK_ALLOC_MAXIMUM;
2919
- if (yymsg != yymsgbuf)
2920
- YYSTACK_FREE (yymsg);
2921
- yymsg = (char *) YYSTACK_ALLOC (yyalloc);
2922
- if (yymsg)
2923
- yymsg_alloc = yyalloc;
2924
- else
2925
- {
2926
- yymsg = yymsgbuf;
2927
- yymsg_alloc = sizeof yymsgbuf;
2928
- }
2929
- }
2930
-
2931
- if (0 < yysize && yysize <= yymsg_alloc)
2932
- {
2933
- (void) yysyntax_error (yymsg, yystate, yychar);
2934
- yyerror (self, yymsg);
2935
- }
2936
- else
2937
- {
2938
- yyerror (self, YY_("syntax error"));
2939
- if (yysize != 0)
2940
- goto yyexhaustedlab;
2941
- }
2942
- }
2943
- #endif
2944
- }
2945
-
2946
-
2947
-
2948
- if (yyerrstatus == 3)
2949
- {
2950
- /* If just tried and failed to reuse lookahead token after an
2951
- error, discard it. */
2952
-
2953
- if (yychar <= YYEOF)
2954
- {
2955
- /* Return failure if at end of input. */
2956
- if (yychar == YYEOF)
2957
- YYABORT;
2958
- }
2959
- else
2960
- {
2961
- yydestruct ("Error: discarding",
2962
- yytoken, &yylval, self);
2963
- yychar = YYEMPTY;
2964
- }
2965
- }
2966
-
2967
- /* Else will try to reuse lookahead token after shifting the error
2968
- token. */
2969
- goto yyerrlab1;
2970
-
2971
-
2972
- /*---------------------------------------------------.
2973
- | yyerrorlab -- error raised explicitly by YYERROR. |
2974
- `---------------------------------------------------*/
2975
- yyerrorlab:
2976
-
2977
- /* Pacify compilers like GCC when the user code never invokes
2978
- YYERROR and the label yyerrorlab therefore never appears in user
2979
- code. */
2980
- if (/*CONSTCOND*/ 0)
2981
- goto yyerrorlab;
2982
-
2983
- /* Do not reclaim the symbols of the rule which action triggered
2984
- this YYERROR. */
2985
- YYPOPSTACK (yylen);
2986
- yylen = 0;
2987
- YY_STACK_PRINT (yyss, yyssp);
2988
- yystate = *yyssp;
2989
- goto yyerrlab1;
2990
-
2991
-
2992
- /*-------------------------------------------------------------.
2993
- | yyerrlab1 -- common code for both syntax error and YYERROR. |
2994
- `-------------------------------------------------------------*/
2995
- yyerrlab1:
2996
- yyerrstatus = 3; /* Each real token shifted decrements this. */
2997
-
2998
- for (;;)
2999
- {
3000
- yyn = yypact[yystate];
3001
- if (yyn != YYPACT_NINF)
3002
- {
3003
- yyn += YYTERROR;
3004
- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3005
- {
3006
- yyn = yytable[yyn];
3007
- if (0 < yyn)
3008
- break;
3009
- }
3010
- }
3011
-
3012
- /* Pop the current state because it cannot handle the error token. */
3013
- if (yyssp == yyss)
3014
- YYABORT;
3015
-
3016
-
3017
- yydestruct ("Error: popping",
3018
- yystos[yystate], yyvsp, self);
3019
- YYPOPSTACK (1);
3020
- yystate = *yyssp;
3021
- YY_STACK_PRINT (yyss, yyssp);
3022
- }
3023
-
3024
- *++yyvsp = yylval;
3025
-
3026
-
3027
- /* Shift the error token. */
3028
- YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
3029
-
3030
- yystate = yyn;
3031
- goto yynewstate;
3032
-
3033
-
3034
- /*-------------------------------------.
3035
- | yyacceptlab -- YYACCEPT comes here. |
3036
- `-------------------------------------*/
3037
- yyacceptlab:
3038
- yyresult = 0;
3039
- goto yyreturn;
3040
-
3041
- /*-----------------------------------.
3042
- | yyabortlab -- YYABORT comes here. |
3043
- `-----------------------------------*/
3044
- yyabortlab:
3045
- yyresult = 1;
3046
- goto yyreturn;
3047
-
3048
- #if !defined(yyoverflow) || YYERROR_VERBOSE
3049
- /*-------------------------------------------------.
3050
- | yyexhaustedlab -- memory exhaustion comes here. |
3051
- `-------------------------------------------------*/
3052
- yyexhaustedlab:
3053
- yyerror (self, YY_("memory exhausted"));
3054
- yyresult = 2;
3055
- /* Fall through. */
3056
- #endif
3057
-
3058
- yyreturn:
3059
- if (yychar != YYEMPTY)
3060
- yydestruct ("Cleanup: discarding lookahead",
3061
- yytoken, &yylval, self);
3062
- /* Do not reclaim the symbols of the rule which action triggered
3063
- this YYABORT or YYACCEPT. */
3064
- YYPOPSTACK (yylen);
3065
- YY_STACK_PRINT (yyss, yyssp);
3066
- while (yyssp != yyss)
3067
- {
3068
- yydestruct ("Cleanup: popping",
3069
- yystos[*yyssp], yyvsp, self);
3070
- YYPOPSTACK (1);
3071
- }
3072
- #ifndef yyoverflow
3073
- if (yyss != yyssa)
3074
- YYSTACK_FREE (yyss);
3075
- #endif
3076
- #if YYERROR_VERBOSE
3077
- if (yymsg != yymsgbuf)
3078
- YYSTACK_FREE (yymsg);
3079
- #endif
3080
- /* Make sure YYID is used. */
3081
- return YYID (yyresult);
3082
- }
3083
-
3084
-
3085
-
3086
- /* Line 1684 of yacc.c */
3087
- #line 695 "/Users/backtype/projects/fancy/boot/rbx-compiler/parser/parser.y"
3088
-
3089
-
3090
-
3091
- VALUE fy_terminal_node(VALUE self, char* method) {
3092
- return rb_funcall(self, rb_intern(method), 2, INT2NUM(yylineno), rb_str_new2(yytext));
3093
- }
3094
-
3095
- VALUE fy_terminal_node_from(VALUE self, char* method, char* text) {
3096
- return rb_funcall(self, rb_intern(method), 2, INT2NUM(yylineno), rb_str_new2(text));
3097
- }
3098
-
3099
- int yyerror(VALUE self, char *s)
3100
- {
3101
- rb_funcall(self, rb_intern("parse_error"), 2, INT2NUM(yylineno), rb_str_new2(yytext));
3102
- return 1;
3103
- }
3104
-
3105
-