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