diff options
author | why <why@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-09-13 03:58:33 +0000 |
---|---|---|
committer | why <why@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-09-13 03:58:33 +0000 |
commit | f1827a2fafaa50ba89f35c8c05beffd28b1dd6e6 (patch) | |
tree | 095d144b8790cb1d1a99fbe40e0e79e31f65fcac /ext/syck/gram.c | |
parent | 2007d73102b29e7bf50d08f6690ae5e6ffa5ea9a (diff) | |
download | ruby-f1827a2fafaa50ba89f35c8c05beffd28b1dd6e6.tar.gz |
* lib/yaml.rb: reworking YAML::Stream to use the new
emitter.
* lib/yaml/stream.rb: ditto.
* lib/yaml/rubytypes.rb: added Object#yaml_new.
* lib/yaml/tag.rb: the tag_subclasses? method now
shows up in the class. allow taguri to be set using an accessor.
continue support of Object#to_yaml_type.
* ext/syck/rubyext.c: new emitter code. yaml_new and yaml_initialize
get called, should they be present. consolidated all the diaspora of internal
node types into the family below YAML::Syck::Node -- Map,
Seq, Scalar -- all of whom are SyckNode structs pointing to
Ruby data. moved Object#yaml_new into the node_import and made it the
default behavior. the target_class is always called wih yaml_new, prepended
a parameter, which is the klass. loaded nodes through GenericResolver show their style.
new Resolver#tagurize converts type ids to taguris.
* ext/syck/implicit.re: were 'y' and 'n' seriously omitted??
* ext/syck/emitter.c: renovated emitter, walks the tree in advance.
consolidated redundant block_styles struct into
the scalar_style struct. (this means loaded nodes can now
be sent back to emitter and preserve at least its very basic
formatting.)
* ext/syck/gram.c: headless documents of any kind allowed.
* ext/syck/node.c: new syck_replace_str methods and syck_empty_*
methods for rewriting node contents, while keeping the ID
and other setup info. added syck_seq_assign.
* ext/syck/syck.h: reflect block_styles and new node functions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/syck/gram.c')
-rw-r--r-- | ext/syck/gram.c | 1174 |
1 files changed, 636 insertions, 538 deletions
diff --git a/ext/syck/gram.c b/ext/syck/gram.c index dd65ea1deb..615a594f61 100644 --- a/ext/syck/gram.c +++ b/ext/syck/gram.c @@ -1,7 +1,7 @@ -/* A Bison parser, made from gram.y, by GNU bison 1.75. */ +/* A Bison parser, made by GNU Bison 1.875d. */ /* Skeleton parser for Yacc-like parsing with Bison, - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -34,10 +34,13 @@ USER NAME SPACE" below. */ /* Identify Bison output. */ -#define YYBISON 1 +#define YYBISON 1 + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ -#define YYPURE 1 +#define YYPURE 1 /* Using locations. */ #define YYLSP_NEEDED 0 @@ -95,6 +98,8 @@ #include "syck.h" +void apply_seq_in_map( SyckParser *parser, SyckNode *n ); + #define YYPARSE_PARAM parser #define YYLEX_PARAM parser @@ -123,51 +128,49 @@ # define YYERROR_VERBOSE 0 #endif -#ifndef YYSTYPE -#line 33 "gram.y" -typedef union { +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +#line 35 "gram.y" +typedef union YYSTYPE { SYMID nodeId; SyckNode *nodeData; char *name; -} yystype; -/* Line 193 of /usr/local/share/bison/yacc.c. */ -#line 135 "y.tab.c" -# define YYSTYPE yystype +} YYSTYPE; +/* Line 191 of yacc.c. */ +#line 140 "gram.c" +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 #endif -#ifndef YYLTYPE -typedef struct yyltype -{ - int first_line; - int first_column; - int last_line; - int last_column; -} yyltype; -# define YYLTYPE yyltype -# define YYLTYPE_IS_TRIVIAL 1 -#endif + /* Copy the second part of user declarations. */ -/* Line 213 of /usr/local/share/bison/yacc.c. */ -#line 156 "y.tab.c" +/* Line 214 of yacc.c. */ +#line 152 "gram.c" #if ! defined (yyoverflow) || YYERROR_VERBOSE +# ifndef YYFREE +# define YYFREE free +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# endif + /* The parser invokes alloca or malloc; define the necessary symbols. */ -# if YYSTACK_USE_ALLOCA -# define YYSTACK_ALLOC alloca +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# define YYSTACK_ALLOC alloca +# endif # else -# ifndef YYSTACK_USE_ALLOCA -# if defined (alloca) || defined (_ALLOCA_H) -# define YYSTACK_ALLOC alloca -# else -# ifdef __GNUC__ -# define YYSTACK_ALLOC __builtin_alloca -# endif +# if defined (alloca) || defined (_ALLOCA_H) +# define YYSTACK_ALLOC alloca +# else +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca # endif # endif # endif @@ -180,36 +183,36 @@ typedef struct yyltype # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # endif -# define YYSTACK_ALLOC malloc -# define YYSTACK_FREE free +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE # endif #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ #if (! defined (yyoverflow) \ && (! defined (__cplusplus) \ - || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { - short yyss; + short int yyss; YYSTYPE yyvs; }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAX) + ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ # ifndef YYCOPY -# if 1 < __GNUC__ +# if defined (__GNUC__) && 1 < __GNUC__ # define YYCOPY(To, From, Count) \ __builtin_memcpy (To, From, (Count) * sizeof (*(From))) # else @@ -218,7 +221,7 @@ union yyalloc { \ register YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ - (To)[yyi] = (From)[yyi]; \ + (To)[yyi] = (From)[yyi]; \ } \ while (0) # endif @@ -235,7 +238,7 @@ union yyalloc YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack, Stack, yysize); \ Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (0) @@ -245,19 +248,20 @@ union yyalloc #if defined (__STDC__) || defined (__cplusplus) typedef signed char yysigned_char; #else - typedef short yysigned_char; + typedef short int yysigned_char; #endif /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 38 -#define YYLAST 422 +#define YYFINAL 52 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 396 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 23 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 28 +#define YYNNTS 29 /* YYNRULES -- Number of rules. */ -#define YYNRULES 75 +#define YYNRULES 79 /* YYNRULES -- Number of states. */ #define YYNSTATES 128 @@ -265,8 +269,8 @@ union yyalloc #define YYUNDEFTOK 2 #define YYMAXUTOK 269 -#define YYTRANSLATE(X) \ - ((unsigned)(X) <= YYMAXUTOK ? yytranslate[X] : YYUNDEFTOK) +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ static const unsigned char yytranslate[] = @@ -305,54 +309,55 @@ static const unsigned char yytranslate[] = YYRHS. */ static const unsigned char yyprhs[] = { - 0, 0, 3, 5, 8, 9, 11, 13, 15, 19, - 21, 24, 27, 30, 34, 36, 39, 40, 42, 45, - 47, 49, 51, 54, 57, 60, 63, 66, 68, 70, - 72, 76, 78, 80, 82, 84, 86, 90, 93, 95, - 99, 102, 106, 109, 113, 116, 118, 122, 125, 129, - 132, 134, 138, 140, 142, 146, 150, 154, 157, 161, - 164, 168, 171, 175, 177, 183, 185, 189, 193, 196, - 200, 204, 207, 209, 213, 215 + 0, 0, 3, 5, 8, 9, 11, 13, 15, 18, + 21, 24, 28, 30, 32, 36, 37, 40, 43, 46, + 49, 51, 54, 56, 58, 60, 63, 66, 69, 72, + 75, 77, 79, 81, 85, 87, 89, 91, 93, 95, + 99, 103, 106, 110, 113, 117, 120, 124, 127, 129, + 133, 136, 140, 143, 145, 149, 151, 153, 157, 161, + 165, 168, 172, 175, 179, 182, 184, 188, 190, 194, + 196, 200, 204, 207, 211, 215, 218, 220, 224, 226 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yysigned_char yyrhs[] = { - 24, 0, -1, 26, -1, 11, 28, -1, -1, 33, - -1, 27, -1, 34, -1, 29, 26, 32, -1, 34, - -1, 5, 27, -1, 6, 27, -1, 3, 27, -1, - 29, 27, 32, -1, 25, -1, 29, 30, -1, -1, - 12, -1, 29, 13, -1, 14, -1, 13, -1, 14, - -1, 31, 32, -1, 5, 33, -1, 6, 33, -1, - 7, 33, -1, 3, 33, -1, 4, -1, 8, -1, - 9, -1, 29, 33, 32, -1, 10, -1, 35, -1, - 39, -1, 42, -1, 48, -1, 29, 37, 30, -1, - 15, 28, -1, 38, -1, 5, 31, 37, -1, 5, - 37, -1, 6, 31, 37, -1, 6, 37, -1, 3, - 31, 37, -1, 3, 37, -1, 36, -1, 38, 31, - 36, -1, 38, 31, -1, 17, 40, 18, -1, 17, - 18, -1, 41, -1, 40, 21, 41, -1, 25, -1, - 47, -1, 29, 43, 30, -1, 29, 46, 30, -1, - 5, 31, 46, -1, 5, 43, -1, 6, 31, 46, - -1, 6, 43, -1, 3, 31, 46, -1, 3, 43, - -1, 33, 16, 28, -1, 44, -1, 22, 25, 31, - 16, 28, -1, 45, -1, 46, 31, 36, -1, 46, - 31, 45, -1, 46, 31, -1, 25, 16, 28, -1, - 19, 49, 20, -1, 19, 20, -1, 50, -1, 49, - 21, 50, -1, 25, -1, 47, -1 + 24, 0, -1, 25, -1, 11, 27, -1, -1, 33, + -1, 26, -1, 34, -1, 5, 26, -1, 6, 26, + -1, 3, 26, -1, 29, 26, 32, -1, 25, -1, + 28, -1, 29, 28, 30, -1, -1, 7, 28, -1, + 5, 28, -1, 6, 28, -1, 3, 28, -1, 12, + -1, 29, 13, -1, 14, -1, 13, -1, 14, -1, + 31, 32, -1, 5, 33, -1, 6, 33, -1, 7, + 33, -1, 3, 33, -1, 4, -1, 8, -1, 9, + -1, 29, 33, 32, -1, 10, -1, 35, -1, 39, + -1, 42, -1, 49, -1, 29, 37, 30, -1, 29, + 38, 30, -1, 15, 27, -1, 5, 31, 38, -1, + 5, 37, -1, 6, 31, 38, -1, 6, 37, -1, + 3, 31, 38, -1, 3, 37, -1, 36, -1, 38, + 31, 36, -1, 38, 31, -1, 17, 40, 18, -1, + 17, 18, -1, 41, -1, 40, 21, 41, -1, 25, + -1, 48, -1, 29, 43, 30, -1, 29, 47, 30, + -1, 5, 31, 47, -1, 5, 43, -1, 6, 31, + 47, -1, 6, 43, -1, 3, 31, 47, -1, 3, + 43, -1, 33, -1, 22, 25, 31, -1, 27, -1, + 44, 16, 45, -1, 46, -1, 47, 31, 36, -1, + 47, 31, 46, -1, 47, 31, -1, 25, 16, 27, + -1, 19, 50, 20, -1, 19, 20, -1, 51, -1, + 50, 21, 51, -1, 25, -1, 48, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const unsigned short yyrline[] = +static const unsigned short int yyrline[] = { - 0, 54, 54, 58, 62, 68, 69, 72, 73, 79, - 80, 85, 90, 99, 105, 106, 111, 121, 122, 125, - 128, 131, 132, 140, 145, 150, 158, 162, 170, 183, - 184, 194, 195, 196, 197, 198, 204, 210, 216, 217, - 222, 227, 232, 237, 241, 247, 251, 256, 265, 269, - 275, 279, 286, 287, 293, 298, 305, 310, 315, 320, - 325, 329, 335, 350, 351, 368, 369, 381, 389, 398, - 406, 410, 416, 417, 426, 433 + 0, 56, 56, 60, 65, 70, 71, 74, 75, 80, + 85, 94, 100, 101, 104, 109, 113, 121, 126, 131, + 145, 146, 149, 152, 155, 156, 164, 169, 174, 182, + 186, 194, 207, 208, 218, 219, 220, 221, 222, 228, + 232, 238, 244, 249, 254, 259, 264, 268, 274, 278, + 283, 292, 296, 302, 306, 313, 314, 320, 325, 332, + 337, 342, 347, 352, 356, 362, 363, 369, 379, 396, + 397, 409, 417, 426, 434, 438, 444, 445, 454, 461 }; #endif @@ -361,24 +366,24 @@ static const unsigned short yyrline[] = First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "YAML_ANCHOR", "YAML_ALIAS", - "YAML_TRANSFER", "YAML_TAGURI", "YAML_ITRANSFER", "YAML_WORD", - "YAML_PLAIN", "YAML_BLOCK", "YAML_DOCSEP", "YAML_IOPEN", "YAML_INDENT", - "YAML_IEND", "'-'", "':'", "'['", "']'", "'{'", "'}'", "','", "'?'", - "$accept", "doc", "atom", "doc_struct_rep", "ind_rep", "atom_or_empty", - "indent_open", "indent_end", "indent_sep", "indent_flex_end", - "word_rep", "struct_rep", "implicit_seq", "basic_seq", "top_imp_seq", - "in_implicit_seq", "inline_seq", "in_inline_seq", "inline_seq_atom", - "implicit_map", "top_imp_map", "basic_mapping", "complex_mapping", - "in_implicit_map", "basic_mapping2", "inline_map", "in_inline_map", - "inline_map_atom", 0 + "$end", "error", "$undefined", "YAML_ANCHOR", "YAML_ALIAS", + "YAML_TRANSFER", "YAML_TAGURI", "YAML_ITRANSFER", "YAML_WORD", + "YAML_PLAIN", "YAML_BLOCK", "YAML_DOCSEP", "YAML_IOPEN", "YAML_INDENT", + "YAML_IEND", "'-'", "':'", "'['", "']'", "'{'", "'}'", "','", "'?'", + "$accept", "doc", "atom", "ind_rep", "atom_or_empty", "empty", + "indent_open", "indent_end", "indent_sep", "indent_flex_end", "word_rep", + "struct_rep", "implicit_seq", "basic_seq", "top_imp_seq", + "in_implicit_seq", "inline_seq", "in_inline_seq", "inline_seq_atom", + "implicit_map", "top_imp_map", "complex_key", "complex_value", + "complex_mapping", "in_implicit_map", "basic_mapping", "inline_map", + "in_inline_map", "inline_map_atom", 0 }; #endif # ifdef YYPRINT /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to token YYLEX-NUM. */ -static const unsigned short yytoknum[] = +static const unsigned short int yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 45, 58, 91, 93, 123, @@ -389,27 +394,27 @@ static const unsigned short yytoknum[] = /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const unsigned char yyr1[] = { - 0, 23, 24, 24, 24, 25, 25, 26, 26, 27, - 27, 27, 27, 27, 28, 28, 28, 29, 29, 30, - 31, 32, 32, 33, 33, 33, 33, 33, 33, 33, - 33, 34, 34, 34, 34, 34, 35, 36, 37, 37, - 37, 37, 37, 37, 37, 38, 38, 38, 39, 39, - 40, 40, 41, 41, 42, 42, 43, 43, 43, 43, - 43, 43, 44, 45, 45, 46, 46, 46, 46, 47, - 48, 48, 49, 49, 50, 50 + 0, 23, 24, 24, 24, 25, 25, 26, 26, 26, + 26, 26, 27, 27, 28, 28, 28, 28, 28, 28, + 29, 29, 30, 31, 32, 32, 33, 33, 33, 33, + 33, 33, 33, 33, 34, 34, 34, 34, 34, 35, + 35, 36, 37, 37, 37, 37, 37, 37, 38, 38, + 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, + 43, 43, 43, 43, 43, 44, 44, 45, 46, 47, + 47, 47, 47, 48, 49, 49, 50, 50, 51, 51 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const unsigned char yyr2[] = { - 0, 2, 1, 2, 0, 1, 1, 1, 3, 1, - 2, 2, 2, 3, 1, 2, 0, 1, 2, 1, - 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, - 3, 1, 1, 1, 1, 1, 3, 2, 1, 3, - 2, 3, 2, 3, 2, 1, 3, 2, 3, 2, - 1, 3, 1, 1, 3, 3, 3, 2, 3, 2, - 3, 2, 3, 1, 5, 1, 3, 3, 2, 3, - 3, 2, 1, 3, 1, 1 + 0, 2, 1, 2, 0, 1, 1, 1, 2, 2, + 2, 3, 1, 1, 3, 0, 2, 2, 2, 2, + 1, 2, 1, 1, 1, 2, 2, 2, 2, 2, + 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, + 3, 2, 3, 2, 3, 2, 3, 2, 1, 3, + 2, 3, 2, 1, 3, 1, 1, 3, 3, 3, + 2, 3, 2, 3, 2, 1, 3, 1, 3, 1, + 3, 3, 2, 3, 3, 2, 1, 3, 1, 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -417,173 +422,167 @@ static const unsigned char yyr2[] = means the default is an error. */ static const unsigned char yydefact[] = { - 4, 31, 16, 17, 0, 0, 0, 2, 0, 7, - 32, 33, 34, 35, 0, 27, 0, 0, 0, 28, - 29, 14, 6, 3, 0, 5, 9, 49, 52, 0, - 0, 50, 53, 71, 74, 75, 0, 72, 1, 0, - 0, 0, 18, 16, 0, 0, 0, 0, 45, 0, - 38, 0, 63, 65, 0, 12, 26, 10, 23, 11, - 24, 0, 0, 0, 0, 25, 0, 0, 0, 19, - 0, 15, 0, 16, 48, 0, 70, 0, 20, 0, - 44, 61, 0, 40, 57, 0, 42, 59, 37, 0, - 21, 0, 8, 16, 36, 47, 54, 55, 68, 0, - 13, 30, 69, 51, 73, 0, 0, 0, 43, 60, - 39, 56, 41, 58, 0, 22, 62, 46, 66, 67, - 0, 0, 0, 16, 0, 0, 0, 64 + 4, 0, 30, 0, 0, 0, 31, 32, 34, 15, + 20, 0, 0, 0, 2, 6, 0, 5, 7, 35, + 36, 37, 38, 10, 29, 8, 26, 9, 27, 0, + 0, 0, 0, 28, 15, 15, 15, 15, 12, 3, + 13, 15, 52, 55, 0, 53, 56, 75, 78, 79, + 0, 76, 1, 0, 0, 0, 21, 15, 0, 0, + 65, 48, 0, 0, 0, 0, 69, 0, 0, 19, + 17, 18, 15, 15, 15, 16, 15, 15, 15, 15, + 0, 15, 51, 0, 74, 0, 23, 0, 47, 64, + 0, 43, 60, 0, 45, 62, 41, 0, 24, 0, + 11, 33, 22, 39, 40, 50, 57, 15, 58, 72, + 14, 73, 54, 77, 65, 46, 63, 42, 59, 44, + 61, 66, 25, 49, 67, 68, 70, 71 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yysigned_char yydefgoto[] = { - -1, 6, 21, 45, 22, 23, 64, 71, 91, 101, - 25, 26, 10, 48, 49, 50, 11, 30, 31, 12, - 51, 52, 53, 54, 32, 13, 36, 37 + -1, 13, 38, 15, 39, 40, 16, 103, 99, 101, + 17, 18, 19, 61, 62, 63, 20, 44, 45, 21, + 64, 65, 125, 66, 67, 46, 22, 50, 51 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -77 -static const short yypact[] = +#define YYPACT_NINF -97 +static const short int yypact[] = { - 163, -77, 356, -77, 339, 304, 7, -77, 224, -77, - -77, -77, -77, -77, 356, -77, 356, 356, 410, -77, - -77, -77, -77, -77, 204, -77, -77, -77, -15, 244, - 24, -77, -77, -77, -15, -77, 30, -77, -77, 373, - 373, 373, -77, 356, 356, 41, 224, -3, -77, 18, - 21, 18, -77, -77, 46, -77, -77, -77, -77, -77, - -77, 410, 410, 410, 399, -77, 322, 322, 322, -77, - 41, -77, 14, 356, -77, 356, -77, 356, -77, 264, - -77, -77, 264, -77, -77, 264, -77, -77, -77, 21, - -77, 41, -77, 356, -77, 33, -77, -77, 284, 41, - -77, -77, -77, -77, -77, 386, 386, 386, -77, 21, - -77, 21, -77, 21, 22, -77, -77, -77, -77, -77, - 20, 20, 20, 356, 91, 91, 91, -77 + 250, 318, -97, 318, 318, 374, -97, -97, -97, 335, + -97, 267, 232, 7, -97, -97, 192, -97, -97, -97, + -97, -97, -97, -97, -97, -97, -97, -97, -97, 374, + 374, 374, 352, -97, 335, 335, 335, 384, -97, -97, + -97, 212, -97, 10, 0, -97, -97, -97, 10, -97, + -4, -97, -97, 284, 284, 284, -97, 335, 318, 30, + 30, -97, -2, 36, -2, 16, -97, 36, 30, -97, + -97, -97, 384, 384, 384, -97, 363, 301, 301, 301, + -2, 335, -97, 318, -97, 318, -97, 158, -97, -97, + 158, -97, -97, 158, -97, -97, -97, 24, -97, 30, + -97, -97, -97, -97, -97, 26, -97, 335, -97, 158, + -97, -97, -97, -97, -97, 24, 24, 24, 24, 24, + 24, -97, -97, -97, -97, -97, -97, -97 }; /* YYPGOTO[NTERM-NUM]. */ -static const short yypgoto[] = +static const yysigned_char yypgoto[] = { - -77, -77, 5, 56, 138, -40, 0, 25, 59, -34, - 23, 12, -77, -76, 71, -77, -77, -77, -14, -77, - 75, -77, -33, -64, 1, -77, -77, -7 + -97, -97, 8, 81, -56, 109, 33, -53, 74, -54, + -1, -97, -97, -96, -31, -32, -97, -97, -44, -97, + 77, -97, -97, -52, 9, -6, -97, -97, -29 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. - If YYTABLE_NINF, parse error. */ + If YYTABLE_NINF, syntax error. */ #define YYTABLE_NINF -1 static const unsigned char yytable[] = { - 8, 73, 24, 88, 29, 29, 35, 38, 46, 28, - 34, 92, 9, 93, 29, 109, 29, 29, 111, 117, - 9, 113, 118, 124, 29, 125, 126, 78, 90, 29, - 93, 47, 69, 102, 78, 43, 100, 56, 123, 58, - 60, 65, 74, 24, 29, 75, 46, 72, 43, 89, - 76, 77, 72, 116, 78, 90, 7, 115, 9, 78, - 69, 103, 56, 58, 60, 119, 29, 29, 29, 72, - 104, 0, 0, 24, 94, 29, 96, 29, 35, 97, - 28, 0, 34, 127, 56, 58, 60, 99, 0, 56, - 58, 60, 0, 24, 124, 0, 125, 126, 79, 82, - 85, 0, 47, 0, 78, 47, 43, 0, 47, 95, - 80, 83, 86, 98, 81, 84, 87, 0, 0, 0, - 0, 47, 0, 24, 0, 79, 82, 85, 56, 58, - 60, 0, 0, 0, 0, 0, 0, 80, 83, 86, - 0, 81, 84, 87, 0, 0, 0, 0, 114, 0, - 108, 0, 55, 110, 57, 59, 112, 0, 0, 0, - 0, 0, 70, 0, 120, 121, 122, 70, 98, 0, - 98, 0, 98, 1, 2, 3, 80, 83, 86, 0, - 4, 0, 5, 120, 121, 122, 0, 0, 0, 0, - 0, 108, 110, 112, 0, 80, 83, 86, 0, 0, - 0, 0, 0, 0, 55, 57, 59, 66, 15, 67, - 68, 18, 19, 20, 1, 0, 3, 42, 69, 43, - 0, 4, 0, 5, 0, 0, 44, 39, 15, 40, - 41, 18, 19, 20, 1, 0, 3, 42, 0, 43, - 0, 4, 0, 5, 0, 0, 44, 66, 15, 67, - 68, 18, 19, 20, 1, 0, 3, 42, 0, 43, - 0, 4, 0, 5, 0, 0, 44, 105, 15, 106, - 107, 18, 19, 20, 0, 0, 3, 0, 0, 43, - 0, 0, 0, 0, 0, 0, 44, 61, 15, 62, - 63, 18, 19, 20, 0, 0, 3, 0, 0, 43, - 0, 0, 0, 0, 0, 0, 44, 14, 15, 16, - 17, 18, 19, 20, 1, 0, 3, 0, 0, 0, - 0, 4, 0, 5, 33, 66, 15, 67, 68, 18, - 19, 20, 1, 0, 3, 78, 0, 43, 0, 4, - 0, 5, 14, 15, 16, 17, 18, 19, 20, 1, - 0, 3, 0, 0, 0, 0, 4, 27, 5, 14, - 15, 16, 17, 18, 19, 20, 1, 0, 3, 0, - 0, 0, 0, 4, 0, 5, 39, 15, 40, 41, - 18, 19, 20, 0, 0, 3, 78, 0, 43, 105, - 15, 106, 107, 18, 19, 20, 0, 0, 3, 78, - 0, 43, 61, 15, 62, 63, 18, 19, 20, 0, - 0, 3, 42, 61, 15, 62, 63, 18, 19, 20, - 0, 0, 3 + 24, 96, 26, 28, 33, 100, 49, 52, 14, 123, + 104, 106, 102, 126, 108, 60, 84, 85, 82, 43, + 48, 83, 88, 91, 94, 111, 81, 110, 24, 26, + 28, 68, 107, 24, 26, 28, 33, 86, 32, 112, + 60, 57, 41, 86, 98, 122, 88, 91, 94, 86, + 102, 124, 24, 26, 28, 115, 113, 127, 117, 0, + 0, 119, 32, 32, 32, 32, 97, 41, 41, 41, + 76, 24, 26, 28, 41, 68, 24, 26, 28, 49, + 0, 0, 23, 0, 25, 27, 114, 0, 0, 114, + 41, 43, 114, 48, 0, 0, 116, 59, 0, 118, + 0, 0, 120, 0, 0, 76, 76, 76, 114, 76, + 41, 41, 41, 0, 41, 23, 25, 27, 0, 0, + 32, 0, 59, 32, 0, 0, 32, 87, 90, 93, + 89, 92, 95, 0, 23, 25, 27, 105, 0, 0, + 41, 109, 32, 69, 70, 71, 75, 0, 0, 0, + 80, 87, 90, 93, 89, 92, 95, 0, 23, 25, + 27, 29, 2, 30, 31, 5, 6, 7, 0, 0, + 10, 121, 0, 57, 0, 0, 0, 0, 0, 0, + 58, 69, 70, 71, 0, 80, 69, 70, 71, 105, + 109, 105, 109, 105, 109, 53, 2, 54, 55, 5, + 6, 7, 8, 0, 10, 56, 0, 57, 0, 11, + 0, 12, 0, 0, 58, 77, 2, 78, 79, 37, + 6, 7, 8, 0, 10, 56, 0, 57, 0, 11, + 0, 12, 0, 0, 58, 1, 2, 3, 4, 5, + 6, 7, 8, 0, 10, 0, 0, 0, 0, 11, + 0, 12, 47, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 0, 0, 0, 0, 11, 0, 12, + 1, 2, 3, 4, 5, 6, 7, 8, 0, 10, + 0, 0, 0, 0, 11, 42, 12, 53, 2, 54, + 55, 5, 6, 7, 8, 0, 10, 86, 0, 0, + 0, 11, 0, 12, 77, 2, 78, 79, 37, 6, + 7, 8, 0, 10, 86, 0, 0, 0, 11, 0, + 12, 1, 2, 3, 4, 5, 6, 7, 8, 0, + 10, 0, 0, 0, 0, 11, 0, 12, 34, 2, + 35, 36, 37, 6, 7, 8, 0, 10, 0, 0, + 0, 0, 11, 0, 12, 29, 2, 30, 31, 5, + 6, 7, 0, 0, 10, 56, 72, 2, 73, 74, + 37, 6, 7, 0, 0, 10, 56, 29, 2, 30, + 31, 5, 6, 7, 0, 0, 10, 72, 2, 73, + 74, 37, 6, 7, 0, 0, 10 }; static const yysigned_char yycheck[] = { - 0, 16, 2, 43, 4, 5, 5, 0, 8, 4, - 5, 45, 0, 16, 14, 79, 16, 17, 82, 95, - 8, 85, 98, 3, 24, 5, 6, 13, 14, 29, - 16, 8, 14, 73, 13, 15, 70, 14, 16, 16, - 17, 18, 18, 43, 44, 21, 46, 24, 15, 44, - 20, 21, 29, 93, 13, 14, 0, 91, 46, 13, - 14, 75, 39, 40, 41, 98, 66, 67, 68, 46, - 77, -1, -1, 73, 49, 75, 51, 77, 77, 54, - 75, -1, 77, 123, 61, 62, 63, 64, -1, 66, - 67, 68, -1, 93, 3, -1, 5, 6, 39, 40, - 41, -1, 79, -1, 13, 82, 15, -1, 85, 50, - 39, 40, 41, 54, 39, 40, 41, -1, -1, -1, - -1, 98, -1, 123, -1, 66, 67, 68, 105, 106, - 107, -1, -1, -1, -1, -1, -1, 66, 67, 68, - -1, 66, 67, 68, -1, -1, -1, -1, 89, -1, - 79, -1, 14, 82, 16, 17, 85, -1, -1, -1, - -1, -1, 24, -1, 105, 106, 107, 29, 109, -1, - 111, -1, 113, 10, 11, 12, 105, 106, 107, -1, - 17, -1, 19, 124, 125, 126, -1, -1, -1, -1, - -1, 120, 121, 122, -1, 124, 125, 126, -1, -1, - -1, -1, -1, -1, 66, 67, 68, 3, 4, 5, - 6, 7, 8, 9, 10, -1, 12, 13, 14, 15, - -1, 17, -1, 19, -1, -1, 22, 3, 4, 5, - 6, 7, 8, 9, 10, -1, 12, 13, -1, 15, - -1, 17, -1, 19, -1, -1, 22, 3, 4, 5, - 6, 7, 8, 9, 10, -1, 12, 13, -1, 15, - -1, 17, -1, 19, -1, -1, 22, 3, 4, 5, - 6, 7, 8, 9, -1, -1, 12, -1, -1, 15, - -1, -1, -1, -1, -1, -1, 22, 3, 4, 5, - 6, 7, 8, 9, -1, -1, 12, -1, -1, 15, - -1, -1, -1, -1, -1, -1, 22, 3, 4, 5, - 6, 7, 8, 9, 10, -1, 12, -1, -1, -1, - -1, 17, -1, 19, 20, 3, 4, 5, 6, 7, + 1, 57, 3, 4, 5, 59, 12, 0, 0, 105, + 63, 64, 14, 109, 67, 16, 20, 21, 18, 11, + 12, 21, 53, 54, 55, 81, 16, 80, 29, 30, + 31, 32, 16, 34, 35, 36, 37, 13, 5, 83, + 41, 15, 9, 13, 14, 99, 77, 78, 79, 13, + 14, 107, 53, 54, 55, 87, 85, 109, 90, -1, + -1, 93, 29, 30, 31, 32, 58, 34, 35, 36, + 37, 72, 73, 74, 41, 76, 77, 78, 79, 85, + -1, -1, 1, -1, 3, 4, 87, -1, -1, 90, + 57, 83, 93, 85, -1, -1, 87, 16, -1, 90, + -1, -1, 93, -1, -1, 72, 73, 74, 109, 76, + 77, 78, 79, -1, 81, 34, 35, 36, -1, -1, + 87, -1, 41, 90, -1, -1, 93, 53, 54, 55, + 53, 54, 55, -1, 53, 54, 55, 63, -1, -1, + 107, 67, 109, 34, 35, 36, 37, -1, -1, -1, + 41, 77, 78, 79, 77, 78, 79, -1, 77, 78, + 79, 3, 4, 5, 6, 7, 8, 9, -1, -1, + 12, 97, -1, 15, -1, -1, -1, -1, -1, -1, + 22, 72, 73, 74, -1, 76, 77, 78, 79, 115, + 116, 117, 118, 119, 120, 3, 4, 5, 6, 7, + 8, 9, 10, -1, 12, 13, -1, 15, -1, 17, + -1, 19, -1, -1, 22, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, 15, -1, 17, - -1, 19, 3, 4, 5, 6, 7, 8, 9, 10, - -1, 12, -1, -1, -1, -1, 17, 18, 19, 3, - 4, 5, 6, 7, 8, 9, 10, -1, 12, -1, - -1, -1, -1, 17, -1, 19, 3, 4, 5, 6, - 7, 8, 9, -1, -1, 12, 13, -1, 15, 3, - 4, 5, 6, 7, 8, 9, -1, -1, 12, 13, - -1, 15, 3, 4, 5, 6, 7, 8, 9, -1, - -1, 12, 13, 3, 4, 5, 6, 7, 8, 9, - -1, -1, 12 + -1, 19, -1, -1, 22, 3, 4, 5, 6, 7, + 8, 9, 10, -1, 12, -1, -1, -1, -1, 17, + -1, 19, 20, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, -1, -1, -1, -1, 17, -1, 19, + 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, + -1, -1, -1, -1, 17, 18, 19, 3, 4, 5, + 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, + -1, 17, -1, 19, 3, 4, 5, 6, 7, 8, + 9, 10, -1, 12, 13, -1, -1, -1, 17, -1, + 19, 3, 4, 5, 6, 7, 8, 9, 10, -1, + 12, -1, -1, -1, -1, 17, -1, 19, 3, 4, + 5, 6, 7, 8, 9, 10, -1, 12, -1, -1, + -1, -1, 17, -1, 19, 3, 4, 5, 6, 7, + 8, 9, -1, -1, 12, 13, 3, 4, 5, 6, + 7, 8, 9, -1, -1, 12, 13, 3, 4, 5, + 6, 7, 8, 9, -1, -1, 12, 3, 4, 5, + 6, 7, 8, 9, -1, -1, 12 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const unsigned char yystos[] = { - 0, 10, 11, 12, 17, 19, 24, 26, 29, 34, - 35, 39, 42, 48, 3, 4, 5, 6, 7, 8, - 9, 25, 27, 28, 29, 33, 34, 18, 25, 29, - 40, 41, 47, 20, 25, 47, 49, 50, 0, 3, - 5, 6, 13, 15, 22, 26, 29, 33, 36, 37, - 38, 43, 44, 45, 46, 27, 33, 27, 33, 27, - 33, 3, 5, 6, 29, 33, 3, 5, 6, 14, - 27, 30, 33, 16, 18, 21, 20, 21, 13, 31, - 37, 43, 31, 37, 43, 31, 37, 43, 28, 25, - 14, 31, 32, 16, 30, 31, 30, 30, 31, 33, - 32, 32, 28, 41, 50, 3, 5, 6, 37, 46, - 37, 46, 37, 46, 31, 32, 28, 36, 36, 45, - 31, 31, 31, 16, 3, 5, 6, 28 + 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 17, 19, 24, 25, 26, 29, 33, 34, 35, + 39, 42, 49, 26, 33, 26, 33, 26, 33, 3, + 5, 6, 29, 33, 3, 5, 6, 7, 25, 27, + 28, 29, 18, 25, 40, 41, 48, 20, 25, 48, + 50, 51, 0, 3, 5, 6, 13, 15, 22, 26, + 33, 36, 37, 38, 43, 44, 46, 47, 33, 28, + 28, 28, 3, 5, 6, 28, 29, 3, 5, 6, + 28, 16, 18, 21, 20, 21, 13, 31, 37, 43, + 31, 37, 43, 31, 37, 43, 27, 25, 14, 31, + 32, 32, 14, 30, 30, 31, 30, 16, 30, 31, + 30, 27, 41, 51, 33, 38, 47, 38, 47, 38, + 47, 31, 32, 36, 27, 45, 36, 46 }; #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) @@ -604,12 +603,13 @@ static const unsigned char yystos[] = #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY -2 +#define YYEMPTY (-2) #define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab -#define YYERROR goto yyerrlab1 +#define YYERROR goto yyerrorlab + /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. @@ -625,13 +625,13 @@ do \ { \ yychar = (Token); \ yylval = (Value); \ - yychar1 = YYTRANSLATE (yychar); \ + yytoken = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { \ - yyerror ("syntax error: cannot back up"); \ + yyerror ("syntax error: cannot back up");\ YYERROR; \ } \ while (0) @@ -643,19 +643,19 @@ while (0) are run). */ #ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - Current.first_line = Rhs[1].first_line; \ - Current.first_column = Rhs[1].first_column; \ - Current.last_line = Rhs[N].last_line; \ - Current.last_column = Rhs[N].last_column; +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + ((Current).first_line = (Rhs)[1].first_line, \ + (Current).first_column = (Rhs)[1].first_column, \ + (Current).last_line = (Rhs)[N].last_line, \ + (Current).last_column = (Rhs)[N].last_column) #endif /* YYLEX -- calling `yylex' with the right arguments. */ #ifdef YYLEX_PARAM -# define YYLEX yylex (&yylval, YYLEX_PARAM) +# define YYLEX yylex (&yylval, YYLEX_PARAM) #else -# define YYLEX yylex (&yylval) +# define YYLEX yylex (&yylval) #endif /* Enable debugging if requested. */ @@ -671,19 +671,93 @@ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (0) + # define YYDSYMPRINT(Args) \ do { \ if (yydebug) \ yysymprint Args; \ } while (0) + +# define YYDSYMPRINTF(Title, Token, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yysymprint (stderr, \ + Token, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yy_stack_print (short int *bottom, short int *top) +#else +static void +yy_stack_print (bottom, top) + short int *bottom; + short int *top; +#endif +{ + YYFPRINTF (stderr, "Stack now"); + for (/* Nothing. */; bottom <= top; ++bottom) + YYFPRINTF (stderr, " %d", *bottom); + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yy_reduce_print (int yyrule) +#else +static void +yy_reduce_print (yyrule) + int yyrule; +#endif +{ + int yyi; + unsigned int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ", + yyrule - 1, yylno); + /* Print the symbols being reduced, and their result. */ + for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) + YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]); + YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]); +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (Rule); \ +} while (0) + /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) # define YYDSYMPRINT(Args) +# define YYDSYMPRINTF(Title, Token, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ + /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 @@ -696,7 +770,7 @@ int yydebug; SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ -#if YYMAXDEPTH == 0 +#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0 # undef YYMAXDEPTH #endif @@ -762,102 +836,111 @@ yystpcpy (yydest, yysrc) #if YYDEBUG -/*-----------------------------. -| Print this symbol on YYOUT. | -`-----------------------------*/ +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ -static void #if defined (__STDC__) || defined (__cplusplus) -yysymprint (FILE* yyout, int yytype, YYSTYPE yyvalue) +static void +yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) #else -yysymprint (yyout, yytype, yyvalue) - FILE* yyout; +static void +yysymprint (yyoutput, yytype, yyvaluep) + FILE *yyoutput; int yytype; - YYSTYPE yyvalue; + YYSTYPE *yyvaluep; #endif { /* Pacify ``unused variable'' warnings. */ - (void) yyvalue; + (void) yyvaluep; if (yytype < YYNTOKENS) { - YYFPRINTF (yyout, "token %s (", yytname[yytype]); + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); # ifdef YYPRINT - YYPRINT (yyout, yytoknum[yytype], yyvalue); + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); # endif } else - YYFPRINTF (yyout, "nterm %s (", yytname[yytype]); + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); switch (yytype) { default: break; } - YYFPRINTF (yyout, ")"); + YYFPRINTF (yyoutput, ")"); } -#endif /* YYDEBUG. */ - +#endif /* ! YYDEBUG */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ -static void #if defined (__STDC__) || defined (__cplusplus) -yydestruct (int yytype, YYSTYPE yyvalue) +static void +yydestruct (int yytype, YYSTYPE *yyvaluep) #else -yydestruct (yytype, yyvalue) +static void +yydestruct (yytype, yyvaluep) int yytype; - YYSTYPE yyvalue; + YYSTYPE *yyvaluep; #endif { /* Pacify ``unused variable'' warnings. */ - (void) yyvalue; + (void) yyvaluep; switch (yytype) { + default: break; } } - -/* The user can define YYPARSE_PARAM as the name of an argument to be passed - into yyparse. The argument should have type void *. - It should actually point to an object. - Grammar actions can access the variable by casting it - to the proper pointer type. */ +/* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM # if defined (__STDC__) || defined (__cplusplus) -# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM -# define YYPARSE_PARAM_DECL +int yyparse (void *YYPARSE_PARAM); # else -# define YYPARSE_PARAM_ARG YYPARSE_PARAM -# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; +int yyparse (); # endif -#else /* !YYPARSE_PARAM */ -# define YYPARSE_PARAM_ARG -# define YYPARSE_PARAM_DECL -#endif /* !YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -# ifdef YYPARSE_PARAM -int yyparse (void *); -# else +#else /* ! YYPARSE_PARAM */ +#if defined (__STDC__) || defined (__cplusplus) int yyparse (void); -# endif +#else +int yyparse (); #endif +#endif /* ! YYPARSE_PARAM */ + + +/*----------. +| yyparse. | +`----------*/ + +#ifdef YYPARSE_PARAM +# if defined (__STDC__) || defined (__cplusplus) +int yyparse (void *YYPARSE_PARAM) +# else +int yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +# endif +#else /* ! YYPARSE_PARAM */ +#if defined (__STDC__) || defined (__cplusplus) int -yyparse (YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL +yyparse (void) +#else +int +yyparse () + +#endif +#endif { /* The lookahead symbol. */ int yychar; @@ -865,7 +948,7 @@ int yychar; /* The semantic value of the lookahead symbol. */ YYSTYPE yylval; -/* Number of parse errors so far. */ +/* Number of syntax errors so far. */ int yynerrs; register int yystate; @@ -874,7 +957,7 @@ int yynerrs; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* Lookahead token as an internal (translated) token number. */ - int yychar1 = 0; + int yytoken = 0; /* Three stacks and their tools: `yyss': related to states, @@ -885,9 +968,9 @@ int yynerrs; to reallocate them elsewhere. */ /* The state stack. */ - short yyssa[YYINITDEPTH]; - short *yyss = yyssa; - register short *yyssp; + short int yyssa[YYINITDEPTH]; + short int *yyss = yyssa; + register short int *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; @@ -924,6 +1007,7 @@ int yynerrs; yyssp = yyss; yyvsp = yyvs; + goto yysetstate; /*------------------------------------------------------------. @@ -938,7 +1022,7 @@ int yynerrs; yysetstate: *yyssp = yystate; - if (yyssp >= yyss + yystacksize - 1) + if (yyss + yystacksize - 1 <= yyssp) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; @@ -949,7 +1033,7 @@ int yynerrs; these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; - short *yyss1 = yyss; + short int *yyss1 = yyss; /* Each stack pointer address is followed by the size of the @@ -970,14 +1054,14 @@ int yynerrs; goto yyoverflowlab; # else /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) + if (YYMAXDEPTH <= yystacksize) goto yyoverflowlab; yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) + if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { - short *yyss1 = yyss; + short int *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) @@ -999,7 +1083,7 @@ int yynerrs; YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); - if (yyssp >= yyss + yystacksize - 1) + if (yyss + yystacksize - 1 <= yyssp) YYABORT; } @@ -1024,39 +1108,28 @@ yybackup: /* Not known => get a lookahead token if don't already have one. */ - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ - + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } - /* Convert token to internal form (in yychar1) for indexing tables with. */ - - if (yychar <= 0) /* This means end of input. */ + if (yychar <= YYEOF) { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more. */ - + yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else { - yychar1 = YYTRANSLATE (yychar); - - /* We have to keep this `#if YYDEBUG', since we use variables - which are defined only if `YYDEBUG' is set. */ - YYDPRINTF ((stderr, "Next token is ")); - YYDSYMPRINT ((stderr, yychar1, yylval)); - YYDPRINTF ((stderr, "\n")); + yytoken = YYTRANSLATE (yychar); + YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc); } - /* If the proper action on seeing token YYCHAR1 is to reduce or to + /* If the proper action on seeing token YYTOKEN is to reduce or to detect an error, take that action. */ - yyn += yychar1; - if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yychar1) + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; yyn = yytable[yyn]; if (yyn <= 0) @@ -1071,8 +1144,7 @@ yybackup: YYACCEPT; /* Shift the lookahead token. */ - YYDPRINTF ((stderr, "Shifting token %d (%s), ", - yychar, yytname[yychar1])); + YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken])); /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) @@ -1118,71 +1190,48 @@ yyreduce: yyval = yyvsp[1-yylen]; - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables which - are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - int yyi; - - YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", - yyn - 1, yyrline[yyn]); - - /* Print the symbols being reduced, and their result. */ - for (yyi = yyprhs[yyn]; yyrhs[yyi] >= 0; yyi++) - YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); - YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]); - } -#endif + YY_REDUCE_PRINT (yyn); switch (yyn) { case 2: -#line 55 "gram.y" +#line 57 "gram.y" { ((SyckParser *)parser)->root = syck_hdlr_add_node( (SyckParser *)parser, yyvsp[0].nodeData ); } break; case 3: -#line 59 "gram.y" +#line 61 "gram.y" { ((SyckParser *)parser)->root = syck_hdlr_add_node( (SyckParser *)parser, yyvsp[0].nodeData ); } break; case 4: -#line 63 "gram.y" +#line 65 "gram.y" { ((SyckParser *)parser)->eof = 1; } break; case 8: -#line 74 "gram.y" - { - yyval.nodeData = yyvsp[-1].nodeData; - } - break; - - case 10: -#line 81 "gram.y" +#line 76 "gram.y" { syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, ((SyckParser *)parser)->taguri_expansion ); yyval.nodeData = yyvsp[0].nodeData; } break; - case 11: -#line 86 "gram.y" + case 9: +#line 81 "gram.y" { syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, 0 ); yyval.nodeData = yyvsp[0].nodeData; } break; - case 12: -#line 91 "gram.y" + case 10: +#line 86 "gram.y" { /* * _Anchors_: The language binding must keep a separate symbol table @@ -1193,15 +1242,22 @@ yyreduce: } break; - case 13: -#line 100 "gram.y" + case 11: +#line 95 "gram.y" { yyval.nodeData = yyvsp[-1].nodeData; } break; + case 14: +#line 105 "gram.y" + { + yyval.nodeData = yyvsp[-1].nodeData; + } + break; + case 15: -#line 107 "gram.y" +#line 109 "gram.y" { NULL_NODE( parser, n ); yyval.nodeData = n; @@ -1209,31 +1265,62 @@ yyreduce: break; case 16: -#line 112 "gram.y" +#line 114 "gram.y" + { + if ( ((SyckParser *)parser)->implicit_typing == 1 ) + { + try_tag_implicit( yyvsp[0].nodeData, ((SyckParser *)parser)->taguri_expansion ); + } + yyval.nodeData = yyvsp[0].nodeData; + } + break; + + case 17: +#line 122 "gram.y" + { + syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, ((SyckParser *)parser)->taguri_expansion ); + yyval.nodeData = yyvsp[0].nodeData; + } + break; + + case 18: +#line 127 "gram.y" { - NULL_NODE( parser, n ); - yyval.nodeData = n; + syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, 0 ); + yyval.nodeData = yyvsp[0].nodeData; + } + break; + + case 19: +#line 132 "gram.y" + { + /* + * _Anchors_: The language binding must keep a separate symbol table + * for anchors. The actual ID in the symbol table is returned to the + * higher nodes, though. + */ + yyval.nodeData = syck_hdlr_add_anchor( (SyckParser *)parser, yyvsp[-1].name, yyvsp[0].nodeData ); } break; - case 23: -#line 141 "gram.y" + case 26: +#line 165 "gram.y" { syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, ((SyckParser *)parser)->taguri_expansion ); yyval.nodeData = yyvsp[0].nodeData; } break; - case 24: -#line 146 "gram.y" + case 27: +#line 170 "gram.y" { syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, 0 ); yyval.nodeData = yyvsp[0].nodeData; } break; - case 25: -#line 151 "gram.y" + case 28: +#line 175 "gram.y" { if ( ((SyckParser *)parser)->implicit_typing == 1 ) { @@ -1243,15 +1330,15 @@ yyreduce: } break; - case 26: -#line 159 "gram.y" + case 29: +#line 183 "gram.y" { yyval.nodeData = syck_hdlr_add_anchor( (SyckParser *)parser, yyvsp[-1].name, yyvsp[0].nodeData ); } break; - case 27: -#line 163 "gram.y" + case 30: +#line 187 "gram.y" { /* * _Aliases_: The anchor symbol table is scanned for the anchor name. @@ -1261,8 +1348,8 @@ yyreduce: } break; - case 28: -#line 171 "gram.y" + case 31: +#line 195 "gram.y" { SyckNode *n = yyvsp[0].nodeData; if ( ((SyckParser *)parser)->taguri_expansion == 1 ) @@ -1277,207 +1364,212 @@ yyreduce: } break; - case 30: -#line 185 "gram.y" + case 33: +#line 209 "gram.y" { yyval.nodeData = yyvsp[-1].nodeData; } break; - case 36: -#line 205 "gram.y" + case 39: +#line 229 "gram.y" { yyval.nodeData = yyvsp[-1].nodeData; } break; - case 37: -#line 211 "gram.y" + case 40: +#line 233 "gram.y" + { + yyval.nodeData = yyvsp[-1].nodeData; + } + break; + + case 41: +#line 239 "gram.y" { yyval.nodeId = syck_hdlr_add_node( (SyckParser *)parser, yyvsp[0].nodeData ); } break; - case 39: -#line 218 "gram.y" + case 42: +#line 245 "gram.y" { syck_add_transfer( yyvsp[-2].name, yyvsp[0].nodeData, ((SyckParser *)parser)->taguri_expansion ); yyval.nodeData = yyvsp[0].nodeData; } break; - case 40: -#line 223 "gram.y" + case 43: +#line 250 "gram.y" { syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, ((SyckParser *)parser)->taguri_expansion ); yyval.nodeData = yyvsp[0].nodeData; } break; - case 41: -#line 228 "gram.y" + case 44: +#line 255 "gram.y" { syck_add_transfer( yyvsp[-2].name, yyvsp[0].nodeData, 0 ); yyval.nodeData = yyvsp[0].nodeData; } break; - case 42: -#line 233 "gram.y" + case 45: +#line 260 "gram.y" { syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, 0 ); yyval.nodeData = yyvsp[0].nodeData; } break; - case 43: -#line 238 "gram.y" + case 46: +#line 265 "gram.y" { yyval.nodeData = syck_hdlr_add_anchor( (SyckParser *)parser, yyvsp[-2].name, yyvsp[0].nodeData ); } break; - case 44: -#line 242 "gram.y" + case 47: +#line 269 "gram.y" { yyval.nodeData = syck_hdlr_add_anchor( (SyckParser *)parser, yyvsp[-1].name, yyvsp[0].nodeData ); } break; - case 45: -#line 248 "gram.y" + case 48: +#line 275 "gram.y" { yyval.nodeData = syck_new_seq( yyvsp[0].nodeId ); } break; - case 46: -#line 252 "gram.y" + case 49: +#line 279 "gram.y" { syck_seq_add( yyvsp[-2].nodeData, yyvsp[0].nodeId ); yyval.nodeData = yyvsp[-2].nodeData; } break; - case 47: -#line 257 "gram.y" + case 50: +#line 284 "gram.y" { yyval.nodeData = yyvsp[-1].nodeData; } break; - case 48: -#line 266 "gram.y" + case 51: +#line 293 "gram.y" { yyval.nodeData = yyvsp[-1].nodeData; } break; - case 49: -#line 270 "gram.y" + case 52: +#line 297 "gram.y" { yyval.nodeData = syck_alloc_seq(); } break; - case 50: -#line 276 "gram.y" + case 53: +#line 303 "gram.y" { yyval.nodeData = syck_new_seq( syck_hdlr_add_node( (SyckParser *)parser, yyvsp[0].nodeData ) ); } break; - case 51: -#line 280 "gram.y" + case 54: +#line 307 "gram.y" { syck_seq_add( yyvsp[-2].nodeData, syck_hdlr_add_node( (SyckParser *)parser, yyvsp[0].nodeData ) ); yyval.nodeData = yyvsp[-2].nodeData; } break; - case 54: -#line 294 "gram.y" + case 57: +#line 321 "gram.y" { apply_seq_in_map( (SyckParser *)parser, yyvsp[-1].nodeData ); yyval.nodeData = yyvsp[-1].nodeData; } break; - case 55: -#line 299 "gram.y" + case 58: +#line 326 "gram.y" { apply_seq_in_map( (SyckParser *)parser, yyvsp[-1].nodeData ); yyval.nodeData = yyvsp[-1].nodeData; } break; - case 56: -#line 306 "gram.y" + case 59: +#line 333 "gram.y" { syck_add_transfer( yyvsp[-2].name, yyvsp[0].nodeData, ((SyckParser *)parser)->taguri_expansion ); yyval.nodeData = yyvsp[0].nodeData; } break; - case 57: -#line 311 "gram.y" + case 60: +#line 338 "gram.y" { syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, ((SyckParser *)parser)->taguri_expansion ); yyval.nodeData = yyvsp[0].nodeData; } break; - case 58: -#line 316 "gram.y" + case 61: +#line 343 "gram.y" { syck_add_transfer( yyvsp[-2].name, yyvsp[0].nodeData, 0 ); yyval.nodeData = yyvsp[0].nodeData; } break; - case 59: -#line 321 "gram.y" + case 62: +#line 348 "gram.y" { syck_add_transfer( yyvsp[-1].name, yyvsp[0].nodeData, 0 ); yyval.nodeData = yyvsp[0].nodeData; } break; - case 60: -#line 326 "gram.y" + case 63: +#line 353 "gram.y" { yyval.nodeData = syck_hdlr_add_anchor( (SyckParser *)parser, yyvsp[-2].name, yyvsp[0].nodeData ); } break; - case 61: -#line 330 "gram.y" + case 64: +#line 357 "gram.y" { yyval.nodeData = syck_hdlr_add_anchor( (SyckParser *)parser, yyvsp[-1].name, yyvsp[0].nodeData ); } break; - case 62: -#line 336 "gram.y" + case 66: +#line 364 "gram.y" { - yyval.nodeData = syck_new_map( - syck_hdlr_add_node( (SyckParser *)parser, yyvsp[-2].nodeData ), - syck_hdlr_add_node( (SyckParser *)parser, yyvsp[0].nodeData ) ); + yyval.nodeData = yyvsp[-1].nodeData; } break; - case 64: -#line 352 "gram.y" + case 68: +#line 380 "gram.y" { yyval.nodeData = syck_new_map( - syck_hdlr_add_node( (SyckParser *)parser, yyvsp[-3].nodeData ), + syck_hdlr_add_node( (SyckParser *)parser, yyvsp[-2].nodeData ), syck_hdlr_add_node( (SyckParser *)parser, yyvsp[0].nodeData ) ); } break; - case 66: -#line 370 "gram.y" - { + case 70: +#line 398 "gram.y" + { if ( yyvsp[-2].nodeData->shortcut == NULL ) { yyvsp[-2].nodeData->shortcut = syck_new_seq( yyvsp[0].nodeId ); @@ -1490,9 +1582,9 @@ yyreduce: } break; - case 67: -#line 382 "gram.y" - { + case 71: +#line 410 "gram.y" + { apply_seq_in_map( (SyckParser *)parser, yyvsp[-2].nodeData ); syck_map_update( yyvsp[-2].nodeData, yyvsp[0].nodeData ); syck_free_node( yyvsp[0].nodeData ); @@ -1501,15 +1593,15 @@ yyreduce: } break; - case 68: -#line 390 "gram.y" - { + case 72: +#line 418 "gram.y" + { yyval.nodeData = yyvsp[-1].nodeData; } break; - case 69: -#line 399 "gram.y" + case 73: +#line 427 "gram.y" { yyval.nodeData = syck_new_map( syck_hdlr_add_node( (SyckParser *)parser, yyvsp[-2].nodeData ), @@ -1517,22 +1609,22 @@ yyreduce: } break; - case 70: -#line 407 "gram.y" + case 74: +#line 435 "gram.y" { yyval.nodeData = yyvsp[-1].nodeData; } break; - case 71: -#line 411 "gram.y" + case 75: +#line 439 "gram.y" { yyval.nodeData = syck_alloc_map(); } break; - case 73: -#line 418 "gram.y" + case 77: +#line 446 "gram.y" { syck_map_update( yyvsp[-2].nodeData, yyvsp[0].nodeData ); syck_free_node( yyvsp[0].nodeData ); @@ -1541,8 +1633,8 @@ yyreduce: } break; - case 74: -#line 427 "gram.y" + case 78: +#line 455 "gram.y" { NULL_NODE( parser, n ); yyval.nodeData = syck_new_map( @@ -1554,23 +1646,14 @@ yyreduce: } -/* Line 1016 of /usr/local/share/bison/yacc.c. */ -#line 1559 "y.tab.c" +/* Line 1010 of yacc.c. */ +#line 1651 "gram.c" yyvsp -= yylen; yyssp -= yylen; -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif + YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; @@ -1605,88 +1688,118 @@ yyerrlab: { YYSIZE_T yysize = 0; int yytype = YYTRANSLATE (yychar); + const char* yyprefix; char *yymsg; - int yyx, yycount; + int yyx; - yycount = 0; /* Start YYX at -YYN if negative to avoid negative indexes in YYCHECK. */ - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 0; + + yyprefix = ", expecting "; + for (yyx = yyxbegin; yyx < yyxend; ++yyx) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) - yysize += yystrlen (yytname[yyx]) + 15, yycount++; - yysize += yystrlen ("parse error, unexpected ") + 1; - yysize += yystrlen (yytname[yytype]); + { + yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]); + yycount += 1; + if (yycount == 5) + { + yysize = 0; + break; + } + } + yysize += (sizeof ("syntax error, unexpected ") + + yystrlen (yytname[yytype])); yymsg = (char *) YYSTACK_ALLOC (yysize); if (yymsg != 0) { - char *yyp = yystpcpy (yymsg, "parse error, unexpected "); + char *yyp = yystpcpy (yymsg, "syntax error, unexpected "); yyp = yystpcpy (yyp, yytname[yytype]); if (yycount < 5) { - yycount = 0; - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); - yyx++) + yyprefix = ", expecting "; + for (yyx = yyxbegin; yyx < yyxend; ++yyx) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) { - const char *yyq = ! yycount ? ", expecting " : " or "; - yyp = yystpcpy (yyp, yyq); + yyp = yystpcpy (yyp, yyprefix); yyp = yystpcpy (yyp, yytname[yyx]); - yycount++; + yyprefix = " or "; } } yyerror (yymsg); YYSTACK_FREE (yymsg); } else - yyerror ("parse error; also virtual memory exhausted"); + yyerror ("syntax error; also virtual memory exhausted"); } else #endif /* YYERROR_VERBOSE */ - yyerror ("parse error"); + yyerror ("syntax error"); } - goto yyerrlab1; -/*----------------------------------------------------. -| yyerrlab1 -- error raised explicitly by an action. | -`----------------------------------------------------*/ -yyerrlab1: + if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an error, discard it. */ - /* Return failure if at end of input. */ - if (yychar == YYEOF) + if (yychar <= YYEOF) { - /* Pop the error token. */ - YYPOPSTACK; - /* Pop the rest of the stack. */ - while (yyssp > yyss) - { - YYDPRINTF ((stderr, "Error: popping ")); - YYDSYMPRINT ((stderr, - yystos[*yyssp], - *yyvsp)); - YYDPRINTF ((stderr, "\n")); - yydestruct (yystos[*yyssp], *yyvsp); - YYPOPSTACK; - } - YYABORT; + /* If at end of input, pop the error token, + then the rest of the stack, then return failure. */ + if (yychar == YYEOF) + for (;;) + { + YYPOPSTACK; + if (yyssp == yyss) + YYABORT; + YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); + yydestruct (yystos[*yyssp], yyvsp); + } } + else + { + YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc); + yydestruct (yytoken, &yylval); + yychar = YYEMPTY; - YYDPRINTF ((stderr, "Discarding token %d (%s).\n", - yychar, yytname[yychar1])); - yydestruct (yychar1, yylval); - yychar = YYEMPTY; + } } /* Else will try to reuse lookahead token after shifting the error token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + +#ifdef __GNUC__ + /* Pacify GCC when the user code never invokes YYERROR and the label + yyerrorlab therefore never appears in user code. */ + if (0) + goto yyerrorlab; +#endif + + yyvsp -= yylen; + yyssp -= yylen; + yystate = *yyssp; + goto yyerrlab1; + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) @@ -1707,26 +1820,11 @@ yyerrlab1: if (yyssp == yyss) YYABORT; - YYDPRINTF ((stderr, "Error: popping ")); - YYDSYMPRINT ((stderr, - yystos[*yyssp], *yyvsp)); - YYDPRINTF ((stderr, "\n")); - - yydestruct (yystos[yystate], *yyvsp); - yyvsp--; - yystate = *--yyssp; - - -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "Error: state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif + YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); + yydestruct (yystos[yystate], yyvsp); + YYPOPSTACK; + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); } if (yyn == YYFINAL) @@ -1774,7 +1872,7 @@ yyreturn: } -#line 436 "gram.y" +#line 464 "gram.y" void |