fancy 0.5.0 → 0.6.0

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