syck 1.4.0 → 1.5.1

Sign up to get free protection for your applications and to get access to all the features.
data/ext/syck/gram.c CHANGED
@@ -1,12 +1,14 @@
1
- /* A Bison parser, made by GNU Bison 1.875d. */
1
+ /* A Bison parser, made by GNU Bison 3.8.2. */
2
2
 
3
- /* Skeleton parser for Yacc-like parsing with Bison,
4
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
3
+ /* Bison implementation for Yacc-like parsers in C
5
4
 
6
- This program is free software; you can redistribute it and/or modify
5
+ Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
6
+ Inc.
7
+
8
+ This program is free software: you can redistribute it and/or modify
7
9
  it under the terms of the GNU General Public License as published by
8
- the Free Software Foundation; either version 2, or (at your option)
9
- any later version.
10
+ the Free Software Foundation, either version 3 of the License, or
11
+ (at your option) any later version.
10
12
 
11
13
  This program is distributed in the hope that it will be useful,
12
14
  but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -14,17 +16,27 @@
14
16
  GNU General Public License for more details.
15
17
 
16
18
  You should have received a copy of the GNU General Public License
17
- along with this program; if not, write to the Free Software
18
- Foundation, Inc., 59 Temple Place - Suite 330,
19
- Boston, MA 02111-1307, USA. */
19
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
20
+
21
+ /* As a special exception, you may create a larger work that contains
22
+ part or all of the Bison parser skeleton and distribute that work
23
+ under terms of your choice, so long as that work isn't itself a
24
+ parser generator using the skeleton or a modified version thereof
25
+ as a parser skeleton. Alternatively, if you modify or redistribute
26
+ the parser skeleton itself, you may (at your option) remove this
27
+ special exception, which will cause the skeleton and the resulting
28
+ Bison output files to be licensed under the GNU General Public
29
+ License without this special exception.
20
30
 
21
- /* As a special exception, when this file is copied by Bison into a
22
- Bison output file, you may use that output file without restriction.
23
- This special exception was added by the Free Software Foundation
24
- in version 1.24 of Bison. */
31
+ This special exception was added by the Free Software Foundation in
32
+ version 2.2 of Bison. */
25
33
 
26
- /* Written by Richard Stallman by simplifying the original so called
27
- ``semantic'' parser. */
34
+ /* C LALR(1) parser skeleton written by Richard Stallman, by
35
+ simplifying the original so-called "semantic" parser. */
36
+
37
+ /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
38
+ especially those whose name start with YY_ or yy_. They are
39
+ private implementation details that can be changed or removed. */
28
40
 
29
41
  /* All symbols defined below should begin with yy or YY, to avoid
30
42
  infringing on user name space. This should be done even for local
@@ -33,8 +45,11 @@
33
45
  define necessary library symbols; they are noted "INFRINGES ON
34
46
  USER NAME SPACE" below. */
35
47
 
36
- /* Identify Bison output. */
37
- #define YYBISON 1
48
+ /* Identify Bison output, and Bison version. */
49
+ #define YYBISON 30802
50
+
51
+ /* Bison version string. */
52
+ #define YYBISON_VERSION "3.8.2"
38
53
 
39
54
  /* Skeleton name. */
40
55
  #define YYSKELETON_NAME "yacc.c"
@@ -42,66 +57,35 @@
42
57
  /* Pure parsers. */
43
58
  #define YYPURE 1
44
59
 
45
- /* Using locations. */
46
- #define YYLSP_NEEDED 0
47
-
48
- /* If NAME_PREFIX is specified substitute the variables and functions
49
- names. */
50
- #define yyparse syckparse
51
- #define yylex sycklex
52
- #define yyerror syckerror
53
- #define yylval sycklval
54
- #define yychar syckchar
55
- #define yydebug syckdebug
56
- #define yynerrs sycknerrs
57
-
58
-
59
- /* Tokens. */
60
- #ifndef YYTOKENTYPE
61
- # define YYTOKENTYPE
62
- /* Put the tokens into the symbol table, so that GDB and other debuggers
63
- know about them. */
64
- enum yytokentype {
65
- YAML_ANCHOR = 258,
66
- YAML_ALIAS = 259,
67
- YAML_TRANSFER = 260,
68
- YAML_TAGURI = 261,
69
- YAML_ITRANSFER = 262,
70
- YAML_WORD = 263,
71
- YAML_PLAIN = 264,
72
- YAML_BLOCK = 265,
73
- YAML_DOCSEP = 266,
74
- YAML_IOPEN = 267,
75
- YAML_INDENT = 268,
76
- YAML_IEND = 269
77
- };
78
- #endif
79
- #define YAML_ANCHOR 258
80
- #define YAML_ALIAS 259
81
- #define YAML_TRANSFER 260
82
- #define YAML_TAGURI 261
83
- #define YAML_ITRANSFER 262
84
- #define YAML_WORD 263
85
- #define YAML_PLAIN 264
86
- #define YAML_BLOCK 265
87
- #define YAML_DOCSEP 266
88
- #define YAML_IOPEN 267
89
- #define YAML_INDENT 268
90
- #define YAML_IEND 269
60
+ /* Push parsers. */
61
+ #define YYPUSH 0
62
+
63
+ /* Pull parsers. */
64
+ #define YYPULL 1
65
+
91
66
 
92
67
 
93
68
 
69
+ /* First part of user prologue. */
70
+ #line 4 "gram.y"
94
71
 
95
- /* Copy the first part of user declarations. */
96
- #line 14 "gram.y"
97
72
 
73
+ #define YYDEBUG 1
74
+ #define YYERROR_VERBOSE 1
75
+ #ifndef YYSTACK_USE_ALLOCA
76
+ #define YYSTACK_USE_ALLOCA 0
77
+ #endif
98
78
 
99
79
  #include "syck.h"
100
80
 
101
81
  void apply_seq_in_map( SyckParser *parser, SyckNode *n );
102
82
 
103
- #define YYPARSE_PARAM parser
104
- #define YYLEX_PARAM parser
83
+ #define YYPARSE_PARAM parser
84
+ #define YYLEX_PARAM parser
85
+
86
+ #define yyparse syckparse
87
+ #define yylex(yylval) sycklex(yylval, YYLEX_PARAM)
88
+ #define yyerror(_, error) syckerror(error)
105
89
 
106
90
  #define NULL_NODE(parser, node) \
107
91
  SyckNode *node = syck_new_str( "", scalar_plain ); \
@@ -114,166 +98,438 @@ void apply_seq_in_map( SyckParser *parser, SyckNode *n );
114
98
  node->type_id = syck_strndup( "null", 4 ); \
115
99
  }
116
100
 
101
+ #line 102 "gram.c"
102
+
103
+ # ifndef YY_CAST
104
+ # ifdef __cplusplus
105
+ # define YY_CAST(Type, Val) static_cast<Type> (Val)
106
+ # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
107
+ # else
108
+ # define YY_CAST(Type, Val) ((Type) (Val))
109
+ # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
110
+ # endif
111
+ # endif
112
+ # ifndef YY_NULLPTR
113
+ # if defined __cplusplus
114
+ # if 201103L <= __cplusplus
115
+ # define YY_NULLPTR nullptr
116
+ # else
117
+ # define YY_NULLPTR 0
118
+ # endif
119
+ # else
120
+ # define YY_NULLPTR ((void*)0)
121
+ # endif
122
+ # endif
123
+
124
+ #include "gram.h"
125
+ /* Symbol kind. */
126
+ enum yysymbol_kind_t
127
+ {
128
+ YYSYMBOL_YYEMPTY = -2,
129
+ YYSYMBOL_YYEOF = 0, /* "end of file" */
130
+ YYSYMBOL_YYerror = 1, /* error */
131
+ YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
132
+ YYSYMBOL_YAML_ANCHOR = 3, /* YAML_ANCHOR */
133
+ YYSYMBOL_YAML_ALIAS = 4, /* YAML_ALIAS */
134
+ YYSYMBOL_YAML_TRANSFER = 5, /* YAML_TRANSFER */
135
+ YYSYMBOL_YAML_TAGURI = 6, /* YAML_TAGURI */
136
+ YYSYMBOL_YAML_ITRANSFER = 7, /* YAML_ITRANSFER */
137
+ YYSYMBOL_YAML_WORD = 8, /* YAML_WORD */
138
+ YYSYMBOL_YAML_PLAIN = 9, /* YAML_PLAIN */
139
+ YYSYMBOL_YAML_BLOCK = 10, /* YAML_BLOCK */
140
+ YYSYMBOL_YAML_DOCSEP = 11, /* YAML_DOCSEP */
141
+ YYSYMBOL_YAML_IOPEN = 12, /* YAML_IOPEN */
142
+ YYSYMBOL_YAML_INDENT = 13, /* YAML_INDENT */
143
+ YYSYMBOL_YAML_IEND = 14, /* YAML_IEND */
144
+ YYSYMBOL_15_ = 15, /* '-' */
145
+ YYSYMBOL_16_ = 16, /* ':' */
146
+ YYSYMBOL_17_ = 17, /* '[' */
147
+ YYSYMBOL_18_ = 18, /* ']' */
148
+ YYSYMBOL_19_ = 19, /* '{' */
149
+ YYSYMBOL_20_ = 20, /* '}' */
150
+ YYSYMBOL_21_ = 21, /* ',' */
151
+ YYSYMBOL_22_ = 22, /* '?' */
152
+ YYSYMBOL_YYACCEPT = 23, /* $accept */
153
+ YYSYMBOL_doc = 24, /* doc */
154
+ YYSYMBOL_atom = 25, /* atom */
155
+ YYSYMBOL_ind_rep = 26, /* ind_rep */
156
+ YYSYMBOL_atom_or_empty = 27, /* atom_or_empty */
157
+ YYSYMBOL_empty = 28, /* empty */
158
+ YYSYMBOL_indent_open = 29, /* indent_open */
159
+ YYSYMBOL_indent_end = 30, /* indent_end */
160
+ YYSYMBOL_indent_sep = 31, /* indent_sep */
161
+ YYSYMBOL_indent_flex_end = 32, /* indent_flex_end */
162
+ YYSYMBOL_word_rep = 33, /* word_rep */
163
+ YYSYMBOL_struct_rep = 34, /* struct_rep */
164
+ YYSYMBOL_implicit_seq = 35, /* implicit_seq */
165
+ YYSYMBOL_basic_seq = 36, /* basic_seq */
166
+ YYSYMBOL_top_imp_seq = 37, /* top_imp_seq */
167
+ YYSYMBOL_in_implicit_seq = 38, /* in_implicit_seq */
168
+ YYSYMBOL_inline_seq = 39, /* inline_seq */
169
+ YYSYMBOL_in_inline_seq = 40, /* in_inline_seq */
170
+ YYSYMBOL_inline_seq_atom = 41, /* inline_seq_atom */
171
+ YYSYMBOL_implicit_map = 42, /* implicit_map */
172
+ YYSYMBOL_top_imp_map = 43, /* top_imp_map */
173
+ YYSYMBOL_complex_key = 44, /* complex_key */
174
+ YYSYMBOL_complex_value = 45, /* complex_value */
175
+ YYSYMBOL_complex_mapping = 46, /* complex_mapping */
176
+ YYSYMBOL_in_implicit_map = 47, /* in_implicit_map */
177
+ YYSYMBOL_basic_mapping = 48, /* basic_mapping */
178
+ YYSYMBOL_inline_map = 49, /* inline_map */
179
+ YYSYMBOL_in_inline_map = 50, /* in_inline_map */
180
+ YYSYMBOL_inline_map_atom = 51 /* inline_map_atom */
181
+ };
182
+ typedef enum yysymbol_kind_t yysymbol_kind_t;
183
+
184
+
185
+
186
+
187
+ #ifdef short
188
+ # undef short
189
+ #endif
190
+
191
+ /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
192
+ <limits.h> and (if available) <stdint.h> are included
193
+ so that the code can choose integer types of a good width. */
194
+
195
+ #ifndef __PTRDIFF_MAX__
196
+ # include <limits.h> /* INFRINGES ON USER NAME SPACE */
197
+ # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
198
+ # include <stdint.h> /* INFRINGES ON USER NAME SPACE */
199
+ # define YY_STDINT_H
200
+ # endif
201
+ #endif
202
+
203
+ /* Narrow types that promote to a signed type and that can represent a
204
+ signed or unsigned integer of at least N bits. In tables they can
205
+ save space and decrease cache pressure. Promoting to a signed type
206
+ helps avoid bugs in integer arithmetic. */
207
+
208
+ #ifdef __INT_LEAST8_MAX__
209
+ typedef __INT_LEAST8_TYPE__ yytype_int8;
210
+ #elif defined YY_STDINT_H
211
+ typedef int_least8_t yytype_int8;
212
+ #else
213
+ typedef signed char yytype_int8;
214
+ #endif
215
+
216
+ #ifdef __INT_LEAST16_MAX__
217
+ typedef __INT_LEAST16_TYPE__ yytype_int16;
218
+ #elif defined YY_STDINT_H
219
+ typedef int_least16_t yytype_int16;
220
+ #else
221
+ typedef short yytype_int16;
222
+ #endif
117
223
 
118
- /* Enabling traces. */
119
- #ifndef YYDEBUG
120
- # define YYDEBUG 1
224
+ /* Work around bug in HP-UX 11.23, which defines these macros
225
+ incorrectly for preprocessor constants. This workaround can likely
226
+ be removed in 2023, as HPE has promised support for HP-UX 11.23
227
+ (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
228
+ <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */
229
+ #ifdef __hpux
230
+ # undef UINT_LEAST8_MAX
231
+ # undef UINT_LEAST16_MAX
232
+ # define UINT_LEAST8_MAX 255
233
+ # define UINT_LEAST16_MAX 65535
121
234
  #endif
122
235
 
123
- /* Enabling verbose error messages. */
124
- #ifdef YYERROR_VERBOSE
125
- # undef YYERROR_VERBOSE
126
- # define YYERROR_VERBOSE 1
236
+ #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
237
+ typedef __UINT_LEAST8_TYPE__ yytype_uint8;
238
+ #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
239
+ && UINT_LEAST8_MAX <= INT_MAX)
240
+ typedef uint_least8_t yytype_uint8;
241
+ #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
242
+ typedef unsigned char yytype_uint8;
127
243
  #else
128
- # define YYERROR_VERBOSE 0
244
+ typedef short yytype_uint8;
129
245
  #endif
130
246
 
131
- #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
132
- #line 35 "gram.y"
133
- typedef union YYSTYPE {
134
- SYMID nodeId;
135
- SyckNode *nodeData;
136
- char *name;
137
- } YYSTYPE;
138
- /* Line 191 of yacc.c. */
139
- #line 140 "gram.c"
140
- # define yystype YYSTYPE /* obsolescent; will be withdrawn */
141
- # define YYSTYPE_IS_DECLARED 1
142
- # define YYSTYPE_IS_TRIVIAL 1
247
+ #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
248
+ typedef __UINT_LEAST16_TYPE__ yytype_uint16;
249
+ #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
250
+ && UINT_LEAST16_MAX <= INT_MAX)
251
+ typedef uint_least16_t yytype_uint16;
252
+ #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
253
+ typedef unsigned short yytype_uint16;
254
+ #else
255
+ typedef int yytype_uint16;
256
+ #endif
257
+
258
+ #ifndef YYPTRDIFF_T
259
+ # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
260
+ # define YYPTRDIFF_T __PTRDIFF_TYPE__
261
+ # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
262
+ # elif defined PTRDIFF_MAX
263
+ # ifndef ptrdiff_t
264
+ # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
265
+ # endif
266
+ # define YYPTRDIFF_T ptrdiff_t
267
+ # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
268
+ # else
269
+ # define YYPTRDIFF_T long
270
+ # define YYPTRDIFF_MAXIMUM LONG_MAX
271
+ # endif
143
272
  #endif
