fancy 0.9.0 → 0.10.0

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