144
273
 
274
+ #ifndef YYSIZE_T
275
+ # ifdef __SIZE_TYPE__
276
+ # define YYSIZE_T __SIZE_TYPE__
277
+ # elif defined size_t
278
+ # define YYSIZE_T size_t
279
+ # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
280
+ # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
281
+ # define YYSIZE_T size_t
282
+ # else
283
+ # define YYSIZE_T unsigned
284
+ # endif
285
+ #endif
145
286
 
287
+ #define YYSIZE_MAXIMUM \
288
+ YY_CAST (YYPTRDIFF_T, \
289
+ (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
290
+ ? YYPTRDIFF_MAXIMUM \
291
+ : YY_CAST (YYSIZE_T, -1)))
146
292
 
147
- /* Copy the second part of user declarations. */
293
+ #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
148
294
 
149
295
 
150
- /* Line 214 of yacc.c. */
151
- #line 152 "gram.c"
296
+ /* Stored state numbers (used for stacks). */
297
+ typedef yytype_int8 yy_state_t;
152
298
 
153
- #if ! defined (yyoverflow) || YYERROR_VERBOSE
299
+ /* State numbers in computations. */
300
+ typedef int yy_state_fast_t;
154
301
 
155
- # ifndef YYFREE
156
- # define YYFREE free
302
+ #ifndef YY_
303
+ # if defined YYENABLE_NLS && YYENABLE_NLS
304
+ # if ENABLE_NLS
305
+ # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
306
+ # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
307
+ # endif
157
308
  # endif
158
- # ifndef YYMALLOC
159
- # define YYMALLOC malloc
309
+ # ifndef YY_
310
+ # define YY_(Msgid) Msgid
160
311
  # endif
312
+ #endif
313
+
314
+
315
+ #ifndef YY_ATTRIBUTE_PURE
316
+ # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
317
+ # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
318
+ # else
319
+ # define YY_ATTRIBUTE_PURE
320
+ # endif
321
+ #endif
322
+
323
+ #ifndef YY_ATTRIBUTE_UNUSED
324
+ # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
325
+ # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
326
+ # else
327
+ # define YY_ATTRIBUTE_UNUSED
328
+ # endif
329
+ #endif
330
+
331
+ /* Suppress unused-variable warnings by "using" E. */
332
+ #if ! defined lint || defined __GNUC__
333
+ # define YY_USE(E) ((void) (E))
334
+ #else
335
+ # define YY_USE(E) /* empty */
336
+ #endif
337
+
338
+ /* Suppress an incorrect diagnostic about yylval being uninitialized. */
339
+ #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
340
+ # if __GNUC__ * 100 + __GNUC_MINOR__ < 407
341
+ # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
342
+ _Pragma ("GCC diagnostic push") \
343
+ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
344
+ # else
345
+ # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
346
+ _Pragma ("GCC diagnostic push") \
347
+ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
348
+ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
349
+ # endif
350
+ # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
351
+ _Pragma ("GCC diagnostic pop")
352
+ #else
353
+ # define YY_INITIAL_VALUE(Value) Value
354
+ #endif
355
+ #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
356
+ # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
357
+ # define YY_IGNORE_MAYBE_UNINITIALIZED_END
358
+ #endif
359
+ #ifndef YY_INITIAL_VALUE
360
+ # define YY_INITIAL_VALUE(Value) /* Nothing. */
361
+ #endif
362
+
363
+ #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
364
+ # define YY_IGNORE_USELESS_CAST_BEGIN \
365
+ _Pragma ("GCC diagnostic push") \
366
+ _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
367
+ # define YY_IGNORE_USELESS_CAST_END \
368
+ _Pragma ("GCC diagnostic pop")
369
+ #endif
370
+ #ifndef YY_IGNORE_USELESS_CAST_BEGIN
371
+ # define YY_IGNORE_USELESS_CAST_BEGIN
372
+ # define YY_IGNORE_USELESS_CAST_END
373
+ #endif
374
+
375
+
376
+ #define YY_ASSERT(E) ((void) (0 && (E)))
377
+
378
+ #if !defined yyoverflow
161
379
 
162
380
  /* The parser invokes alloca or malloc; define the necessary symbols. */
163
381
 
164
382
  # ifdef YYSTACK_USE_ALLOCA
165
383
  # if YYSTACK_USE_ALLOCA
166
- # define YYSTACK_ALLOC alloca
167
- # endif
168
- # else
169
- # if defined (alloca) || defined (_ALLOCA_H)
170
- # define YYSTACK_ALLOC alloca
171
- # else
172
384
  # ifdef __GNUC__
173
385
  # define YYSTACK_ALLOC __builtin_alloca
386
+ # elif defined __BUILTIN_VA_ARG_INCR
387
+ # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
388
+ # elif defined _AIX
389
+ # define YYSTACK_ALLOC __alloca
390
+ # elif defined _MSC_VER
391
+ # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
392
+ # define alloca _alloca
393
+ # else
394
+ # define YYSTACK_ALLOC alloca
395
+ # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
396
+ # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
397
+ /* Use EXIT_SUCCESS as a witness for stdlib.h. */
398
+ # ifndef EXIT_SUCCESS
399
+ # define EXIT_SUCCESS 0
400
+ # endif
401
+ # endif
174
402
  # endif
175
403
  # endif
176
404
  # endif
177
405
 
178
406
  # ifdef YYSTACK_ALLOC
179
- /* Pacify GCC's `empty if-body' warning. */
407
+ /* Pacify GCC's 'empty if-body' warning. */
180
408
  # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
181
- # else
182
- # if defined (__STDC__) || defined (__cplusplus)
183
- # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
184
- # define YYSIZE_T size_t
409
+ # ifndef YYSTACK_ALLOC_MAXIMUM
410
+ /* The OS might guarantee only one guard page at the bottom of the stack,
411
+ and a page size can be as small as 4096 bytes. So we cannot safely
412
+ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
413
+ to allow for a few compiler-allocated temporary stack slots. */
414
+ # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
185
415
  # endif
416
+ # else
186
417
  # define YYSTACK_ALLOC YYMALLOC
187
418
  # define YYSTACK_FREE YYFREE
419
+ # ifndef YYSTACK_ALLOC_MAXIMUM
420
+ # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
421
+ # endif
422
+ # if (defined __cplusplus && ! defined EXIT_SUCCESS \
423
+ && ! ((defined YYMALLOC || defined malloc) \
424
+ && (defined YYFREE || defined free)))
425
+ # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
426
+ # ifndef EXIT_SUCCESS
427
+ # define EXIT_SUCCESS 0
428
+ # endif
429
+ # endif
430
+ # ifndef YYMALLOC
431
+ # define YYMALLOC malloc
432
+ # if ! defined malloc && ! defined EXIT_SUCCESS
433
+ void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
434
+ # endif
435
+ # endif
436
+ # ifndef YYFREE
437
+ # define YYFREE free
438
+ # if ! defined free && ! defined EXIT_SUCCESS
439
+ void free (void *); /* INFRINGES ON USER NAME SPACE */
440
+ # endif
441
+ # endif
188
442
  # endif
189
- #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
443
+ #endif /* !defined yyoverflow */
190
444
 
191
-
192
- #if (! defined (yyoverflow) \
193
- && (! defined (__cplusplus) \
194
- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
445
+ #if (! defined yyoverflow \
446
+ && (! defined __cplusplus \
447
+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
195
448
 
196
449
  /* A type that is properly aligned for any stack member. */
197
450
  union yyalloc
198
451
  {
199
- short int yyss;
200
- YYSTYPE yyvs;
201
- };
452
+ yy_state_t yyss_alloc;
453
+ YYSTYPE yyvs_alloc;
454
+ };
202
455
 
203
456
  /* The size of the maximum gap between one aligned stack and the next. */
204
- # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
457
+ # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
205
458
 
206
459
  /* The size of an array large to enough to hold all stacks, each with
207
460
  N elements. */
208
461
  # define YYSTACK_BYTES(N) \
209
- ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \
462
+ ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
210
463
  + YYSTACK_GAP_MAXIMUM)
211
464
 
212
- /* Copy COUNT objects from FROM to TO. The source and destination do
213
- not overlap. */
214
- # ifndef YYCOPY
215
- # if defined (__GNUC__) && 1 < __GNUC__
216
- # define YYCOPY(To, From, Count) \
217
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
218
- # else
219
- # define YYCOPY(To, From, Count) \
220
- do \
221
- { \
222
- register YYSIZE_T yyi; \
223
- for (yyi = 0; yyi < (Count); yyi++) \
224
- (To)[yyi] = (From)[yyi]; \
225
- } \
226
- while (0)
227
- # endif
228
- # endif
465
+ # define YYCOPY_NEEDED 1
229
466
 
230
467
  /* Relocate STACK from its old location to the new one. The
231
468
  local variables YYSIZE and YYSTACKSIZE give the old and new number of
232
469
  elements in the stack, and YYPTR gives the new location of the
233
470
  stack. Advance YYPTR to a properly aligned location for the next
234
471
  stack. */
235
- # define YYSTACK_RELOCATE(Stack) \
236
- do \
237
- { \
238
- YYSIZE_T yynewbytes; \
239
- YYCOPY (&yyptr->Stack, Stack, yysize); \
240
- Stack = &yyptr->Stack; \
241
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
242
- yyptr += yynewbytes / sizeof (*yyptr); \
243
- } \
472
+ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
473
+ do \
474
+ { \
475
+ YYPTRDIFF_T yynewbytes; \
476
+ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
477
+ Stack = &yyptr->Stack_alloc; \
478
+ yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
479
+ yyptr += yynewbytes / YYSIZEOF (*yyptr); \
480
+ } \
244
481
  while (0)
245
482
 
246
483
  #endif
247
484
 
248
- #if defined (__STDC__) || defined (__cplusplus)
249
- typedef signed char yysigned_char;
250
- #else
251
- typedef short int yysigned_char;
252
- #endif
485
+ #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
486
+ /* Copy COUNT objects from SRC to DST. The source and destination do
487
+ not overlap. */
488
+ # ifndef YYCOPY
489
+ # if defined __GNUC__ && 1 < __GNUC__
490
+ # define YYCOPY(Dst, Src, Count) \
491
+ __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
492
+ # else
493
+ # define YYCOPY(Dst, Src, Count) \
494
+ do \
495
+ { \
496
+ YYPTRDIFF_T yyi; \
497
+ for (yyi = 0; yyi < (Count); yyi++) \
498
+ (Dst)[yyi] = (Src)[yyi]; \
499
+ } \
500
+ while (0)
501
+ # endif
502
+ # endif
503
+ #endif /* !YYCOPY_NEEDED */
253
504
 
254
- /* YYFINAL -- State number of the termination state. */
505
+ /* YYFINAL -- State number of the termination state. */
255
506
  #define YYFINAL 52
256
507
  /* YYLAST -- Last index in YYTABLE. */
257
508
  #define YYLAST 396
258
509
 
259
- /* YYNTOKENS -- Number of terminals. */
510
+ /* YYNTOKENS -- Number of terminals. */
260
511
  #define YYNTOKENS 23
261
- /* YYNNTS -- Number of nonterminals. */
512
+ /* YYNNTS -- Number of nonterminals. */
262
513
  #define YYNNTS 29
263
- /* YYNRULES -- Number of rules. */
514
+ /* YYNRULES -- Number of rules. */
264
515
  #define YYNRULES 79
265
- /* YYNRULES -- Number of states. */
516
+ /* YYNSTATES -- Number of states. */
266
517
  #define YYNSTATES 128
267
518
 
268
- /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
269
- #define YYUNDEFTOK 2
519
+ /* YYMAXUTOK -- Last valid token kind. */
270
520
  #define YYMAXUTOK 269
271
521
 
272
- #define YYTRANSLATE(YYX) \
273
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
274
522
 
275
- /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
276
- static const unsigned char yytranslate[] =
523
+ /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
524
+ as returned by yylex, with out-of-bounds checking. */
525
+ #define YYTRANSLATE(YYX) \
526
+ (0 <= (YYX) && (YYX) <= YYMAXUTOK \
527
+ ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
528
+ : YYSYMBOL_YYUNDEF)
529
+
530
+ /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
531
+ as returned by yylex. */
532
+ static const yytype_int8 yytranslate[] =
277
533
  {
278
534
  0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
279
535
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -305,150 +561,65 @@ static const unsigned char yytranslate[] =
305
561
  };
306
562
 
307
563
  #if YYDEBUG
308
- /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
309
- YYRHS. */
310
- static const unsigned char yyprhs[] =
564
+ /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
565
+ static const yytype_int16 yyrline[] =
311
566
  {
312
- 0, 0, 3, 5, 8, 9, 11, 13, 15, 18,
313
- 21, 24, 28, 30, 32, 36, 37, 40, 43, 46,
314
- 49, 51, 54, 56, 58, 60, 63, 66, 69, 72,
315
- 75, 77, 79, 81, 85, 87, 89, 91, 93, 95,
316
- 99, 103, 106, 110, 113, 117, 120, 124, 127, 129,
317
- 133, 136, 140, 143, 145, 149, 151, 153, 157, 161,
318
- 165, 168, 172, 175, 179, 182, 184, 188, 190, 194,
319
- 196, 200, 204, 207, 211, 215, 218, 220, 224, 226
567
+ 0, 57, 57, 61, 66, 71, 72, 75, 76, 81,
568
+ 86, 95, 101, 102, 105, 110, 114, 122, 127, 132,
569
+ 146, 147, 150, 153, 156, 157, 165, 170, 175, 183,
570
+ 187, 195, 208, 209, 219, 220, 221, 222, 223, 229,
571
+ 233, 239, 245, 250, 255, 260, 265, 269, 275, 279,
572
+ 284, 293, 297, 303, 307, 314, 315, 321, 326, 333,
573
+ 338, 343, 348, 353, 357, 363, 364, 370, 380, 397,
574
+ 398, 410, 418, 427, 435, 439, 445, 446, 455, 462
320
575
  };
576
+ #endif
321
577
 
322
- /* YYRHS -- A `-1'-separated list of the rules' RHS. */
323
- static const yysigned_char yyrhs[] =
324
- {
325
- 24, 0, -1, 25, -1, 11, 27, -1, -1, 33,
326
- -1, 26, -1, 34, -1, 5, 26, -1, 6, 26,
327
- -1, 3, 26, -1, 29, 26, 32, -1, 25, -1,
328
- 28, -1, 29, 28, 30, -1, -1, 7, 28, -1,
329
- 5, 28, -1, 6, 28, -1, 3, 28, -1, 12,
330
- -1, 29, 13, -1, 14, -1, 13, -1, 14, -1,
331
- 31, 32, -1, 5, 33, -1, 6, 33, -1, 7,
332
- 33, -1, 3, 33, -1, 4, -1, 8, -1, 9,
333
- -1, 29, 33, 32, -1, 10, -1, 35, -1, 39,
334
- -1, 42, -1, 49, -1, 29, 37, 30, -1, 29,
335
- 38, 30, -1, 15, 27, -1, 5, 31, 38, -1,
336
- 5, 37, -1, 6, 31, 38, -1, 6, 37, -1,
337
- 3, 31, 38, -1, 3, 37, -1, 36, -1, 38,
338
- 31, 36, -1, 38, 31, -1, 17, 40, 18, -1,
339
- 17, 18, -1, 41, -1, 40, 21, 41, -1, 25,
340
- -1, 48, -1, 29, 43, 30, -1, 29, 47, 30,
341
- -1, 5, 31, 47, -1, 5, 43, -1, 6, 31,
342
- 47, -1, 6, 43, -1, 3, 31, 47, -1, 3,
343
- 43, -1, 33, -1, 22, 25, 31, -1, 27, -1,
344
- 44, 16, 45, -1, 46, -1, 47, 31, 36, -1,
345
- 47, 31, 46, -1, 47, 31, -1, 25, 16, 27,
346
- -1, 19, 50, 20, -1, 19, 20, -1, 51, -1,
347
- 50, 21, 51, -1, 25, -1, 48, -1
348
- };
578
+ /** Accessing symbol of state STATE. */
579
+ #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
349
580
 
350
- /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
351
- static const unsigned short int yyrline[] =
352
- {
353
- 0, 56, 56, 60, 65, 70, 71, 74, 75, 80,
354
- 85, 94, 100, 101, 104, 109, 113, 121, 126, 131,
355
- 145, 146, 149, 152, 155, 156, 164, 169, 174, 182,
356
- 186, 194, 207, 208, 218, 219, 220, 221, 222, 228,
357
- 232, 238, 244, 249, 254, 259, 264, 268, 274, 278,
358
- 283, 292, 296, 302, 306, 313, 314, 320, 325, 332,
359
- 337, 342, 347, 352, 356, 362, 363, 369, 379, 396,
360
- 397, 409, 417, 426, 434, 438, 444, 445, 454, 461
361
- };
362
- #endif
581
+ #if YYDEBUG || 0
582
+ /* The user-facing name of the symbol whose (internal) number is
583
+ YYSYMBOL. No bounds checking. */
584
+ static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
363
585
 
364
- #if YYDEBUG || YYERROR_VERBOSE
365
- /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
366
- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
586
+ /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
587
+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
367
588
  static const char *const yytname[] =
368
589
  {
369
- "$end", "error", "$undefined", "YAML_ANCHOR", "YAML_ALIAS",
370
- "YAML_TRANSFER", "YAML_TAGURI", "YAML_ITRANSFER", "YAML_WORD",
371
- "YAML_PLAIN", "YAML_BLOCK", "YAML_DOCSEP", "YAML_IOPEN", "YAML_INDENT",
372
- "YAML_IEND", "'-'", "':'", "'['", "']'", "'{'", "'}'", "','", "'?'",
373
- "$accept", "doc", "atom", "ind_rep", "atom_or_empty", "empty",
374
- "indent_open", "indent_end", "indent_sep", "indent_flex_end", "word_rep",
375
- "struct_rep", "implicit_seq", "basic_seq", "top_imp_seq",
590
+ "\"end of file\"", "error", "\"invalid token\"", "YAML_ANCHOR",
591
+ "YAML_ALIAS", "YAML_TRANSFER", "YAML_TAGURI", "YAML_ITRANSFER",
592
+ "YAML_WORD", "YAML_PLAIN", "YAML_BLOCK", "YAML_DOCSEP", "YAML_IOPEN",
593
+ "YAML_INDENT", "YAML_IEND", "'-'", "':'", "'['", "']'", "'{'", "'}'",
594
+ "','", "'?'", "$accept", "doc", "atom", "ind_rep", "atom_or_empty",
595
+ "empty", "indent_open", "indent_end", "indent_sep", "indent_flex_end",
596
+ "word_rep", "struct_rep", "implicit_seq", "basic_seq", "top_imp_seq",
376
597
  "in_implicit_seq", "inline_seq", "in_inline_seq", "inline_seq_atom",
377
598
  "implicit_map", "top_imp_map", "complex_key", "complex_value",
378
599
  "complex_mapping", "in_implicit_map", "basic_mapping", "inline_map",
379
- "in_inline_map", "inline_map_atom", 0
600
+ "in_inline_map", "inline_map_atom", YY_NULLPTR
380
601
  };
381
- #endif
382
602
 
383
- # ifdef YYPRINT
384
- /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
385
- token YYLEX-NUM. */
386
- static const unsigned short int yytoknum[] =
603
+ static const char *
604
+ yysymbol_name (yysymbol_kind_t yysymbol)
387
605
  {
388
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
389
- 265, 266, 267, 268, 269, 45, 58, 91, 93, 123,
390
- 125, 44, 63
391
- };
392
- # endif
606
+ return yytname[yysymbol];
607
+ }
608
+ #endif
393
609
 
394
- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
395
- static const unsigned char yyr1[] =
396
- {
397
- 0, 23, 24, 24, 24, 25, 25, 26, 26, 26,
398
- 26, 26, 27, 27, 28, 28, 28, 28, 28, 28,
399
- 29, 29, 30, 31, 32, 32, 33, 33, 33, 33,
400
- 33, 33, 33, 33, 34, 34, 34, 34, 34, 35,
401
- 35, 36, 37, 37, 37, 37, 37, 37, 38, 38,
402
- 38, 39, 39, 40, 40, 41, 41, 42, 42, 43,
403
- 43, 43, 43, 43, 43, 44, 44, 45, 46, 47,
404
- 47, 47, 47, 48, 49, 49, 50, 50, 51, 51
405
- };
610
+ #define YYPACT_NINF (-97)
406
611
 
407
- /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
408
- static const unsigned char yyr2[] =
409
- {
410
- 0, 2, 1, 2, 0, 1, 1, 1, 2, 2,
411
- 2, 3, 1, 1, 3, 0, 2, 2, 2, 2,
412
- 1, 2, 1, 1, 1, 2, 2, 2, 2, 2,
413
- 1, 1, 1, 3, 1, 1, 1, 1, 1, 3,
414
- 3, 2, 3, 2, 3, 2, 3, 2, 1, 3,
415
- 2, 3, 2, 1, 3, 1, 1, 3, 3, 3,
416
- 2, 3, 2, 3, 2, 1, 3, 1, 3, 1,
417
- 3, 3, 2, 3, 3, 2, 1, 3, 1, 1
418
- };
612
+ #define yypact_value_is_default(Yyn) \
613
+ ((Yyn) == YYPACT_NINF)
419
614
 
420
- /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
421
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
422
- means the default is an error. */
423
- static const unsigned char yydefact[] =
424
- {
425
- 4, 0, 30, 0, 0, 0, 31, 32, 34, 15,
426
- 20, 0, 0, 0, 2, 6, 0, 5, 7, 35,
427
- 36, 37, 38, 10, 29, 8, 26, 9, 27, 0,
428
- 0, 0, 0, 28, 15, 15, 15, 15, 12, 3,
429
- 13, 15, 52, 55, 0, 53, 56, 75, 78, 79,
430
- 0, 76, 1, 0, 0, 0, 21, 15, 0, 0,
431
- 65, 48, 0, 0, 0, 0, 69, 0, 0, 19,
432
- 17, 18, 15, 15, 15, 16, 15, 15, 15, 15,
433
- 0, 15, 51, 0, 74, 0, 23, 0, 47, 64,
434
- 0, 43, 60, 0, 45, 62, 41, 0, 24, 0,
435
- 11, 33, 22, 39, 40, 50, 57, 15, 58, 72,
436
- 14, 73, 54, 77, 65, 46, 63, 42, 59, 44,
437
- 61, 66, 25, 49, 67, 68, 70, 71
438
- };
615
+ #define YYTABLE_NINF (-1)
439
616
 
440
- /* YYDEFGOTO[NTERM-NUM]. */
441
- static const yysigned_char yydefgoto[] =
442
- {
443
- -1, 13, 38, 15, 39, 40, 16, 103, 99, 101,
444
- 17, 18, 19, 61, 62, 63, 20, 44, 45, 21,
445
- 64, 65, 125, 66, 67, 46, 22, 50, 51
446
- };
617
+ #define yytable_value_is_error(Yyn) \
618
+ 0
447
619
 
448
620
  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
449
621
  STATE-NUM. */
450
- #define YYPACT_NINF -97
451
- static const short int yypact[] =
622
+ static const yytype_int16 yypact[] =
452
623
  {
453
624
  250, 318, -97, 318, 318, 374, -97, -97, -97, 335,
454
625
  -97, 267, 232, 7, -97, -97, 192, -97, -97, -97,
@@ -465,20 +636,46 @@ static const short int yypact[] =
465
636
  24, -97, -97, -97, -97, -97, -97, -97
466
637
  };
467
638
 
639
+ /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
640
+ Performed when YYTABLE does not specify something else to do. Zero
641
+ means the default is an error. */
642
+ static const yytype_int8 yydefact[] =
643
+ {
644
+ 4, 0, 30, 0, 0, 0, 31, 32, 34, 15,
645
+ 20, 0, 0, 0, 2, 6, 0, 5, 7, 35,
646
+ 36, 37, 38, 10, 29, 8, 26, 9, 27, 0,
647
+ 0, 0, 0, 28, 15, 15, 15, 15, 12, 3,
648
+ 13, 15, 52, 55, 0, 53, 56, 75, 78, 79,
649
+ 0, 76, 1, 0, 0, 0, 21, 15, 0, 0,
650
+ 65, 48, 0, 0, 0, 0, 69, 0, 0, 19,
651
+ 17, 18, 15, 15, 15, 16, 15, 15, 15, 15,
652
+ 0, 15, 51, 0, 74, 0, 23, 0, 47, 64,
653
+ 0, 43, 60, 0, 45, 62, 41, 0, 24, 0,
654
+ 11, 33, 22, 39, 40, 50, 57, 15, 58, 72,
655
+ 14, 73, 54, 77, 65, 46, 63, 42, 59, 44,
656
+ 61, 66, 25, 49, 67, 68, 70, 71
657
+ };
658
+
468
659
  /* YYPGOTO[NTERM-NUM]. */
469
- static const yysigned_char yypgoto[] =
660
+ static const yytype_int8 yypgoto[] =
470
661
  {
471
662
  -97, -97, 8, 81, -56, 109, 33, -53, 74, -54,
472
663
  -1, -97, -97, -96, -31, -32, -97, -97, -44, -97,
473
664
  77, -97, -97, -52, 9, -6, -97, -97, -29
474
665
  };
475
666
 
476
- /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
477
- positive, shift that token. If negative, reduce the rule which
478
- number is the opposite. If zero, do what YYDEFACT says.
479
- If YYTABLE_NINF, syntax error. */
480
- #define YYTABLE_NINF -1
481
- static const unsigned char yytable[] =
667
+ /* YYDEFGOTO[NTERM-NUM]. */
668
+ static const yytype_int8 yydefgoto[] =
669
+ {
670
+ 0, 13, 38, 15, 39, 40, 16, 103, 99, 101,
671
+ 17, 18, 19, 61, 62, 63, 20, 44, 45, 21,
672
+ 64, 65, 125, 66, 67, 46, 22, 50, 51
673
+ };
674
+
675
+ /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
676
+ positive, shift that token. If negative, reduce the rule whose
677
+ number is the opposite. If YYTABLE_NINF, syntax error. */
678
+ static const yytype_int8 yytable[] =
482
679
  {
483
680
  24, 96, 26, 28, 33, 100, 49, 52, 14, 123,
484
681
  104, 106, 102, 126, 108, 60, 84, 85, 82, 43,
@@ -522,7 +719,7 @@ static const unsigned char yytable[] =
522
719
  74, 37, 6, 7, 0, 0, 10
523
720
  };
524
721
 
525
- static const yysigned_char yycheck[] =
722
+ static const yytype_int8 yycheck[] =
526
723
  {
527
724
  1, 57, 3, 4, 5, 59, 12, 0, 0, 105,
528
725
  63, 64, 14, 109, 67, 16, 20, 21, 18, 11,
@@ -566,9 +763,9 @@ static const yysigned_char yycheck[] =
566
763
  6, 7, 8, 9, -1, -1, 12
567
764
  };
568
765
 
569
- /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
570
- symbol of state STATE-NUM. */
571
- static const unsigned char yystos[] =
766
+ /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
767
+ state STATE-NUM. */
768
+ static const yytype_int8 yystos[] =
572
769
  {
573
770
  0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
574
771
  12, 17, 19, 24, 25, 26, 29, 33, 34, 35,
@@ -585,78 +782,67 @@ static const unsigned char yystos[] =
585
782
  47, 31, 32, 36, 27, 45, 36, 46
586
783
  };
587
784
 
588
- #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
589
- # define YYSIZE_T __SIZE_TYPE__
590
- #endif
591
- #if ! defined (YYSIZE_T) && defined (size_t)
592
- # define YYSIZE_T size_t
593
- #endif
594
- #if ! defined (YYSIZE_T)
595
- # if defined (__STDC__) || defined (__cplusplus)
596
- # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
597
- # define YYSIZE_T size_t
598
- # endif
599
- #endif
600
- #if ! defined (YYSIZE_T)
601
- # define YYSIZE_T unsigned int
602
- #endif
785
+ /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
786
+ static const yytype_int8 yyr1[] =
787
+ {
788
+ 0, 23, 24, 24, 24, 25, 25, 26, 26, 26,
789
+ 26, 26, 27, 27, 28, 28, 28, 28, 28, 28,
790
+ 29, 29, 30, 31, 32, 32, 33, 33, 33, 33,
791
+ 33, 33, 33, 33, 34, 34, 34, 34, 34, 35,
792
+ 35, 36, 37, 37, 37, 37, 37, 37, 38, 38,
793
+ 38, 39, 39, 40, 40, 41, 41, 42, 42, 43,
794
+ 43, 43, 43, 43, 43, 44, 44, 45, 46, 47,
795
+ 47, 47, 47, 48, 49, 49, 50, 50, 51, 51
796
+ };
603
797
 
604
- #define yyerrok (yyerrstatus = 0)
605
- #define yyclearin (yychar = YYEMPTY)
606
- #define YYEMPTY (-2)
607
- #define YYEOF 0
798
+ /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
799
+ static const yytype_int8 yyr2[] =
800
+ {
801
+ 0, 2, 1, 2, 0, 1, 1, 1, 2, 2,
802
+ 2, 3, 1, 1, 3, 0, 2, 2, 2, 2,
803
+ 1, 2, 1, 1, 1, 2, 2, 2, 2, 2,
804
+ 1, 1, 1, 3, 1, 1, 1, 1, 1, 3,
805
+ 3, 2, 3, 2, 3, 2, 3, 2, 1, 3,
806
+ 2, 3, 2, 1, 3, 1, 1, 3, 3, 3,
807
+ 2, 3, 2, 3, 2, 1, 3, 1, 3, 1,
808
+ 3, 3, 2, 3, 3, 2, 1, 3, 1, 1
809
+ };
608
810
 
609
- #define YYACCEPT goto yyacceptlab
610
- #define YYABORT goto yyabortlab
611
- #define YYERROR goto yyerrorlab
612
811
 
812
+ enum { YYENOMEM = -2 };
613
813
 
614
- /* Like YYERROR except do call yyerror. This remains here temporarily
615
- to ease the transition to the new meaning of YYERROR, for GCC.
616
- Once GCC version 2 has supplanted version 1, this can go. */
814
+ #define yyerrok (yyerrstatus = 0)
815
+ #define yyclearin (yychar = YYEMPTY)
816
+
817
+ #define YYACCEPT goto yyacceptlab
818
+ #define YYABORT goto yyabortlab
819
+ #define YYERROR goto yyerrorlab
820
+ #define YYNOMEM goto yyexhaustedlab
617
821
 
618
- #define YYFAIL goto yyerrlab
619
822
 
620
823
  #define YYRECOVERING() (!!yyerrstatus)
621
824
 
622
- #define YYBACKUP(Token, Value) \
623
- do \
624
- if (yychar == YYEMPTY && yylen == 1) \
625
- { \
626
- yychar = (Token); \
627
- yylval = (Value); \
628
- yytoken = YYTRANSLATE (yychar); \
629
- YYPOPSTACK; \
630
- goto yybackup; \
631
- } \
632
- else \
633
- { \
634
- yyerror ("syntax error: cannot back up");\
635
- YYERROR; \
636
- } \
637
- while (0)
638
-
639
- #define YYTERROR 1
640
- #define YYERRCODE 256
641
-
642
- /* YYLLOC_DEFAULT -- Compute the default location (before the actions
643
- are run). */
644
-
645
- #ifndef YYLLOC_DEFAULT
646
- # define YYLLOC_DEFAULT(Current, Rhs, N) \
647
- ((Current).first_line = (Rhs)[1].first_line, \
648
- (Current).first_column = (Rhs)[1].first_column, \
649
- (Current).last_line = (Rhs)[N].last_line, \
650
- (Current).last_column = (Rhs)[N].last_column)
651
- #endif
825
+ #define YYBACKUP(Token, Value) \
826
+ do \
827
+ if (yychar == YYEMPTY) \
828
+ { \
829
+ yychar = (Token); \
830
+ yylval = (Value); \
831
+ YYPOPSTACK (yylen); \
832
+ yystate = *yyssp; \
833
+ goto yybackup; \
834
+ } \
835
+ else \
836
+ { \
837
+ yyerror (YYPARSE_PARAM, YY_("syntax error: cannot back up")); \
838
+ YYERROR; \
839
+ } \
840
+ while (0)
841
+
842
+ /* Backward compatibility with an undocumented macro.
843
+ Use YYerror or YYUNDEF. */
844
+ #define YYERRCODE YYUNDEF
652
845
 
653
- /* YYLEX -- calling `yylex' with the right arguments. */
654
-
655
- #ifdef YYLEX_PARAM
656
- # define YYLEX yylex (&yylval, YYLEX_PARAM)
657
- #else
658
- # define YYLEX yylex (&yylval)
659
- #endif
660
846
 
661
847
  /* Enable debugging if requested. */
662
848
  #if YYDEBUG
@@ -666,54 +852,82 @@ while (0)
666
852
  # define YYFPRINTF fprintf
667
853
  # endif
668
854
 
669
- # define YYDPRINTF(Args) \
670
- do { \
671
- if (yydebug) \
672
- YYFPRINTF Args; \
855
+ # define YYDPRINTF(Args) \
856
+ do { \
857
+ if (yydebug) \
858
+ YYFPRINTF Args; \
673
859
  } while (0)
674
860
 
675
- # define YYDSYMPRINT(Args) \
676
- do { \
677
- if (yydebug) \
678
- yysymprint Args; \
679
- } while (0)
680
861
 
681
- # define YYDSYMPRINTF(Title, Token, Value, Location) \
682
- do { \
683
- if (yydebug) \
684
- { \
685
- YYFPRINTF (stderr, "%s ", Title); \
686
- yysymprint (stderr, \
687
- Token, Value); \
688
- YYFPRINTF (stderr, "\n"); \
689
- } \
862
+
863
+
864
+ # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
865
+ do { \
866
+ if (yydebug) \
867
+ { \
868
+ YYFPRINTF (stderr, "%s ", Title); \
869
+ yy_symbol_print (stderr, \
870
+ Kind, Value, YYPARSE_PARAM); \
871
+ YYFPRINTF (stderr, "\n"); \
872
+ } \
690
873
  } while (0)
691
874
 
875
+
876
+ /*-----------------------------------.
877
+ | Print this symbol's value on YYO. |
878
+ `-----------------------------------*/
879
+
880
+ static void
881
+ yy_symbol_value_print (FILE *yyo,
882
+ yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, void *YYPARSE_PARAM)
883
+ {
884
+ FILE *yyoutput = yyo;
885
+ YY_USE (yyoutput);
886
+ YY_USE (YYPARSE_PARAM);
887
+ if (!yyvaluep)
888
+ return;
889
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
890
+ YY_USE (yykind);
891
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
892
+ }
893
+
894
+
895
+ /*---------------------------.
896
+ | Print this symbol on YYO. |
897
+ `---------------------------*/
898
+
899
+ static void
900
+ yy_symbol_print (FILE *yyo,
901
+ yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, void *YYPARSE_PARAM)
902
+ {
903
+ YYFPRINTF (yyo, "%s %s (",
904
+ yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
905
+
906
+ yy_symbol_value_print (yyo, yykind, yyvaluep, YYPARSE_PARAM);
907
+ YYFPRINTF (yyo, ")");
908
+ }
909
+
692
910
  /*------------------------------------------------------------------.
693
911
  | yy_stack_print -- Print the state stack from its BOTTOM up to its |
694
912
  | TOP (included). |
695
913
  `------------------------------------------------------------------*/
696
914
 
697
- #if defined (__STDC__) || defined (__cplusplus)
698
915
  static void
699
- yy_stack_print (short int *bottom, short int *top)
700
- #else
701
- static void
702
- yy_stack_print (bottom, top)
703
- short int *bottom;
704
- short int *top;
705
- #endif
916
+ yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
706
917
  {
707
918
  YYFPRINTF (stderr, "Stack now");
708
- for (/* Nothing. */; bottom <= top; ++bottom)
709
- YYFPRINTF (stderr, " %d", *bottom);
919
+ for (; yybottom <= yytop; yybottom++)
920
+ {
921
+ int yybot = *yybottom;
922
+ YYFPRINTF (stderr, " %d", yybot);
923
+ }
710
924
  YYFPRINTF (stderr, "\n");
711
925
  }
712
926
 
713
- # define YY_STACK_PRINT(Bottom, Top) \
714
- do { \
715
- if (yydebug) \
716
- yy_stack_print ((Bottom), (Top)); \
927
+ # define YY_STACK_PRINT(Bottom, Top) \
928
+ do { \
929
+ if (yydebug) \
930
+ yy_stack_print ((Bottom), (Top)); \
717
931
  } while (0)
718
932
 
719
933
 
@@ -721,45 +935,45 @@ do { \
721
935
  | Report that the YYRULE is going to be reduced. |
722
936
  `------------------------------------------------*/
723
937
 
724
- #if defined (__STDC__) || defined (__cplusplus)
725
- static void
726
- yy_reduce_print (int yyrule)
727
- #else
728
938
  static void
729
- yy_reduce_print (yyrule)
730
- int yyrule;
731
- #endif
939
+ yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
940
+ int yyrule, void *YYPARSE_PARAM)
732
941
  {
942
+ int yylno = yyrline[yyrule];
943
+ int yynrhs = yyr2[yyrule];
733
944
  int yyi;
734
- unsigned int yylno = yyrline[yyrule];
735
- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
945
+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
736
946
  yyrule - 1, yylno);
737
- /* Print the symbols being reduced, and their result. */
738
- for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
739
- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
740
- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
947
+ /* The symbols being reduced. */
948
+ for (yyi = 0; yyi < yynrhs; yyi++)
949
+ {
950
+ YYFPRINTF (stderr, " $%d = ", yyi + 1);
951
+ yy_symbol_print (stderr,
952
+ YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
953
+ &yyvsp[(yyi + 1) - (yynrhs)], YYPARSE_PARAM);
954
+ YYFPRINTF (stderr, "\n");
955
+ }
741
956
  }
742
957
 
743
- # define YY_REDUCE_PRINT(Rule) \
744
- do { \
745
- if (yydebug) \
746
- yy_reduce_print (Rule); \
958
+ # define YY_REDUCE_PRINT(Rule) \
959
+ do { \
960
+ if (yydebug) \
961
+ yy_reduce_print (yyssp, yyvsp, Rule, YYPARSE_PARAM); \
747
962
  } while (0)
748
963
 
749
964
  /* Nonzero means print parse trace. It is left uninitialized so that
750
965
  multiple parsers can coexist. */
751
966
  int yydebug;
752
967
  #else /* !YYDEBUG */
753
- # define YYDPRINTF(Args)
754
- # define YYDSYMPRINT(Args)
755
- # define YYDSYMPRINTF(Title, Token, Value, Location)
968
+ # define YYDPRINTF(Args) ((void) 0)
969
+ # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
756
970
  # define YY_STACK_PRINT(Bottom, Top)
757
971
  # define YY_REDUCE_PRINT(Rule)
758
972
  #endif /* !YYDEBUG */
759
973
 
760
974
 
761
975
  /* YYINITDEPTH -- initial size of the parser's stacks. */
762
- #ifndef YYINITDEPTH
976
+ #ifndef YYINITDEPTH
763
977
  # define YYINITDEPTH 200
764
978
  #endif
765
979
 
@@ -767,153 +981,36 @@ int yydebug;
767
981
  if the built-in stack extension method is used).
768
982
 
769
983
  Do not make this value too large; the results are undefined if
770
- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
984
+ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
771
985
  evaluated with infinite-precision integer arithmetic. */
772
986
 
773
- #if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
774
- # undef YYMAXDEPTH
775
- #endif
776
-
777
987
  #ifndef YYMAXDEPTH
778
988
  # define YYMAXDEPTH 10000
779
989
  #endif
780
990
 
781
-
782
-
783
- #if YYERROR_VERBOSE
784
-
785
- # ifndef yystrlen
786
- # if defined (__GLIBC__) && defined (_STRING_H)
787
- # define yystrlen strlen
788
- # else
789
- /* Return the length of YYSTR. */
790
- static YYSIZE_T
791
- # if defined (__STDC__) || defined (__cplusplus)
792
- yystrlen (const char *yystr)
793
- # else
794
- yystrlen (yystr)
795
- const char *yystr;
796
- # endif
797
- {
798
- register const char *yys = yystr;
799
-
800
- while (*yys++ != '\0')
801
- continue;
802
991
 
803
- return yys - yystr - 1;
804
- }
805
- # endif
806
- # endif
807
-
808
- # ifndef yystpcpy
809
- # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
810
- # define yystpcpy stpcpy
811
- # else
812
- /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
813
- YYDEST. */
814
- static char *
815
- # if defined (__STDC__) || defined (__cplusplus)
816
- yystpcpy (char *yydest, const char *yysrc)
817
- # else
818
- yystpcpy (yydest, yysrc)
819
- char *yydest;
820
- const char *yysrc;
821
- # endif
822
- {
823
- register char *yyd = yydest;
824
- register const char *yys = yysrc;
825
-
826
- while ((*yyd++ = *yys++) != '\0')
827
- continue;
828
-
829
- return yyd - 1;
830
- }
831
- # endif
832
- # endif
833
-
834
- #endif /* !YYERROR_VERBOSE */
835
992
 
836
-
837
993
 
838
- #if YYDEBUG
839
- /*--------------------------------.
840
- | Print this symbol on YYOUTPUT. |
841
- `--------------------------------*/
842
-
843
- #if defined (__STDC__) || defined (__cplusplus)
844
- static void
845
- yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
846
- #else
847
- static void
848
- yysymprint (yyoutput, yytype, yyvaluep)
849
- FILE *yyoutput;
850
- int yytype;
851
- YYSTYPE *yyvaluep;
852
- #endif
853
- {
854
- /* Pacify ``unused variable'' warnings. */
855
- (void) yyvaluep;
856
994
 
857
- if (yytype < YYNTOKENS)
858
- {
859
- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
860
- # ifdef YYPRINT
861
- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
862
- # endif
863
- }
864
- else
865
- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
866
995
 
867
- switch (yytype)
868
- {
869
- default:
870
- break;
871
- }
872
- YYFPRINTF (yyoutput, ")");
873
- }
874
-
875
- #endif /* ! YYDEBUG */
876
996
  /*-----------------------------------------------.
877
997
  | Release the memory associated to this symbol. |
878
998
  `-----------------------------------------------*/
879
999
 
880
- #if defined (__STDC__) || defined (__cplusplus)
881
- static void
882
- yydestruct (int yytype, YYSTYPE *yyvaluep)
883
- #else
884
1000
  static void
885
- yydestruct (yytype, yyvaluep)
886
- int yytype;
887
- YYSTYPE *yyvaluep;
888
- #endif
1001
+ yydestruct (const char *yymsg,
1002
+ yysymbol_kind_t yykind, YYSTYPE *yyvaluep, void *YYPARSE_PARAM)
889
1003
  {
890
- /* Pacify ``unused variable'' warnings. */
891
- (void) yyvaluep;
892
-
893
- switch (yytype)
894
- {
895
-
896
- default:
897
- break;
898
- }
1004
+ YY_USE (yyvaluep);
1005
+ YY_USE (YYPARSE_PARAM);
1006
+ if (!yymsg)
1007
+ yymsg = "Deleting";
1008
+ YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
1009
+
1010
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1011
+ YY_USE (yykind);
1012
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
899
1013
  }
900
-
901
-
902
- /* Prevent warnings from -Wmissing-prototypes. */
903
-
904
- #ifdef YYPARSE_PARAM
905
- # if defined (__STDC__) || defined (__cplusplus)
906
- int yyparse (void *YYPARSE_PARAM);
907
- # else
908
- int yyparse ();
909
- # endif
910
- #else /* ! YYPARSE_PARAM */
911
- #if defined (__STDC__) || defined (__cplusplus)
912
- int yyparse (void);
913
- #else
914
- int yyparse ();
915
- #endif
916
- #endif /* ! YYPARSE_PARAM */
917
1014
 
918
1015
 
919
1016
 
@@ -924,206 +1021,197 @@ int yyparse ();
924
1021
  | yyparse. |
925
1022
  `----------*/
926
1023
 
927
- #ifdef YYPARSE_PARAM
928
- # if defined (__STDC__) || defined (__cplusplus)
929
- int yyparse (void *YYPARSE_PARAM)
930
- # else
931
- int yyparse (YYPARSE_PARAM)
932
- void *YYPARSE_PARAM;
933
- # endif
934
- #else /* ! YYPARSE_PARAM */
935
- #if defined (__STDC__) || defined (__cplusplus)
936
- int
937
- yyparse (void)
938
- #else
939
1024
  int
940
- yyparse ()
941
-
942
- #endif
943
- #endif
1025
+ yyparse (void *YYPARSE_PARAM)
944
1026
  {
945
- /* The lookahead symbol. */
1027
+ /* Lookahead token kind. */
946
1028
  int yychar;
947
1029
 
948
- /* The semantic value of the lookahead symbol. */
949
- YYSTYPE yylval;
950
-
951
- /* Number of syntax errors so far. */
952
- int yynerrs;
953
-
954
- register int yystate;
955
- register int yyn;
956
- int yyresult;
957
- /* Number of tokens to shift before error messages enabled. */
958
- int yyerrstatus;
959
- /* Lookahead token as an internal (translated) token number. */
960
- int yytoken = 0;
961
1030
 
962
- /* Three stacks and their tools:
963
- `yyss': related to states,
964
- `yyvs': related to semantic values,
965
- `yyls': related to locations.
966
-
967
- Refer to the stacks thru separate pointers, to allow yyoverflow
968
- to reallocate them elsewhere. */
1031
+ /* The semantic value of the lookahead symbol. */
1032
+ /* Default value used for initialization, for pacifying older GCCs
1033
+ or non-GCC compilers. */
1034
+ YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
1035
+ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
969
1036
 
970
- /* The state stack. */
971
- short int yyssa[YYINITDEPTH];
972
- short int *yyss = yyssa;
973
- register short int *yyssp;
1037
+ /* Number of syntax errors so far. */
1038
+ int yynerrs = 0;
974
1039
 
975
- /* The semantic value stack. */
976
- YYSTYPE yyvsa[YYINITDEPTH];
977
- YYSTYPE *yyvs = yyvsa;
978
- register YYSTYPE *yyvsp;
1040
+ yy_state_fast_t yystate = 0;
1041
+ /* Number of tokens to shift before error messages enabled. */
1042
+ int yyerrstatus = 0;
979
1043
 
1044
+ /* Refer to the stacks through separate pointers, to allow yyoverflow
1045
+ to reallocate them elsewhere. */
980
1046
 
1047
+ /* Their size. */
1048
+ YYPTRDIFF_T yystacksize = YYINITDEPTH;
981
1049
 
982
- #define YYPOPSTACK (yyvsp--, yyssp--)
1050
+ /* The state stack: array, bottom, top. */
1051
+ yy_state_t yyssa[YYINITDEPTH];
1052
+ yy_state_t *yyss = yyssa;
1053
+ yy_state_t *yyssp = yyss;
983
1054
 
984
- YYSIZE_T yystacksize = YYINITDEPTH;
1055
+ /* The semantic value stack: array, bottom, top. */
1056
+ YYSTYPE yyvsa[YYINITDEPTH];
1057
+ YYSTYPE *yyvs = yyvsa;
1058
+ YYSTYPE *yyvsp = yyvs;
985
1059
 
1060
+ int yyn;
1061
+ /* The return value of yyparse. */
1062
+ int yyresult;
1063
+ /* Lookahead symbol kind. */
1064
+ yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
986
1065
  /* The variables used to return semantic value and location from the
987
1066
  action routines. */
988
1067
  YYSTYPE yyval;
989
1068
 
990
1069
 
991
- /* When reducing, the number of symbols on the RHS of the reduced
992
- rule. */
993
- int yylen;
994
1070
 
995
- YYDPRINTF ((stderr, "Starting parse\n"));
996
-
997
- yystate = 0;
998
- yyerrstatus = 0;
999
- yynerrs = 0;
1000
- yychar = YYEMPTY; /* Cause a token to be read. */
1071
+ #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1001
1072
 
1002
- /* Initialize stack pointers.
1003
- Waste one element of value and location stack
1004
- so that they stay on the same level as the state stack.
1005
- The wasted elements are never initialized. */
1073
+ /* The number of symbols on the RHS of the reduced rule.
1074
+ Keep to zero when no symbol should be popped. */
1075
+ int yylen = 0;
1006
1076
 
1007
- yyssp = yyss;
1008
- yyvsp = yyvs;
1077
+ YYDPRINTF ((stderr, "Starting parse\n"));
1009
1078
 
1079
+ yychar = YYEMPTY; /* Cause a token to be read. */
1010
1080
 
1011
1081
  goto yysetstate;
1012
1082
 
1083
+
1013
1084
  /*------------------------------------------------------------.
1014
- | yynewstate -- Push a new state, which is found in yystate. |
1085
+ | yynewstate -- push a new state, which is found in yystate. |
1015
1086
  `------------------------------------------------------------*/
1016
- yynewstate:
1087
+ yynewstate:
1017
1088
  /* In all cases, when you get here, the value and location stacks
1018
- have just been pushed. so pushing a state here evens the stacks.
1019
- */
1089
+ have just been pushed. So pushing a state here evens the stacks. */
1020
1090
  yyssp++;
1021
1091
 
1022
- yysetstate:
1023
- *yyssp = yystate;
1092
+
1093
+ /*--------------------------------------------------------------------.
1094
+ | yysetstate -- set current state (the top of the stack) to yystate. |
1095
+ `--------------------------------------------------------------------*/
1096
+ yysetstate:
1097
+ YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1098
+ YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
1099
+ YY_IGNORE_USELESS_CAST_BEGIN
1100
+ *yyssp = YY_CAST (yy_state_t, yystate);
1101
+ YY_IGNORE_USELESS_CAST_END
1102
+ YY_STACK_PRINT (yyss, yyssp);
1024
1103
 
1025
1104
  if (yyss + yystacksize - 1 <= yyssp)
1105
+ #if !defined yyoverflow && !defined YYSTACK_RELOCATE
1106
+ YYNOMEM;
1107
+ #else
1026
1108
  {
1027
1109
  /* Get the current used size of the three stacks, in elements. */
1028
- YYSIZE_T yysize = yyssp - yyss + 1;
1110
+ YYPTRDIFF_T yysize = yyssp - yyss + 1;
1029
1111
 
1030
- #ifdef yyoverflow
1112
+ # if defined yyoverflow
1031
1113
  {
1032
- /* Give user a chance to reallocate the stack. Use copies of
1033
- these so that the &'s don't force the real ones into
1034
- memory. */
1035
- YYSTYPE *yyvs1 = yyvs;
1036
- short int *yyss1 = yyss;
1037
-
1038
-
1039
- /* Each stack pointer address is followed by the size of the
1040
- data in use in that stack, in bytes. This used to be a
1041
- conditional around just the two extra args, but that might
1042
- be undefined if yyoverflow is a macro. */
1043
- yyoverflow ("parser stack overflow",
1044
- &yyss1, yysize * sizeof (*yyssp),
1045
- &yyvs1, yysize * sizeof (*yyvsp),
1046
-
1047
- &yystacksize);
1048
-
1049
- yyss = yyss1;
1050
- yyvs = yyvs1;
1114
+ /* Give user a chance to reallocate the stack. Use copies of
1115
+ these so that the &'s don't force the real ones into
1116
+ memory. */
1117
+ yy_state_t *yyss1 = yyss;
1118
+ YYSTYPE *yyvs1 = yyvs;
1119
+
1120
+ /* Each stack pointer address is followed by the size of the
1121
+ data in use in that stack, in bytes. This used to be a
1122
+ conditional around just the two extra args, but that might
1123
+ be undefined if yyoverflow is a macro. */
1124
+ yyoverflow (YY_("memory exhausted"),
1125
+ &yyss1, yysize * YYSIZEOF (*yyssp),
1126
+ &yyvs1, yysize * YYSIZEOF (*yyvsp),
1127
+ &yystacksize);
1128
+ yyss = yyss1;
1129
+ yyvs = yyvs1;
1051
1130
  }
1052
- #else /* no yyoverflow */
1053
- # ifndef YYSTACK_RELOCATE
1054
- goto yyoverflowlab;
1055
- # else
1131
+ # else /* defined YYSTACK_RELOCATE */
1056
1132
  /* Extend the stack our own way. */
1057
1133
  if (YYMAXDEPTH <= yystacksize)
1058
- goto yyoverflowlab;
1134
+ YYNOMEM;
1059
1135
  yystacksize *= 2;
1060
1136
  if (YYMAXDEPTH < yystacksize)
1061
- yystacksize = YYMAXDEPTH;
1137
+ yystacksize = YYMAXDEPTH;
1062
1138
 
1063
1139
  {
1064
- short int *yyss1 = yyss;
1065
- union yyalloc *yyptr =
1066
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1067
- if (! yyptr)
1068
- goto yyoverflowlab;
1069
- YYSTACK_RELOCATE (yyss);
1070
- YYSTACK_RELOCATE (yyvs);
1071
-
1140
+ yy_state_t *yyss1 = yyss;
1141
+ union yyalloc *yyptr =
1142
+ YY_CAST (union yyalloc *,
1143
+ YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
1144
+ if (! yyptr)
1145
+ YYNOMEM;
1146
+ YYSTACK_RELOCATE (yyss_alloc, yyss);
1147
+ YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1072
1148
  # undef YYSTACK_RELOCATE
1073
- if (yyss1 != yyssa)
1074
- YYSTACK_FREE (yyss1);
1149
+ if (yyss1 != yyssa)
1150
+ YYSTACK_FREE (yyss1);
1075
1151
  }
1076
1152
  # endif
1077
- #endif /* no yyoverflow */
1078
1153
 
1079
1154
  yyssp = yyss + yysize - 1;
1080
1155
  yyvsp = yyvs + yysize - 1;
1081
1156
 
1082
-
1083
- YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1084
- (unsigned long int) yystacksize));
1157
+ YY_IGNORE_USELESS_CAST_BEGIN
1158
+ YYDPRINTF ((stderr, "Stack size increased to %ld\n",
1159
+ YY_CAST (long, yystacksize)));
1160
+ YY_IGNORE_USELESS_CAST_END
1085
1161
 
1086
1162
  if (yyss + yystacksize - 1 <= yyssp)
1087
- YYABORT;
1163
+ YYABORT;
1088
1164
  }
1165
+ #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
1089
1166
 
1090
- YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1167
+
1168
+ if (yystate == YYFINAL)
1169
+ YYACCEPT;
1091
1170
 
1092
1171
  goto yybackup;
1093
1172
 
1173
+
1094
1174
  /*-----------.
1095
1175
  | yybackup. |
1096
1176
  `-----------*/
1097
1177
  yybackup:
1098
-
1099
- /* Do appropriate processing given the current state. */
1100
- /* Read a lookahead token if we need one and don't already have one. */
1101
- /* yyresume: */
1178
+ /* Do appropriate processing given the current state. Read a
1179
+ lookahead token if we need one and don't already have one. */
1102
1180
 
1103
1181
  /* First try to decide what to do without reference to lookahead token. */
1104
-
1105
1182
  yyn = yypact[yystate];
1106
- if (yyn == YYPACT_NINF)
1183
+ if (yypact_value_is_default (yyn))
1107
1184
  goto yydefault;
1108
1185
 
1109
1186
  /* Not known => get a lookahead token if don't already have one. */
1110
1187
 
1111
- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
1188
+ /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
1112
1189
  if (yychar == YYEMPTY)
1113
1190
  {
1114
- YYDPRINTF ((stderr, "Reading a token: "));
1115
- yychar = YYLEX;
1191
+ YYDPRINTF ((stderr, "Reading a token\n"));
1192
+ yychar = yylex (&yylval);
1116
1193
  }
1117
1194
 
1118
1195
  if (yychar <= YYEOF)
1119
1196
  {
1120
- yychar = yytoken = YYEOF;
1197
+ yychar = YYEOF;
1198
+ yytoken = YYSYMBOL_YYEOF;
1121
1199
  YYDPRINTF ((stderr, "Now at end of input.\n"));
1122
1200
  }
1201
+ else if (yychar == YYerror)
1202
+ {
1203
+ /* The scanner already issued an error message, process directly
1204
+ to error recovery. But do not keep the error token as
1205
+ lookahead, it is too special and may lead us to an endless
1206
+ loop in error recovery. */
1207
+ yychar = YYUNDEF;
1208
+ yytoken = YYSYMBOL_YYerror;
1209
+ goto yyerrlab1;
1210
+ }
1123
1211
  else
1124
1212
  {
1125
1213
  yytoken = YYTRANSLATE (yychar);
1126
- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
1214
+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1127
1215
  }
1128
1216
 
1129
1217
  /* If the proper action on seeing token YYTOKEN is to reduce or to
@@ -1134,31 +1222,26 @@ yybackup:
1134
1222
  yyn = yytable[yyn];
1135
1223
  if (yyn <= 0)
1136
1224
  {
1137
- if (yyn == 0 || yyn == YYTABLE_NINF)
1138
- goto yyerrlab;
1225
+ if (yytable_value_is_error (yyn))
1226
+ goto yyerrlab;
1139
1227
  yyn = -yyn;
1140
1228
  goto yyreduce;
1141
1229
  }
1142
1230
 
1143
- if (yyn == YYFINAL)
1144
- YYACCEPT;
1145
-
1146
- /* Shift the lookahead token. */
1147
- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
1148
-
1149
- /* Discard the token being shifted unless it is eof. */
1150
- if (yychar != YYEOF)
1151
- yychar = YYEMPTY;
1152
-
1153
- *++yyvsp = yylval;
1154
-
1155
-
1156
1231
  /* Count tokens shifted since error; after three, turn off error
1157
1232
  status. */
1158
1233
  if (yyerrstatus)
1159
1234
  yyerrstatus--;
1160
1235
 
1236
+ /* Shift the lookahead token. */
1237
+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1161
1238
  yystate = yyn;
1239
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1240
+ *++yyvsp = yylval;
1241
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
1242
+
1243
+ /* Discard the shifted token. */
1244
+ yychar = YYEMPTY;
1162
1245
  goto yynewstate;
1163
1246
 
1164
1247
 
@@ -1173,14 +1256,14 @@ yydefault:
1173
1256
 
1174
1257
 
1175
1258
  /*-----------------------------.
1176
- | yyreduce -- Do a reduction. |
1259
+ | yyreduce -- do a reduction. |
1177
1260
  `-----------------------------*/
1178
1261
  yyreduce:
1179
1262
  /* yyn is the number of a rule to reduce with. */
1180
1263
  yylen = yyr2[yyn];
1181
1264
 
1182
1265
  /* If YYLEN is nonzero, implement the default value of the action:
1183
- `$$ = $1'.
1266
+ '$$ = $1'.
1184
1267
 
1185
1268
  Otherwise, the following line sets YYVAL to garbage.
1186
1269
  This behavior is undocumented and Bison
@@ -1193,165 +1276,183 @@ yyreduce:
1193
1276
  YY_REDUCE_PRINT (yyn);
1194
1277
  switch (yyn)
1195
1278
  {
1196
- case 2:
1197
- #line 57 "gram.y"
1198
- {
1199
- ((SyckParser *)parser)->root = syck_hdlr_add_node( (SyckParser *)parser, yyvsp[0].nodeData );
1279
+ case 2: /* doc: atom */
1280
+ #line 58 "gram.y"
1281
+ {
1282
+ ((SyckParser *)parser)->root = syck_hdlr_add_node( (SyckParser *)parser, (yyvsp[0].nodeData) );
1200
1283
  }
1284
+ #line 1285 "gram.c"
1201
1285
  break;
1202
1286
 
1203
- case 3:
1204
- #line 61 "gram.y"
1205
- {
1206
- ((SyckParser *)parser)->root = syck_hdlr_add_node( (SyckParser *)parser, yyvsp[0].nodeData );
1287
+ case 3: /* doc: YAML_DOCSEP atom_or_empty */
1288
+ #line 62 "gram.y"
1289
+ {
1290
+ ((SyckParser *)parser)->root = syck_hdlr_add_node( (SyckParser *)parser, (yyvsp[0].nodeData) );
1207
1291
  }
1292
+ #line 1293 "gram.c"
1208
1293
  break;
1209
1294
 
1210
- case 4:
1211
- #line 65 "gram.y"
1212
- {
1295
+ case 4: /* doc: %empty */
1296
+ #line 66 "gram.y"
1297
+ {
1213
1298
  ((SyckParser *)parser)->eof = 1;
1214
1299
  }
1300
+ #line 1301 "gram.c"
1215
1301
  break;
1216
1302
 
1217
- case 8:
1218
- #line 76 "gram.y"
1219
- {
1220
- syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, ((SyckParser *)parser)->taguri_expansion );
1221
- yyval.nodeData = yyvsp[0].nodeData;
1303
+ case 8: /* ind_rep: YAML_TRANSFER ind_rep */
1304
+ #line 77 "gram.y"
1305
+ {
1306
+ syck_add_transfer( (yyvsp[-1].name), (yyvsp[0].nodeData), ((SyckParser *)parser)->taguri_expansion );
1307
+ (yyval.nodeData) = (yyvsp[0].nodeData);
1222
1308
  }
1309
+ #line 1310 "gram.c"
1223
1310
  break;
1224
1311
 
1225
- case 9:
1226
- #line 81 "gram.y"
1227
- {
1228
- syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, 0 );
1229
- yyval.nodeData = yyvsp[0].nodeData;
1312
+ case 9: /* ind_rep: YAML_TAGURI ind_rep */
1313
+ #line 82 "gram.y"
1314
+ {
1315
+ syck_add_transfer( (yyvsp[-1].name), (yyvsp[0].nodeData), 0 );
1316
+ (yyval.nodeData) = (yyvsp[0].nodeData);
1230
1317
  }
1318
+ #line 1319 "gram.c"
1231
1319
  break;
1232
1320
 
1233
- case 10:
1234
- #line 86 "gram.y"
1235
- {
1321
+ case 10: /* ind_rep: YAML_ANCHOR ind_rep */
1322
+ #line 87 "gram.y"
1323
+ {
1236
1324
  /*
1237
1325
  * _Anchors_: The language binding must keep a separate symbol table
1238
1326
  * for anchors. The actual ID in the symbol table is returned to the
1239
1327
  * higher nodes, though.
1240
1328
  */
1241
- yyval.nodeData = syck_hdlr_add_anchor( (SyckParser *)parser, yyvsp[-1].name, yyvsp[0].nodeData );
1329
+ (yyval.nodeData) = syck_hdlr_add_anchor( (SyckParser *)parser, (yyvsp[-1].name), (yyvsp[0].nodeData) );
1242
1330
  }
1331
+ #line 1332 "gram.c"
1243
1332
  break;
1244
1333
 
1245
- case 11:
1246
- #line 95 "gram.y"
1247
- {
1248
- yyval.nodeData = yyvsp[-1].nodeData;
1334
+ case 11: /* ind_rep: indent_open ind_rep indent_flex_end */
1335
+ #line 96 "gram.y"
1336
+ {
1337
+ (yyval.nodeData) = (yyvsp[-1].nodeData);
1249
1338
  }
1339
+ #line 1340 "gram.c"
1250
1340
  break;
1251
1341
 
1252
- case 14:
1253
- #line 105 "gram.y"
1254
- {
1255
- yyval.nodeData = yyvsp[-1].nodeData;
1342
+ case 14: /* empty: indent_open empty indent_end */
1343
+ #line 106 "gram.y"
1344
+ {
1345
+ (yyval.nodeData) = (yyvsp[-1].nodeData);
1256
1346
  }
1347
+ #line 1348 "gram.c"
1257
1348
  break;
1258
1349
 
1259
- case 15:
1260
- #line 109 "gram.y"
1261
- {
1350
+ case 15: /* empty: %empty */
1351
+ #line 110 "gram.y"
1352
+ {
1262
1353
  NULL_NODE( parser, n );
1263
- yyval.nodeData = n;
1354
+ (yyval.nodeData) = n;
1264
1355
  }
1356
+ #line 1357 "gram.c"
1265
1357
  break;
1266
1358
 
1267
- case 16:
1268
- #line 114 "gram.y"
1269
- {
1359
+ case 16: /* empty: YAML_ITRANSFER empty */
1360
+ #line 115 "gram.y"
1361
+ {
1270
1362
  if ( ((SyckParser *)parser)->implicit_typing == 1 )
1271
1363
  {
1272
- try_tag_implicit( yyvsp[0].nodeData, ((SyckParser *)parser)->taguri_expansion );
1364
+ try_tag_implicit( (yyvsp[0].nodeData), ((SyckParser *)parser)->taguri_expansion );
1273
1365
  }
1274
- yyval.nodeData = yyvsp[0].nodeData;
1366
+ (yyval.nodeData) = (yyvsp[0].nodeData);
1275
1367
  }
1368
+ #line 1369 "gram.c"
1276
1369
  break;
1277
1370
 
1278
- case 17:
1279
- #line 122 "gram.y"
1280
- {
1281
- syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, ((SyckParser *)parser)->taguri_expansion );
1282
- yyval.nodeData = yyvsp[0].nodeData;
1371
+ case 17: /* empty: YAML_TRANSFER empty */
1372
+ #line 123 "gram.y"
1373
+ {
1374
+ syck_add_transfer( (yyvsp[-1].name), (yyvsp[0].nodeData), ((SyckParser *)parser)->taguri_expansion );
1375
+ (yyval.nodeData) = (yyvsp[0].nodeData);
1283
1376
  }
1377
+ #line 1378 "gram.c"
1284
1378
  break;
1285
1379
 
1286
- case 18:
1287
- #line 127 "gram.y"
1288
- {
1289
- syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, 0 );
1290
- yyval.nodeData = yyvsp[0].nodeData;
1380
+ case 18: /* empty: YAML_TAGURI empty */
1381
+ #line 128 "gram.y"
1382
+ {
1383
+ syck_add_transfer( (yyvsp[-1].name), (yyvsp[0].nodeData), 0 );
1384
+ (yyval.nodeData) = (yyvsp[0].nodeData);
1291
1385
  }
1386
+ #line 1387 "gram.c"
1292
1387
  break;
1293
1388
 
1294
- case 19:
1295
- #line 132 "gram.y"
1296
- {
1389
+ case 19: /* empty: YAML_ANCHOR empty */
1390
+ #line 133 "gram.y"
1391
+ {
1297
1392
  /*
1298
1393
  * _Anchors_: The language binding must keep a separate symbol table
1299
1394
  * for anchors. The actual ID in the symbol table is returned to the
1300
1395
  * higher nodes, though.
1301
1396
  */
1302
- yyval.nodeData = syck_hdlr_add_anchor( (SyckParser *)parser, yyvsp[-1].name, yyvsp[0].nodeData );
1397
+ (yyval.nodeData) = syck_hdlr_add_anchor( (SyckParser *)parser, (yyvsp[-1].name), (yyvsp[0].nodeData) );
1303
1398
  }
1399
+ #line 1400 "gram.c"
1304
1400
  break;
1305
1401
 
1306
- case 26:
1307
- #line 165 "gram.y"
1308
- {
1309
- syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, ((SyckParser *)parser)->taguri_expansion );
1310
- yyval.nodeData = yyvsp[0].nodeData;
1402
+ case 26: /* word_rep: YAML_TRANSFER word_rep */
1403
+ #line 166 "gram.y"
1404
+ {
1405
+ syck_add_transfer( (yyvsp[-1].name), (yyvsp[0].nodeData), ((SyckParser *)parser)->taguri_expansion );
1406
+ (yyval.nodeData) = (yyvsp[0].nodeData);
1311
1407
  }
1408
+ #line 1409 "gram.c"
1312
1409
  break;
1313
1410
 
1314
- case 27:
1315
- #line 170 "gram.y"
1316
- {
1317
- syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, 0 );
1318
- yyval.nodeData = yyvsp[0].nodeData;
1411
+ case 27: /* word_rep: YAML_TAGURI word_rep */
1412
+ #line 171 "gram.y"
1413
+ {
1414
+ syck_add_transfer( (yyvsp[-1].name), (yyvsp[0].nodeData), 0 );
1415
+ (yyval.nodeData) = (yyvsp[0].nodeData);
1319
1416
  }
1417
+ #line 1418 "gram.c"
1320
1418
  break;
1321
1419
 
1322
- case 28:
1323
- #line 175 "gram.y"
1324
- {
1420
+ case 28: /* word_rep: YAML_ITRANSFER word_rep */
1421
+ #line 176 "gram.y"
1422
+ {
1325
1423
  if ( ((SyckParser *)parser)->implicit_typing == 1 )
1326
1424
  {
1327
- try_tag_implicit( yyvsp[0].nodeData, ((SyckParser *)parser)->taguri_expansion );
1425
+ try_tag_implicit( (yyvsp[0].nodeData), ((SyckParser *)parser)->taguri_expansion );
1328
1426
  }
1329
- yyval.nodeData = yyvsp[0].nodeData;
1427
+ (yyval.nodeData) = (yyvsp[0].nodeData);
1330
1428
  }
1429
+ #line 1430 "gram.c"
1331
1430
  break;
1332
1431
 
1333
- case 29:
1334
- #line 183 "gram.y"
1335
- {
1336
- yyval.nodeData = syck_hdlr_add_anchor( (SyckParser *)parser, yyvsp[-1].name, yyvsp[0].nodeData );
1432
+ case 29: /* word_rep: YAML_ANCHOR word_rep */
1433
+ #line 184 "gram.y"
1434
+ {
1435
+ (yyval.nodeData) = syck_hdlr_add_anchor( (SyckParser *)parser, (yyvsp[-1].name), (yyvsp[0].nodeData) );
1337
1436
  }
1437
+ #line 1438 "gram.c"
1338
1438
  break;
1339
1439
 
1340
- case 30:
1341
- #line 187 "gram.y"
1342
- {
1440
+ case 30: /* word_rep: YAML_ALIAS */
1441
+ #line 188 "gram.y"
1442
+ {
1343
1443
  /*
1344
1444
  * _Aliases_: The anchor symbol table is scanned for the anchor name.
1345
1445
  * The anchor's ID in the language's symbol table is returned.
1346
1446
  */
1347
- yyval.nodeData = syck_hdlr_get_anchor( (SyckParser *)parser, yyvsp[0].name );
1447
+ (yyval.nodeData) = syck_hdlr_get_anchor( (SyckParser *)parser, (yyvsp[0].name) );
1348
1448
  }
1449
+ #line 1450 "gram.c"
1349
1450
  break;
1350
1451
 
1351
- case 31:
1352
- #line 195 "gram.y"
1353
- {
1354
- SyckNode *n = yyvsp[0].nodeData;
1452
+ case 31: /* word_rep: YAML_WORD */
1453
+ #line 196 "gram.y"
1454
+ {
1455
+ SyckNode *n = (yyvsp[0].nodeData);
1355
1456
  if ( ((SyckParser *)parser)->taguri_expansion == 1 )
1356
1457
  {
1357
1458
  n->type_id = syck_taguri( YAML_DOMAIN, "str", 3 );
@@ -1360,417 +1461,393 @@ yyreduce:
1360
1461
  {
1361
1462
  n->type_id = syck_strndup( "str", 3 );
1362
1463
  }
1363
- yyval.nodeData = n;
1464
+ (yyval.nodeData) = n;
1364
1465
  }
1466
+ #line 1467 "gram.c"
1365
1467
  break;
1366
1468
 
1367
- case 33:
1368
- #line 209 "gram.y"
1369
- {
1370
- yyval.nodeData = yyvsp[-1].nodeData;
1469
+ case 33: /* word_rep: indent_open word_rep indent_flex_end */
1470
+ #line 210 "gram.y"
1471
+ {
1472
+ (yyval.nodeData) = (yyvsp[-1].nodeData);
1371
1473
  }
1474
+ #line 1475 "gram.c"
1372
1475
  break;
1373
1476
 
1374
- case 39:
1375
- #line 229 "gram.y"
1376
- {
1377
- yyval.nodeData = yyvsp[-1].nodeData;
1477
+ case 39: /* implicit_seq: indent_open top_imp_seq indent_end */
1478
+ #line 230 "gram.y"
1479
+ {
1480
+ (yyval.nodeData) = (yyvsp[-1].nodeData);
1378
1481
  }
1482
+ #line 1483 "gram.c"
1379
1483
  break;
1380
1484
 
1381
- case 40:
1382
- #line 233 "gram.y"
1383
- {
1384
- yyval.nodeData = yyvsp[-1].nodeData;
1485
+ case 40: /* implicit_seq: indent_open in_implicit_seq indent_end */
1486
+ #line 234 "gram.y"
1487
+ {
1488
+ (yyval.nodeData) = (yyvsp[-1].nodeData);
1385
1489
  }
1490
+ #line 1491 "gram.c"
1386
1491
  break;
1387
1492
 
1388
- case 41:
1389
- #line 239 "gram.y"
1390
- {
1391
- yyval.nodeId = syck_hdlr_add_node( (SyckParser *)parser, yyvsp[0].nodeData );
1493
+ case 41: /* basic_seq: '-' atom_or_empty */
1494
+ #line 240 "gram.y"
1495
+ {
1496
+ (yyval.nodeId) = syck_hdlr_add_node( (SyckParser *)parser, (yyvsp[0].nodeData) );
1392
1497
  }
1498
+ #line 1499 "gram.c"
1393
1499
  break;
1394
1500
 
1395
- case 42:
1396
- #line 245 "gram.y"
1397
- {
1398
- syck_add_transfer( yyvsp[-2].name, yyvsp[0].nodeData, ((SyckParser *)parser)->taguri_expansion );
1399
- yyval.nodeData = yyvsp[0].nodeData;
1501
+ case 42: /* top_imp_seq: YAML_TRANSFER indent_sep in_implicit_seq */
1502
+ #line 246 "gram.y"
1503
+ {
1504
+ syck_add_transfer( (yyvsp[-2].name), (yyvsp[0].nodeData), ((SyckParser *)parser)->taguri_expansion );
1505
+ (yyval.nodeData) = (yyvsp[0].nodeData);
1400
1506
  }
1507
+ #line 1508 "gram.c"
1401
1508
  break;
1402
1509
 
1403
- case 43:
1404
- #line 250 "gram.y"
1405
- {
1406
- syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, ((SyckParser *)parser)->taguri_expansion );
1407
- yyval.nodeData = yyvsp[0].nodeData;
1510
+ case 43: /* top_imp_seq: YAML_TRANSFER top_imp_seq */
1511
+ #line 251 "gram.y"
1512
+ {
1513
+ syck_add_transfer( (yyvsp[-1].name), (yyvsp[0].nodeData), ((SyckParser *)parser)->taguri_expansion );
1514
+ (yyval.nodeData) = (yyvsp[0].nodeData);
1408
1515
  }
1516
+ #line 1517 "gram.c"
1409
1517
  break;
1410
1518
 
1411
- case 44:
1412
- #line 255 "gram.y"
1413
- {
1414
- syck_add_transfer( yyvsp[-2].name, yyvsp[0].nodeData, 0 );
1415
- yyval.nodeData = yyvsp[0].nodeData;
1519
+ case 44: /* top_imp_seq: YAML_TAGURI indent_sep in_implicit_seq */
1520
+ #line 256 "gram.y"
1521
+ {
1522
+ syck_add_transfer( (yyvsp[-2].name), (yyvsp[0].nodeData), 0 );
1523
+ (yyval.nodeData) = (yyvsp[0].nodeData);
1416
1524
  }
1525
+ #line 1526 "gram.c"
1417
1526
  break;
1418
1527
 
1419
- case 45:
1420
- #line 260 "gram.y"
1421
- {
1422
- syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, 0 );
1423
- yyval.nodeData = yyvsp[0].nodeData;
1528
+ case 45: /* top_imp_seq: YAML_TAGURI top_imp_seq */
1529
+ #line 261 "gram.y"
1530
+ {
1531
+ syck_add_transfer( (yyvsp[-1].name), (yyvsp[0].nodeData), 0 );
1532
+ (yyval.nodeData) = (yyvsp[0].nodeData);
1424
1533
  }
1534
+ #line 1535 "gram.c"
1425
1535
  break;
1426
1536
 
1427
- case 46:
1428
- #line 265 "gram.y"
1429
- {
1430
- yyval.nodeData = syck_hdlr_add_anchor( (SyckParser *)parser, yyvsp[-2].name, yyvsp[0].nodeData );
1537
+ case 46: /* top_imp_seq: YAML_ANCHOR indent_sep in_implicit_seq */
1538
+ #line 266 "gram.y"
1539
+ {
1540
+ (yyval.nodeData) = syck_hdlr_add_anchor( (SyckParser *)parser, (yyvsp[-2].name), (yyvsp[0].nodeData) );
1431
1541
  }
1542
+ #line 1543 "gram.c"
1432
1543
  break;
1433
1544
 
1434
- case 47:
1435
- #line 269 "gram.y"
1436
- {
1437
- yyval.nodeData = syck_hdlr_add_anchor( (SyckParser *)parser, yyvsp[-1].name, yyvsp[0].nodeData );
1545
+ case 47: /* top_imp_seq: YAML_ANCHOR top_imp_seq */
1546
+ #line 270 "gram.y"
1547
+ {
1548
+ (yyval.nodeData) = syck_hdlr_add_anchor( (SyckParser *)parser, (yyvsp[-1].name), (yyvsp[0].nodeData) );
1438
1549
  }
1550
+ #line 1551 "gram.c"
1439
1551
  break;
1440
1552
 
1441
- case 48:
1442
- #line 275 "gram.y"
1443
- {
1444
- yyval.nodeData = syck_new_seq( yyvsp[0].nodeId );
1553
+ case 48: /* in_implicit_seq: basic_seq */
1554
+ #line 276 "gram.y"
1555
+ {
1556
+ (yyval.nodeData) = syck_new_seq( (yyvsp[0].nodeId) );
1445
1557
  }
1558
+ #line 1559 "gram.c"
1446
1559
  break;
1447
1560
 
1448
- case 49:
1449
- #line 279 "gram.y"
1450
- {
1451
- syck_seq_add( yyvsp[-2].nodeData, yyvsp[0].nodeId );
1452
- yyval.nodeData = yyvsp[-2].nodeData;
1561
+ case 49: /* in_implicit_seq: in_implicit_seq indent_sep basic_seq */
1562
+ #line 280 "gram.y"
1563
+ {
1564
+ syck_seq_add( (yyvsp[-2].nodeData), (yyvsp[0].nodeId) );
1565
+ (yyval.nodeData) = (yyvsp[-2].nodeData);
1453
1566
  }
1567
+ #line 1568 "gram.c"
1454
1568
  break;
1455
1569
 
1456
- case 50:
1457
- #line 284 "gram.y"
1458
- {
1459
- yyval.nodeData = yyvsp[-1].nodeData;
1570
+ case 50: /* in_implicit_seq: in_implicit_seq indent_sep */
1571
+ #line 285 "gram.y"
1572
+ {
1573
+ (yyval.nodeData) = (yyvsp[-1].nodeData);
1460
1574
  }
1575
+ #line 1576 "gram.c"
1461
1576
  break;
1462
1577
 
1463
- case 51:
1464
- #line 293 "gram.y"
1465
- {
1466
- yyval.nodeData = yyvsp[-1].nodeData;
1578
+ case 51: /* inline_seq: '[' in_inline_seq ']' */
1579
+ #line 294 "gram.y"
1580
+ {
1581
+ (yyval.nodeData) = (yyvsp[-1].nodeData);
1467
1582
  }
1583
+ #line 1584 "gram.c"
1468
1584
  break;
1469
1585
 
1470
- case 52:
1471
- #line 297 "gram.y"
1472
- {
1473
- yyval.nodeData = syck_alloc_seq();
1586
+ case 52: /* inline_seq: '[' ']' */
1587
+ #line 298 "gram.y"
1588
+ {
1589
+ (yyval.nodeData) = syck_alloc_seq();
1474
1590
  }
1591
+ #line 1592 "gram.c"
1475
1592
  break;
1476
1593
 
1477
- case 53:
1478
- #line 303 "gram.y"
1479
- {
1480
- yyval.nodeData = syck_new_seq( syck_hdlr_add_node( (SyckParser *)parser, yyvsp[0].nodeData ) );
1594
+ case 53: /* in_inline_seq: inline_seq_atom */
1595
+ #line 304 "gram.y"
1596
+ {
1597
+ (yyval.nodeData) = syck_new_seq( syck_hdlr_add_node( (SyckParser *)parser, (yyvsp[0].nodeData) ) );
1481
1598
  }
1599
+ #line 1600 "gram.c"
1482
1600
  break;
1483
1601
 
1484
- case 54:
1485
- #line 307 "gram.y"
1486
- {
1487
- syck_seq_add( yyvsp[-2].nodeData, syck_hdlr_add_node( (SyckParser *)parser, yyvsp[0].nodeData ) );
1488
- yyval.nodeData = yyvsp[-2].nodeData;
1602
+ case 54: /* in_inline_seq: in_inline_seq ',' inline_seq_atom */
1603
+ #line 308 "gram.y"
1604
+ {
1605
+ syck_seq_add( (yyvsp[-2].nodeData), syck_hdlr_add_node( (SyckParser *)parser, (yyvsp[0].nodeData) ) );
1606
+ (yyval.nodeData) = (yyvsp[-2].nodeData);
1489
1607
  }
1608
+ #line 1609 "gram.c"
1490
1609
  break;
1491
1610
 
1492
- case 57:
1493
- #line 321 "gram.y"
1494
- {
1495
- apply_seq_in_map( (SyckParser *)parser, yyvsp[-1].nodeData );
1496
- yyval.nodeData = yyvsp[-1].nodeData;
1611
+ case 57: /* implicit_map: indent_open top_imp_map indent_end */
1612
+ #line 322 "gram.y"
1613
+ {
1614
+ apply_seq_in_map( (SyckParser *)parser, (yyvsp[-1].nodeData) );
1615
+ (yyval.nodeData) = (yyvsp[-1].nodeData);
1497
1616
  }
1617
+ #line 1618 "gram.c"
1498
1618
  break;
1499
1619
 
1500
- case 58:
1501
- #line 326 "gram.y"
1502
- {
1503
- apply_seq_in_map( (SyckParser *)parser, yyvsp[-1].nodeData );
1504
- yyval.nodeData = yyvsp[-1].nodeData;
1620
+ case 58: /* implicit_map: indent_open in_implicit_map indent_end */
1621
+ #line 327 "gram.y"
1622
+ {
1623
+ apply_seq_in_map( (SyckParser *)parser, (yyvsp[-1].nodeData) );
1624
+ (yyval.nodeData) = (yyvsp[-1].nodeData);
1505
1625
  }
1626
+ #line 1627 "gram.c"
1506
1627
  break;
1507
1628
 
1508
- case 59:
1509
- #line 333 "gram.y"
1510
- {
1511
- syck_add_transfer( yyvsp[-2].name, yyvsp[0].nodeData, ((SyckParser *)parser)->taguri_expansion );
1512
- yyval.nodeData = yyvsp[0].nodeData;
1629
+ case 59: /* top_imp_map: YAML_TRANSFER indent_sep in_implicit_map */
1630
+ #line 334 "gram.y"
1631
+ {
1632
+ syck_add_transfer( (yyvsp[-2].name), (yyvsp[0].nodeData), ((SyckParser *)parser)->taguri_expansion );
1633
+ (yyval.nodeData) = (yyvsp[0].nodeData);
1513
1634
  }
1635
+ #line 1636 "gram.c"
1514
1636
  break;
1515
1637
 
1516
- case 60:
1517
- #line 338 "gram.y"
1518
- {
1519
- syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, ((SyckParser *)parser)->taguri_expansion );
1520
- yyval.nodeData = yyvsp[0].nodeData;
1638
+ case 60: /* top_imp_map: YAML_TRANSFER top_imp_map */
1639
+ #line 339 "gram.y"
1640
+ {
1641
+ syck_add_transfer( (yyvsp[-1].name), (yyvsp[0].nodeData), ((SyckParser *)parser)->taguri_expansion );
1642
+ (yyval.nodeData) = (yyvsp[0].nodeData);
1521
1643
  }
1644
+ #line 1645 "gram.c"
1522
1645
  break;
1523
1646
 
1524
- case 61:
1525
- #line 343 "gram.y"
1526
- {
1527
- syck_add_transfer( yyvsp[-2].name, yyvsp[0].nodeData, 0 );
1528
- yyval.nodeData = yyvsp[0].nodeData;
1647
+ case 61: /* top_imp_map: YAML_TAGURI indent_sep in_implicit_map */
1648
+ #line 344 "gram.y"
1649
+ {
1650
+ syck_add_transfer( (yyvsp[-2].name), (yyvsp[0].nodeData), 0 );
1651
+ (yyval.nodeData) = (yyvsp[0].nodeData);
1529
1652
  }
1653
+ #line 1654 "gram.c"
1530
1654
  break;
1531
1655
 
1532
- case 62:
1533
- #line 348 "gram.y"
1534
- {
1535
- syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, 0 );
1536
- yyval.nodeData = yyvsp[0].nodeData;
1656
+ case 62: /* top_imp_map: YAML_TAGURI top_imp_map */
1657
+ #line 349 "gram.y"
1658
+ {
1659
+ syck_add_transfer( (yyvsp[-1].name), (yyvsp[0].nodeData), 0 );
1660
+ (yyval.nodeData) = (yyvsp[0].nodeData);
1537
1661
  }
1662
+ #line 1663 "gram.c"
1538
1663
  break;
1539
1664
 
1540
- case 63:
1541
- #line 353 "gram.y"
1542
- {
1543
- yyval.nodeData = syck_hdlr_add_anchor( (SyckParser *)parser, yyvsp[-2].name, yyvsp[0].nodeData );
1665
+ case 63: /* top_imp_map: YAML_ANCHOR indent_sep in_implicit_map */
1666
+ #line 354 "gram.y"
1667
+ {
1668
+ (yyval.nodeData) = syck_hdlr_add_anchor( (SyckParser *)parser, (yyvsp[-2].name), (yyvsp[0].nodeData) );
1544
1669
  }
1670
+ #line 1671 "gram.c"
1545
1671
  break;
1546
1672
 
1547
- case 64:
1548
- #line 357 "gram.y"
1549
- {
1550
- yyval.nodeData = syck_hdlr_add_anchor( (SyckParser *)parser, yyvsp[-1].name, yyvsp[0].nodeData );
1673
+ case 64: /* top_imp_map: YAML_ANCHOR top_imp_map */
1674
+ #line 358 "gram.y"
1675
+ {
1676
+ (yyval.nodeData) = syck_hdlr_add_anchor( (SyckParser *)parser, (yyvsp[-1].name), (yyvsp[0].nodeData) );
1551
1677
  }
1678
+ #line 1679 "gram.c"
1552
1679
  break;
1553
1680
 
1554
- case 66:
1555
- #line 364 "gram.y"
1556
- {
1557
- yyval.nodeData = yyvsp[-1].nodeData;
1681
+ case 66: /* complex_key: '?' atom indent_sep */
1682
+ #line 365 "gram.y"
1683
+ {
1684
+ (yyval.nodeData) = (yyvsp[-1].nodeData);
1558
1685
  }
1686
+ #line 1687 "gram.c"
1559
1687
  break;
1560
1688
 
1561
- case 68:
1562
- #line 380 "gram.y"
1563
- {
1564
- yyval.nodeData = syck_new_map(
1565
- syck_hdlr_add_node( (SyckParser *)parser, yyvsp[-2].nodeData ),
1566
- syck_hdlr_add_node( (SyckParser *)parser, yyvsp[0].nodeData ) );
1689
+ case 68: /* complex_mapping: complex_key ':' complex_value */
1690
+ #line 381 "gram.y"
1691
+ {
1692
+ (yyval.nodeData) = syck_new_map(
1693
+ syck_hdlr_add_node( (SyckParser *)parser, (yyvsp[-2].nodeData) ),
1694
+ syck_hdlr_add_node( (SyckParser *)parser, (yyvsp[0].nodeData) ) );
1567
1695
  }
1696
+ #line 1697 "gram.c"
1568
1697
  break;
1569
1698
 
1570
- case 70:
1571
- #line 398 "gram.y"
1572
- {
1573
- if ( yyvsp[-2].nodeData->shortcut == NULL )
1699
+ case 70: /* in_implicit_map: in_implicit_map indent_sep basic_seq */
1700
+ #line 399 "gram.y"
1701
+ {
1702
+ if ( (yyvsp[-2].nodeData)->shortcut == NULL )
1574
1703
  {
1575
- yyvsp[-2].nodeData->shortcut = syck_new_seq( yyvsp[0].nodeId );
1704
+ (yyvsp[-2].nodeData)->shortcut = syck_new_seq( (yyvsp[0].nodeId) );
1576
1705
  }
1577
1706
  else
1578
1707
  {
1579
- syck_seq_add( yyvsp[-2].nodeData->shortcut, yyvsp[0].nodeId );
1708
+ syck_seq_add( (yyvsp[-2].nodeData)->shortcut, (yyvsp[0].nodeId) );
1580
1709
  }
1581
- yyval.nodeData = yyvsp[-2].nodeData;
1710
+ (yyval.nodeData) = (yyvsp[-2].nodeData);
1582
1711
  }
1712
+ #line 1713 "gram.c"
1583
1713
  break;
1584
1714
 
1585
- case 71:
1586
- #line 410 "gram.y"
1587
- {
1588
- apply_seq_in_map( (SyckParser *)parser, yyvsp[-2].nodeData );
1589
- syck_map_update( yyvsp[-2].nodeData, yyvsp[0].nodeData );
1590
- syck_free_node( yyvsp[0].nodeData );
1591
- yyvsp[0].nodeData = NULL;
1592
- yyval.nodeData = yyvsp[-2].nodeData;
1715
+ case 71: /* in_implicit_map: in_implicit_map indent_sep complex_mapping */
1716
+ #line 411 "gram.y"
1717
+ {
1718
+ apply_seq_in_map( (SyckParser *)parser, (yyvsp[-2].nodeData) );
1719
+ syck_map_update( (yyvsp[-2].nodeData), (yyvsp[0].nodeData) );
1720
+ syck_free_node( (yyvsp[0].nodeData) );
1721
+ (yyvsp[0].nodeData) = NULL;
1722
+ (yyval.nodeData) = (yyvsp[-2].nodeData);
1593
1723
  }
1724
+ #line 1725 "gram.c"
1594
1725
  break;
1595
1726
 
1596
- case 72:
1597
- #line 418 "gram.y"
1598
- {
1599
- yyval.nodeData = yyvsp[-1].nodeData;
1727
+ case 72: /* in_implicit_map: in_implicit_map indent_sep */
1728
+ #line 419 "gram.y"
1729
+ {
1730
+ (yyval.nodeData) = (yyvsp[-1].nodeData);
1600
1731
  }
1732
+ #line 1733 "gram.c"
1601
1733
  break;
1602
1734
 
1603
- case 73:
1604
- #line 427 "gram.y"
1605
- {
1606
- yyval.nodeData = syck_new_map(
1607
- syck_hdlr_add_node( (SyckParser *)parser, yyvsp[-2].nodeData ),
1608
- syck_hdlr_add_node( (SyckParser *)parser, yyvsp[0].nodeData ) );
1735
+ case 73: /* basic_mapping: atom ':' atom_or_empty */
1736
+ #line 428 "gram.y"
1737
+ {
1738
+ (yyval.nodeData) = syck_new_map(
1739
+ syck_hdlr_add_node( (SyckParser *)parser, (yyvsp[-2].nodeData) ),
1740
+ syck_hdlr_add_node( (SyckParser *)parser, (yyvsp[0].nodeData) ) );
1609
1741
  }
1742
+ #line 1743 "gram.c"
1610
1743
  break;
1611
1744
 
1612
- case 74:
1613
- #line 435 "gram.y"
1614
- {
1615
- yyval.nodeData = yyvsp[-1].nodeData;
1745
+ case 74: /* inline_map: '{' in_inline_map '}' */
1746
+ #line 436 "gram.y"
1747
+ {
1748
+ (yyval.nodeData) = (yyvsp[-1].nodeData);
1616
1749
  }
1750
+ #line 1751 "gram.c"
1617
1751
  break;
1618
1752
 
1619
- case 75:
1620
- #line 439 "gram.y"
1621
- {
1622
- yyval.nodeData = syck_alloc_map();
1753
+ case 75: /* inline_map: '{' '}' */
1754
+ #line 440 "gram.y"
1755
+ {
1756
+ (yyval.nodeData) = syck_alloc_map();
1623
1757
  }
1758
+ #line 1759 "gram.c"
1624
1759
  break;
1625
1760
 
1626
- case 77:
1627
- #line 446 "gram.y"
1628
- {
1629
- syck_map_update( yyvsp[-2].nodeData, yyvsp[0].nodeData );
1630
- syck_free_node( yyvsp[0].nodeData );
1631
- yyvsp[0].nodeData = NULL;
1632
- yyval.nodeData = yyvsp[-2].nodeData;
1761
+ case 77: /* in_inline_map: in_inline_map ',' inline_map_atom */
1762
+ #line 447 "gram.y"
1763
+ {
1764
+ syck_map_update( (yyvsp[-2].nodeData), (yyvsp[0].nodeData) );
1765
+ syck_free_node( (yyvsp[0].nodeData) );
1766
+ (yyvsp[0].nodeData) = NULL;
1767
+ (yyval.nodeData) = (yyvsp[-2].nodeData);
1633
1768
  }
1769
+ #line 1770 "gram.c"
1634
1770
  break;
1635
1771
 
1636
- case 78:
1637
- #line 455 "gram.y"
1638
- {
1772
+ case 78: /* inline_map_atom: atom */
1773
+ #line 456 "gram.y"
1774
+ {
1639
1775
  NULL_NODE( parser, n );
1640
- yyval.nodeData = syck_new_map(
1641
- syck_hdlr_add_node( (SyckParser *)parser, yyvsp[0].nodeData ),
1776
+ (yyval.nodeData) = syck_new_map(
1777
+ syck_hdlr_add_node( (SyckParser *)parser, (yyvsp[0].nodeData) ),
1642
1778
  syck_hdlr_add_node( (SyckParser *)parser, n ) );
1643
1779
  }
1780
+ #line 1781 "gram.c"
1644
1781
  break;
1645
1782
 
1646
1783
 
1647
- }
1784
+ #line 1785 "gram.c"
1648
1785
 
1649
- /* Line 1010 of yacc.c. */
1650
- #line 1651 "gram.c"
1651
-
1652
- yyvsp -= yylen;
1653
- yyssp -= yylen;
1654
-
1655
-
1656
- YY_STACK_PRINT (yyss, yyssp);
1786
+ default: break;
1787
+ }
1788
+ /* User semantic actions sometimes alter yychar, and that requires
1789
+ that yytoken be updated with the new translation. We take the
1790
+ approach of translating immediately before every use of yytoken.
1791
+ One alternative is translating here after every semantic action,
1792
+ but that translation would be missed if the semantic action invokes
1793
+ YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
1794
+ if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
1795
+ incorrect destructor might then be invoked immediately. In the
1796
+ case of YYERROR or YYBACKUP, subsequent parser actions might lead
1797
+ to an incorrect destructor call or verbose syntax error message
1798
+ before the lookahead is translated. */
1799
+ YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
1800
+
1801
+ YYPOPSTACK (yylen);
1802
+ yylen = 0;
1657
1803
 
1658
1804
  *++yyvsp = yyval;
1659
1805
 
1660
-
1661
- /* Now `shift' the result of the reduction. Determine what state
1806
+ /* Now 'shift' the result of the reduction. Determine what state
1662
1807
  that goes to, based on the state we popped back to and the rule
1663
1808
  number reduced by. */
1664
-
1665
- yyn = yyr1[yyn];
1666
-
1667
- yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
1668
- if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
1669
- yystate = yytable[yystate];
1670
- else
1671
- yystate = yydefgoto[yyn - YYNTOKENS];
1809
+ {
1810
+ const int yylhs = yyr1[yyn] - YYNTOKENS;
1811
+ const int yyi = yypgoto[yylhs] + *yyssp;
1812
+ yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
1813
+ ? yytable[yyi]
1814
+ : yydefgoto[yylhs]);
1815
+ }
1672
1816
 
1673
1817
  goto yynewstate;
1674
1818
 
1675
1819
 
1676
- /*------------------------------------.
1677
- | yyerrlab -- here on detecting error |
1678
- `------------------------------------*/
1820
+ /*--------------------------------------.
1821
+ | yyerrlab -- here on detecting error. |
1822
+ `--------------------------------------*/
1679
1823
  yyerrlab:
1824
+ /* Make sure we have latest lookahead translation. See comments at
1825
+ user semantic actions for why this is necessary. */
1826
+ yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
1680
1827
  /* If not already recovering from an error, report this error. */
1681
1828
  if (!yyerrstatus)
1682
1829
  {
1683
1830
  ++yynerrs;
1684
- #if YYERROR_VERBOSE
1685
- yyn = yypact[yystate];
1686
-
1687
- if (YYPACT_NINF < yyn && yyn < YYLAST)
1688
- {
1689
- YYSIZE_T yysize = 0;
1690
- int yytype = YYTRANSLATE (yychar);
1691
- const char* yyprefix;
1692
- char *yymsg;
1693
- int yyx;
1694
-
1695
- /* Start YYX at -YYN if negative to avoid negative indexes in
1696
- YYCHECK. */
1697
- int yyxbegin = yyn < 0 ? -yyn : 0;
1698
-
1699
- /* Stay within bounds of both yycheck and yytname. */
1700
- int yychecklim = YYLAST - yyn;
1701
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1702
- int yycount = 0;
1703
-
1704
- yyprefix = ", expecting ";
1705
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1706
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1707
- {
1708
- yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
1709
- yycount += 1;
1710
- if (yycount == 5)
1711
- {
1712
- yysize = 0;
1713
- break;
1714
- }
1715
- }
1716
- yysize += (sizeof ("syntax error, unexpected ")
1717
- + yystrlen (yytname[yytype]));
1718
- yymsg = (char *) YYSTACK_ALLOC (yysize);
1719
- if (yymsg != 0)
1720
- {
1721
- char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
1722
- yyp = yystpcpy (yyp, yytname[yytype]);
1723
-
1724
- if (yycount < 5)
1725
- {
1726
- yyprefix = ", expecting ";
1727
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1728
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1729
- {
1730
- yyp = yystpcpy (yyp, yyprefix);
1731
- yyp = yystpcpy (yyp, yytname[yyx]);
1732
- yyprefix = " or ";
1733
- }
1734
- }
1735
- yyerror (yymsg);
1736
- YYSTACK_FREE (yymsg);
1737
- }
1738
- else
1739
- yyerror ("syntax error; also virtual memory exhausted");
1740
- }
1741
- else
1742
- #endif /* YYERROR_VERBOSE */
1743
- yyerror ("syntax error");
1831
+ yyerror (YYPARSE_PARAM, YY_("syntax error"));
1744
1832
  }
1745
1833
 
1746
-
1747
-
1748
1834
  if (yyerrstatus == 3)
1749
1835
  {
1750
1836
  /* If just tried and failed to reuse lookahead token after an
1751
- error, discard it. */
1837
+ error, discard it. */
1752
1838
 
1753
1839
  if (yychar <= YYEOF)
1754
1840
  {
1755
- /* If at end of input, pop the error token,
1756
- then the rest of the stack, then return failure. */
1757
- if (yychar == YYEOF)
1758
- for (;;)
1759
- {
1760
- YYPOPSTACK;
1761
- if (yyssp == yyss)
1762
- YYABORT;
1763
- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
1764
- yydestruct (yystos[*yyssp], yyvsp);
1765
- }
1841
+ /* Return failure if at end of input. */
1842
+ if (yychar == YYEOF)
1843
+ YYABORT;
1766
1844
  }
1767
1845
  else
1768
- {
1769
- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
1770
- yydestruct (yytoken, &yylval);
1771
- yychar = YYEMPTY;
1772
-
1773
- }
1846
+ {
1847
+ yydestruct ("Error: discarding",
1848
+ yytoken, &yylval, YYPARSE_PARAM);
1849
+ yychar = YYEMPTY;
1850
+ }
1774
1851
  }
1775
1852
 
1776
1853
  /* Else will try to reuse lookahead token after shifting the error
@@ -1782,16 +1859,17 @@ yyerrlab:
1782
1859
  | yyerrorlab -- error raised explicitly by YYERROR. |
1783
1860
  `---------------------------------------------------*/
1784
1861
  yyerrorlab:
1785
-
1786
- #ifdef __GNUC__
1787
- /* Pacify GCC when the user code never invokes YYERROR and the label
1788
- yyerrorlab therefore never appears in user code. */
1862
+ /* Pacify compilers when the user code never invokes YYERROR and the
1863
+ label yyerrorlab therefore never appears in user code. */
1789
1864
  if (0)
1790
- goto yyerrorlab;
1791
- #endif
1865
+ YYERROR;
1866
+ ++yynerrs;
1792
1867
 
1793
- yyvsp -= yylen;
1794
- yyssp -= yylen;
1868
+ /* Do not reclaim the symbols of the rule whose action triggered
1869
+ this YYERROR. */
1870
+ YYPOPSTACK (yylen);
1871
+ yylen = 0;
1872
+ YY_STACK_PRINT (yyss, yyssp);
1795
1873
  yystate = *yyssp;
1796
1874
  goto yyerrlab1;
1797
1875
 
@@ -1800,41 +1878,43 @@ yyerrorlab:
1800
1878
  | yyerrlab1 -- common code for both syntax error and YYERROR. |
1801
1879
  `-------------------------------------------------------------*/
1802
1880
  yyerrlab1:
1803
- yyerrstatus = 3; /* Each real token shifted decrements this. */
1881
+ yyerrstatus = 3; /* Each real token shifted decrements this. */
1804
1882
 
1883
+ /* Pop stack until we find a state that shifts the error token. */
1805
1884
  for (;;)
1806
1885
  {
1807
1886
  yyn = yypact[yystate];
1808
- if (yyn != YYPACT_NINF)
1809
- {
1810
- yyn += YYTERROR;
1811
- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
1812
- {
1813
- yyn = yytable[yyn];
1814
- if (0 < yyn)
1815
- break;
1816
- }
1817
- }
1887
+ if (!yypact_value_is_default (yyn))
1888
+ {
1889
+ yyn += YYSYMBOL_YYerror;
1890
+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
1891
+ {
1892
+ yyn = yytable[yyn];
1893
+ if (0 < yyn)
1894
+ break;
1895
+ }
1896
+ }
1818
1897
 
1819
1898
  /* Pop the current state because it cannot handle the error token. */
1820
1899
  if (yyssp == yyss)
1821
- YYABORT;
1900
+ YYABORT;
1901
+
1822
1902
 
1823
- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
1824
- yydestruct (yystos[yystate], yyvsp);
1825
- YYPOPSTACK;
1903
+ yydestruct ("Error: popping",
1904
+ YY_ACCESSING_SYMBOL (yystate), yyvsp, YYPARSE_PARAM);
1905
+ YYPOPSTACK (1);
1826
1906
  yystate = *yyssp;
1827
1907
  YY_STACK_PRINT (yyss, yyssp);
1828
1908
  }
1829
1909
 
1830
- if (yyn == YYFINAL)
1831
- YYACCEPT;
1832
-
1833
- YYDPRINTF ((stderr, "Shifting error token, "));
1834
-
1910
+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1835
1911
  *++yyvsp = yylval;
1912
+ YY_IGNORE_MAYBE_UNINITIALIZED_END
1836
1913
 
1837
1914
 
1915
+ /* Shift the error token. */
1916
+ YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
1917
+
1838
1918
  yystate = yyn;
1839
1919
  goto yynewstate;
1840
1920
 
@@ -1844,35 +1924,57 @@ yyerrlab1:
1844
1924
  `-------------------------------------*/
1845
1925
  yyacceptlab:
1846
1926
  yyresult = 0;
1847
- goto yyreturn;
1927
+ goto yyreturnlab;
1928
+
1848
1929
 
1849
1930
  /*-----------------------------------.
1850
1931
  | yyabortlab -- YYABORT comes here. |
1851
1932
  `-----------------------------------*/
1852
1933
  yyabortlab:
1853
1934
  yyresult = 1;
1854
- goto yyreturn;
1935
+ goto yyreturnlab;
1855
1936
 
1856
- #ifndef yyoverflow
1857
- /*----------------------------------------------.
1858
- | yyoverflowlab -- parser overflow comes here. |
1859
- `----------------------------------------------*/
1860
- yyoverflowlab:
1861
- yyerror ("parser stack overflow");
1937
+
1938
+ /*-----------------------------------------------------------.
1939
+ | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. |
1940
+ `-----------------------------------------------------------*/
1941
+ yyexhaustedlab:
1942
+ yyerror (YYPARSE_PARAM, YY_("memory exhausted"));
1862
1943
  yyresult = 2;
1863
- /* Fall through. */
1864
- #endif
1944
+ goto yyreturnlab;
1865
1945
 
1866
- yyreturn:
1946
+
1947
+ /*----------------------------------------------------------.
1948
+ | yyreturnlab -- parsing is finished, clean up and return. |
1949
+ `----------------------------------------------------------*/
1950
+ yyreturnlab:
1951
+ if (yychar != YYEMPTY)
1952
+ {
1953
+ /* Make sure we have latest lookahead translation. See comments at
1954
+ user semantic actions for why this is necessary. */
1955
+ yytoken = YYTRANSLATE (yychar);
1956
+ yydestruct ("Cleanup: discarding lookahead",
1957
+ yytoken, &yylval, YYPARSE_PARAM);
1958
+ }
1959
+ /* Do not reclaim the symbols of the rule whose action triggered
1960
+ this YYABORT or YYACCEPT. */
1961
+ YYPOPSTACK (yylen);
1962
+ YY_STACK_PRINT (yyss, yyssp);
1963
+ while (yyssp != yyss)
1964
+ {
1965
+ yydestruct ("Cleanup: popping",
1966
+ YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, YYPARSE_PARAM);
1967
+ YYPOPSTACK (1);
1968
+ }
1867
1969
  #ifndef yyoverflow
1868
1970
  if (yyss != yyssa)
1869
1971
  YYSTACK_FREE (yyss);
1870
1972
  #endif
1973
+
1871
1974
  return yyresult;
1872
1975
  }
1873
1976
 
1874
-
1875
- #line 464 "gram.y"
1977
+ #line 465 "gram.y"
1876
1978
 
1877
1979
 
1878
1980
  void
@@ -1890,5 +1992,3 @@ apply_seq_in_map( SyckParser *parser, SyckNode *n )
1890
1992
 
1891
1993
  n->shortcut = NULL;
1892
1994
  }
1893
-
1894
-