annotate intl/plural.c @ 174:58927c1da3fb trunk

[svn] grr... i hate automake
author nenolod
date Sun, 13 Nov 2005 12:50:12 -0800
parents cb178e5ad177
children f12d7e208b43
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1 /* A Bison parser, made from plural.y
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2 by GNU bison 1.35. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
4 #define YYBISON 1 /* Identify Bison output. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
5
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
6 #define yyparse __gettextparse
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
7 #define yylex __gettextlex
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
8 #define yyerror __gettexterror
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
9 #define yylval __gettextlval
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
10 #define yychar __gettextchar
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
11 #define yydebug __gettextdebug
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
12 #define yynerrs __gettextnerrs
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
13 # define EQUOP2 257
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
14 # define CMPOP2 258
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
15 # define ADDOP2 259
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
16 # define MULOP2 260
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
17 # define NUMBER 261
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
18
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
19 #line 1 "plural.y"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
20
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
21 /* Expression parsing for plural form selection.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
22 Copyright (C) 2000, 2001 Free Software Foundation, Inc.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
23 Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
24
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
25 This program is free software; you can redistribute it and/or modify it
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
26 under the terms of the GNU Library General Public License as published
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
27 by the Free Software Foundation; either version 2, or (at your option)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
28 any later version.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
29
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
30 This program is distributed in the hope that it will be useful,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
31 but WITHOUT ANY WARRANTY; without even the implied warranty of
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
32 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
33 Library General Public License for more details.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
34
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
35 You should have received a copy of the GNU Library General Public
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
36 License along with this program; if not, write to the Free Software
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
37 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
38 USA. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
39
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
40 /* The bison generated parser uses alloca. AIX 3 forces us to put this
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
41 declaration at the beginning of the file. The declaration in bison's
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
42 skeleton file comes too late. This must come before <config.h>
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
43 because <config.h> may include arbitrary system headers. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
44 #if defined _AIX && !defined __GNUC__
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
45 #pragma alloca
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
46 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
47
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
48 #ifdef HAVE_CONFIG_H
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
49 # include <config.h>
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
50 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
51
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
52 #include <stddef.h>
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
53 #include <stdlib.h>
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
54 #include "plural-exp.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
55
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
56 /* The main function generated by the parser is called __gettextparse,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
57 but we want it to be called PLURAL_PARSE. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
58 #ifndef _LIBC
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
59 # define __gettextparse PLURAL_PARSE
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
60 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
61
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
62 #define YYLEX_PARAM &((struct parse_args *) arg)->cp
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
63 #define YYPARSE_PARAM arg
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
64
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
65 #line 49 "plural.y"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
66 #ifndef YYSTYPE
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
67 typedef union {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
68 unsigned long int num;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
69 enum operator op;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
70 struct expression *exp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
71 } yystype;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
72 # define YYSTYPE yystype
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
73 # define YYSTYPE_IS_TRIVIAL 1
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
74 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
75 #line 55 "plural.y"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
76
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
77 /* Prototypes for local functions. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
78 static struct expression *new_exp PARAMS ((int nargs, enum operator op,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
79 struct expression * const *args));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
80 static inline struct expression *new_exp_0 PARAMS ((enum operator op));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
81 static inline struct expression *new_exp_1 PARAMS ((enum operator op,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
82 struct expression *right));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
83 static struct expression *new_exp_2 PARAMS ((enum operator op,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
84 struct expression *left,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
85 struct expression *right));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
86 static inline struct expression *new_exp_3 PARAMS ((enum operator op,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
87 struct expression *bexp,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
88 struct expression *tbranch,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
89 struct expression *fbranch));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
90 static int yylex PARAMS ((YYSTYPE *lval, const char **pexp));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
91 static void yyerror PARAMS ((const char *str));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
92
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
93 /* Allocation of expressions. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
94
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
95 static struct expression *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
96 new_exp (nargs, op, args)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
97 int nargs;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
98 enum operator op;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
99 struct expression * const *args;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
100 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
101 int i;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
102 struct expression *newp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
103
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
104 /* If any of the argument could not be malloc'ed, just return NULL. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
105 for (i = nargs - 1; i >= 0; i--)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
106 if (args[i] == NULL)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
107 goto fail;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
108
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
109 /* Allocate a new expression. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
110 newp = (struct expression *) malloc (sizeof (*newp));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
111 if (newp != NULL)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
112 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
113 newp->nargs = nargs;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
114 newp->operation = op;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
115 for (i = nargs - 1; i >= 0; i--)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
116 newp->val.args[i] = args[i];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
117 return newp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
118 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
119
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
120 fail:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
121 for (i = nargs - 1; i >= 0; i--)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
122 FREE_EXPRESSION (args[i]);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
123
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
124 return NULL;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
125 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
126
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
127 static inline struct expression *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
128 new_exp_0 (op)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
129 enum operator op;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
130 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
131 return new_exp (0, op, NULL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
132 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
133
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
134 static inline struct expression *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
135 new_exp_1 (op, right)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
136 enum operator op;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
137 struct expression *right;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
138 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
139 struct expression *args[1];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
140
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
141 args[0] = right;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
142 return new_exp (1, op, args);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
143 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
144
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
145 static struct expression *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
146 new_exp_2 (op, left, right)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
147 enum operator op;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
148 struct expression *left;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
149 struct expression *right;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
150 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
151 struct expression *args[2];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
152
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
153 args[0] = left;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
154 args[1] = right;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
155 return new_exp (2, op, args);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
156 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
157
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
158 static inline struct expression *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
159 new_exp_3 (op, bexp, tbranch, fbranch)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
160 enum operator op;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
161 struct expression *bexp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
162 struct expression *tbranch;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
163 struct expression *fbranch;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
164 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
165 struct expression *args[3];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
166
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
167 args[0] = bexp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
168 args[1] = tbranch;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
169 args[2] = fbranch;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
170 return new_exp (3, op, args);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
171 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
172
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
173 #ifndef YYDEBUG
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
174 # define YYDEBUG 0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
175 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
176
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
177
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
178
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
179 #define YYFINAL 27
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
180 #define YYFLAG -32768
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
181 #define YYNTBASE 16
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
182
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
183 /* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
184 #define YYTRANSLATE(x) ((unsigned)(x) <= 261 ? yytranslate[x] : 18)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
185
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
186 /* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
187 static const char yytranslate[] =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
188 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
189 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
190 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
191 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
192 2, 2, 2, 10, 2, 2, 2, 2, 5, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
193 14, 15, 2, 2, 2, 2, 2, 2, 2, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
194 2, 2, 2, 2, 2, 2, 2, 2, 12, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
195 2, 2, 2, 3, 2, 2, 2, 2, 2, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
196 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
197 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
198 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
199 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
200 13, 2, 2, 2, 2, 2, 2, 2, 2, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
201 2, 2, 2, 2, 4, 2, 2, 2, 2, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
202 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
203 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
204 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
205 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
206 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
207 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
208 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
209 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
210 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
211 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
212 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
213 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
214 2, 2, 2, 2, 2, 2, 1, 6, 7, 8,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
215 9, 11
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
216 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
217
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
218 #if YYDEBUG
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
219 static const short yyprhs[] =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
220 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
221 0, 0, 2, 8, 12, 16, 20, 24, 28, 32,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
222 35, 37, 39
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
223 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
224 static const short yyrhs[] =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
225 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
226 17, 0, 17, 3, 17, 12, 17, 0, 17, 4,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
227 17, 0, 17, 5, 17, 0, 17, 6, 17, 0,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
228 17, 7, 17, 0, 17, 8, 17, 0, 17, 9,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
229 17, 0, 10, 17, 0, 13, 0, 11, 0, 14,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
230 17, 15, 0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
231 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
232
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
233 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
234
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
235 #if YYDEBUG
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
236 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
237 static const short yyrline[] =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
238 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
239 0, 174, 182, 186, 190, 194, 198, 202, 206, 210,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
240 214, 218, 223
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
241 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
242 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
243
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
244
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
245 #if (YYDEBUG) || defined YYERROR_VERBOSE
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
246
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
247 /* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
248 static const char *const yytname[] =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
249 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
250 "$", "error", "$undefined.", "'?'", "'|'", "'&'", "EQUOP2", "CMPOP2",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
251 "ADDOP2", "MULOP2", "'!'", "NUMBER", "':'", "'n'", "'('", "')'",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
252 "start", "exp", 0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
253 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
254 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
255
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
256 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
257 static const short yyr1[] =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
258 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
259 0, 16, 17, 17, 17, 17, 17, 17, 17, 17,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
260 17, 17, 17
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
261 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
262
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
263 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
264 static const short yyr2[] =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
265 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
266 0, 1, 5, 3, 3, 3, 3, 3, 3, 2,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
267 1, 1, 3
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
268 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
269
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
270 /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
271 doesn't specify something else to do. Zero means the default is an
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
272 error. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
273 static const short yydefact[] =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
274 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
275 0, 0, 11, 10, 0, 1, 9, 0, 0, 0,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
276 0, 0, 0, 0, 0, 12, 0, 3, 4, 5,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
277 6, 7, 8, 0, 2, 0, 0, 0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
278 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
279
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
280 static const short yydefgoto[] =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
281 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
282 25, 5
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
283 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
284
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
285 static const short yypact[] =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
286 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
287 -9, -9,-32768,-32768, -9, 34,-32768, 11, -9, -9,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
288 -9, -9, -9, -9, -9,-32768, 24, 39, 43, 16,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
289 26, -3,-32768, -9, 34, 21, 53,-32768
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
290 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
291
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
292 static const short yypgoto[] =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
293 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
294 -32768, -1
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
295 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
296
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
297
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
298 #define YYLAST 53
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
299
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
300
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
301 static const short yytable[] =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
302 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
303 6, 1, 2, 7, 3, 4, 14, 16, 17, 18,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
304 19, 20, 21, 22, 8, 9, 10, 11, 12, 13,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
305 14, 26, 24, 12, 13, 14, 15, 8, 9, 10,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
306 11, 12, 13, 14, 13, 14, 23, 8, 9, 10,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
307 11, 12, 13, 14, 10, 11, 12, 13, 14, 11,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
308 12, 13, 14, 27
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
309 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
310
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
311 static const short yycheck[] =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
312 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
313 1, 10, 11, 4, 13, 14, 9, 8, 9, 10,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
314 11, 12, 13, 14, 3, 4, 5, 6, 7, 8,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
315 9, 0, 23, 7, 8, 9, 15, 3, 4, 5,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
316 6, 7, 8, 9, 8, 9, 12, 3, 4, 5,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
317 6, 7, 8, 9, 5, 6, 7, 8, 9, 6,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
318 7, 8, 9, 0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
319 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
320 #define YYPURE 1
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
321
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
322 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
323 #line 3 "/usr/local/share/bison/bison.simple"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
324
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
325 /* Skeleton output parser for bison,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
326
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
327 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
328 Foundation, Inc.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
329
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
330 This program is free software; you can redistribute it and/or modify
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
331 it under the terms of the GNU General Public License as published by
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
332 the Free Software Foundation; either version 2, or (at your option)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
333 any later version.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
334
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
335 This program is distributed in the hope that it will be useful,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
336 but WITHOUT ANY WARRANTY; without even the implied warranty of
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
337 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
338 GNU General Public License for more details.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
339
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
340 You should have received a copy of the GNU General Public License
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
341 along with this program; if not, write to the Free Software
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
342 Foundation, Inc., 59 Temple Place - Suite 330,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
343 Boston, MA 02111-1307, USA. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
344
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
345 /* As a special exception, when this file is copied by Bison into a
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
346 Bison output file, you may use that output file without restriction.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
347 This special exception was added by the Free Software Foundation
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
348 in version 1.24 of Bison. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
349
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
350 /* This is the parser code that is written into each bison parser when
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
351 the %semantic_parser declaration is not specified in the grammar.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
352 It was written by Richard Stallman by simplifying the hairy parser
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
353 used when %semantic_parser is specified. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
354
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
355 /* All symbols defined below should begin with yy or YY, to avoid
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
356 infringing on user name space. This should be done even for local
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
357 variables, as they might otherwise be expanded by user macros.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
358 There are some unavoidable exceptions within include files to
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
359 define necessary library symbols; they are noted "INFRINGES ON
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
360 USER NAME SPACE" below. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
361
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
362 #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
363
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
364 /* The parser invokes alloca or malloc; define the necessary symbols. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
365
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
366 # if YYSTACK_USE_ALLOCA
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
367 # define YYSTACK_ALLOC alloca
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
368 # else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
369 # ifndef YYSTACK_USE_ALLOCA
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
370 # if defined (alloca) || defined (_ALLOCA_H)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
371 # define YYSTACK_ALLOC alloca
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
372 # else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
373 # ifdef __GNUC__
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
374 # define YYSTACK_ALLOC __builtin_alloca
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
375 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
376 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
377 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
378 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
379
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
380 # ifdef YYSTACK_ALLOC
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
381 /* Pacify GCC's `empty if-body' warning. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
382 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
383 # else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
384 # if defined (__STDC__) || defined (__cplusplus)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
385 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
386 # define YYSIZE_T size_t
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
387 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
388 # define YYSTACK_ALLOC malloc
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
389 # define YYSTACK_FREE free
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
390 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
391 #endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
392
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
393
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
394 #if (! defined (yyoverflow) \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
395 && (! defined (__cplusplus) \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
396 || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
397
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
398 /* A type that is properly aligned for any stack member. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
399 union yyalloc
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
400 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
401 short yyss;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
402 YYSTYPE yyvs;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
403 # if YYLSP_NEEDED
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
404 YYLTYPE yyls;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
405 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
406 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
407
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
408 /* The size of the maximum gap between one aligned stack and the next. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
409 # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
410
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
411 /* The size of an array large to enough to hold all stacks, each with
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
412 N elements. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
413 # if YYLSP_NEEDED
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
414 # define YYSTACK_BYTES(N) \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
415 ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
416 + 2 * YYSTACK_GAP_MAX)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
417 # else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
418 # define YYSTACK_BYTES(N) \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
419 ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
420 + YYSTACK_GAP_MAX)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
421 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
422
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
423 /* Copy COUNT objects from FROM to TO. The source and destination do
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
424 not overlap. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
425 # ifndef YYCOPY
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
426 # if 1 < __GNUC__
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
427 # define YYCOPY(To, From, Count) \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
428 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
429 # else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
430 # define YYCOPY(To, From, Count) \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
431 do \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
432 { \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
433 register YYSIZE_T yyi; \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
434 for (yyi = 0; yyi < (Count); yyi++) \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
435 (To)[yyi] = (From)[yyi]; \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
436 } \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
437 while (0)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
438 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
439 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
440
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
441 /* Relocate STACK from its old location to the new one. The
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
442 local variables YYSIZE and YYSTACKSIZE give the old and new number of
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
443 elements in the stack, and YYPTR gives the new location of the
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
444 stack. Advance YYPTR to a properly aligned location for the next
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
445 stack. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
446 # define YYSTACK_RELOCATE(Stack) \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
447 do \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
448 { \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
449 YYSIZE_T yynewbytes; \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
450 YYCOPY (&yyptr->Stack, Stack, yysize); \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
451 Stack = &yyptr->Stack; \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
452 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
453 yyptr += yynewbytes / sizeof (*yyptr); \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
454 } \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
455 while (0)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
456
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
457 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
458
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
459
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
460 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
461 # define YYSIZE_T __SIZE_TYPE__
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
462 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
463 #if ! defined (YYSIZE_T) && defined (size_t)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
464 # define YYSIZE_T size_t
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
465 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
466 #if ! defined (YYSIZE_T)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
467 # if defined (__STDC__) || defined (__cplusplus)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
468 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
469 # define YYSIZE_T size_t
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
470 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
471 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
472 #if ! defined (YYSIZE_T)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
473 # define YYSIZE_T unsigned int
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
474 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
475
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
476 #define yyerrok (yyerrstatus = 0)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
477 #define yyclearin (yychar = YYEMPTY)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
478 #define YYEMPTY -2
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
479 #define YYEOF 0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
480 #define YYACCEPT goto yyacceptlab
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
481 #define YYABORT goto yyabortlab
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
482 #define YYERROR goto yyerrlab1
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
483 /* Like YYERROR except do call yyerror. This remains here temporarily
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
484 to ease the transition to the new meaning of YYERROR, for GCC.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
485 Once GCC version 2 has supplanted version 1, this can go. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
486 #define YYFAIL goto yyerrlab
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
487 #define YYRECOVERING() (!!yyerrstatus)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
488 #define YYBACKUP(Token, Value) \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
489 do \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
490 if (yychar == YYEMPTY && yylen == 1) \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
491 { \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
492 yychar = (Token); \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
493 yylval = (Value); \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
494 yychar1 = YYTRANSLATE (yychar); \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
495 YYPOPSTACK; \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
496 goto yybackup; \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
497 } \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
498 else \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
499 { \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
500 yyerror ("syntax error: cannot back up"); \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
501 YYERROR; \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
502 } \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
503 while (0)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
504
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
505 #define YYTERROR 1
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
506 #define YYERRCODE 256
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
507
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
508
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
509 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
510 are run).
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
511
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
512 When YYLLOC_DEFAULT is run, CURRENT is set the location of the
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
513 first token. By default, to implement support for ranges, extend
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
514 its range to the last symbol. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
515
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
516 #ifndef YYLLOC_DEFAULT
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
517 # define YYLLOC_DEFAULT(Current, Rhs, N) \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
518 Current.last_line = Rhs[N].last_line; \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
519 Current.last_column = Rhs[N].last_column;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
520 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
521
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
522
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
523 /* YYLEX -- calling `yylex' with the right arguments. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
524
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
525 #if YYPURE
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
526 # if YYLSP_NEEDED
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
527 # ifdef YYLEX_PARAM
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
528 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
529 # else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
530 # define YYLEX yylex (&yylval, &yylloc)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
531 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
532 # else /* !YYLSP_NEEDED */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
533 # ifdef YYLEX_PARAM
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
534 # define YYLEX yylex (&yylval, YYLEX_PARAM)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
535 # else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
536 # define YYLEX yylex (&yylval)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
537 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
538 # endif /* !YYLSP_NEEDED */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
539 #else /* !YYPURE */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
540 # define YYLEX yylex ()
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
541 #endif /* !YYPURE */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
542
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
543
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
544 /* Enable debugging if requested. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
545 #if YYDEBUG
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
546
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
547 # ifndef YYFPRINTF
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
548 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
549 # define YYFPRINTF fprintf
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
550 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
551
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
552 # define YYDPRINTF(Args) \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
553 do { \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
554 if (yydebug) \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
555 YYFPRINTF Args; \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
556 } while (0)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
557 /* Nonzero means print parse trace. It is left uninitialized so that
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
558 multiple parsers can coexist. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
559 int yydebug;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
560 #else /* !YYDEBUG */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
561 # define YYDPRINTF(Args)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
562 #endif /* !YYDEBUG */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
563
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
564 /* YYINITDEPTH -- initial size of the parser's stacks. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
565 #ifndef YYINITDEPTH
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
566 # define YYINITDEPTH 200
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
567 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
568
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
569 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
570 if the built-in stack extension method is used).
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
571
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
572 Do not make this value too large; the results are undefined if
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
573 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
574 evaluated with infinite-precision integer arithmetic. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
575
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
576 #if YYMAXDEPTH == 0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
577 # undef YYMAXDEPTH
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
578 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
579
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
580 #ifndef YYMAXDEPTH
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
581 # define YYMAXDEPTH 10000
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
582 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
583
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
584 #ifdef YYERROR_VERBOSE
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
585
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
586 # ifndef yystrlen
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
587 # if defined (__GLIBC__) && defined (_STRING_H)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
588 # define yystrlen strlen
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
589 # else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
590 /* Return the length of YYSTR. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
591 static YYSIZE_T
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
592 # if defined (__STDC__) || defined (__cplusplus)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
593 yystrlen (const char *yystr)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
594 # else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
595 yystrlen (yystr)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
596 const char *yystr;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
597 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
598 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
599 register const char *yys = yystr;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
600
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
601 while (*yys++ != '\0')
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
602 continue;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
603
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
604 return yys - yystr - 1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
605 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
606 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
607 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
608
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
609 # ifndef yystpcpy
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
610 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
611 # define yystpcpy stpcpy
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
612 # else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
613 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
614 YYDEST. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
615 static char *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
616 # if defined (__STDC__) || defined (__cplusplus)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
617 yystpcpy (char *yydest, const char *yysrc)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
618 # else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
619 yystpcpy (yydest, yysrc)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
620 char *yydest;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
621 const char *yysrc;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
622 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
623 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
624 register char *yyd = yydest;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
625 register const char *yys = yysrc;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
626
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
627 while ((*yyd++ = *yys++) != '\0')
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
628 continue;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
629
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
630 return yyd - 1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
631 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
632 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
633 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
634 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
635
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
636 #line 315 "/usr/local/share/bison/bison.simple"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
637
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
638
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
639 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
640 into yyparse. The argument should have type void *.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
641 It should actually point to an object.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
642 Grammar actions can access the variable by casting it
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
643 to the proper pointer type. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
644
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
645 #ifdef YYPARSE_PARAM
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
646 # if defined (__STDC__) || defined (__cplusplus)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
647 # define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
648 # define YYPARSE_PARAM_DECL
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
649 # else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
650 # define YYPARSE_PARAM_ARG YYPARSE_PARAM
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
651 # define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
652 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
653 #else /* !YYPARSE_PARAM */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
654 # define YYPARSE_PARAM_ARG
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
655 # define YYPARSE_PARAM_DECL
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
656 #endif /* !YYPARSE_PARAM */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
657
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
658 /* Prevent warning if -Wstrict-prototypes. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
659 #ifdef __GNUC__
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
660 # ifdef YYPARSE_PARAM
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
661 int yyparse (void *);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
662 # else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
663 int yyparse (void);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
664 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
665 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
666
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
667 /* YY_DECL_VARIABLES -- depending whether we use a pure parser,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
668 variables are global, or local to YYPARSE. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
669
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
670 #define YY_DECL_NON_LSP_VARIABLES \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
671 /* The lookahead symbol. */ \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
672 int yychar; \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
673 \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
674 /* The semantic value of the lookahead symbol. */ \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
675 YYSTYPE yylval; \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
676 \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
677 /* Number of parse errors so far. */ \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
678 int yynerrs;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
679
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
680 #if YYLSP_NEEDED
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
681 # define YY_DECL_VARIABLES \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
682 YY_DECL_NON_LSP_VARIABLES \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
683 \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
684 /* Location data for the lookahead symbol. */ \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
685 YYLTYPE yylloc;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
686 #else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
687 # define YY_DECL_VARIABLES \
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
688 YY_DECL_NON_LSP_VARIABLES
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
689 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
690
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
691
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
692 /* If nonreentrant, generate the variables here. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
693
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
694 #if !YYPURE
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
695 YY_DECL_VARIABLES
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
696 #endif /* !YYPURE */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
697
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
698 int
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
699 yyparse (YYPARSE_PARAM_ARG)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
700 YYPARSE_PARAM_DECL
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
701 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
702 /* If reentrant, generate the variables here. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
703 #if YYPURE
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
704 YY_DECL_VARIABLES
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
705 #endif /* !YYPURE */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
706
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
707 register int yystate;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
708 register int yyn;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
709 int yyresult;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
710 /* Number of tokens to shift before error messages enabled. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
711 int yyerrstatus;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
712 /* Lookahead token as an internal (translated) token number. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
713 int yychar1 = 0;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
714
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
715 /* Three stacks and their tools:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
716 `yyss': related to states,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
717 `yyvs': related to semantic values,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
718 `yyls': related to locations.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
719
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
720 Refer to the stacks thru separate pointers, to allow yyoverflow
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
721 to reallocate them elsewhere. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
722
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
723 /* The state stack. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
724 short yyssa[YYINITDEPTH];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
725 short *yyss = yyssa;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
726 register short *yyssp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
727
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
728 /* The semantic value stack. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
729 YYSTYPE yyvsa[YYINITDEPTH];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
730 YYSTYPE *yyvs = yyvsa;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
731 register YYSTYPE *yyvsp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
732
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
733 #if YYLSP_NEEDED
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
734 /* The location stack. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
735 YYLTYPE yylsa[YYINITDEPTH];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
736 YYLTYPE *yyls = yylsa;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
737 YYLTYPE *yylsp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
738 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
739
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
740 #if YYLSP_NEEDED
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
741 # define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
742 #else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
743 # define YYPOPSTACK (yyvsp--, yyssp--)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
744 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
745
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
746 YYSIZE_T yystacksize = YYINITDEPTH;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
747
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
748
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
749 /* The variables used to return semantic value and location from the
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
750 action routines. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
751 YYSTYPE yyval;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
752 #if YYLSP_NEEDED
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
753 YYLTYPE yyloc;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
754 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
755
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
756 /* When reducing, the number of symbols on the RHS of the reduced
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
757 rule. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
758 int yylen;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
759
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
760 YYDPRINTF ((stderr, "Starting parse\n"));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
761
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
762 yystate = 0;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
763 yyerrstatus = 0;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
764 yynerrs = 0;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
765 yychar = YYEMPTY; /* Cause a token to be read. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
766
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
767 /* Initialize stack pointers.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
768 Waste one element of value and location stack
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
769 so that they stay on the same level as the state stack.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
770 The wasted elements are never initialized. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
771
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
772 yyssp = yyss;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
773 yyvsp = yyvs;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
774 #if YYLSP_NEEDED
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
775 yylsp = yyls;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
776 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
777 goto yysetstate;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
778
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
779 /*------------------------------------------------------------.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
780 | yynewstate -- Push a new state, which is found in yystate. |
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
781 `------------------------------------------------------------*/
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
782 yynewstate:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
783 /* In all cases, when you get here, the value and location stacks
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
784 have just been pushed. so pushing a state here evens the stacks.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
785 */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
786 yyssp++;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
787
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
788 yysetstate:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
789 *yyssp = yystate;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
790
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
791 if (yyssp >= yyss + yystacksize - 1)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
792 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
793 /* Get the current used size of the three stacks, in elements. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
794 YYSIZE_T yysize = yyssp - yyss + 1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
795
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
796 #ifdef yyoverflow
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
797 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
798 /* Give user a chance to reallocate the stack. Use copies of
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
799 these so that the &'s don't force the real ones into
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
800 memory. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
801 YYSTYPE *yyvs1 = yyvs;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
802 short *yyss1 = yyss;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
803
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
804 /* Each stack pointer address is followed by the size of the
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
805 data in use in that stack, in bytes. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
806 # if YYLSP_NEEDED
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
807 YYLTYPE *yyls1 = yyls;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
808 /* This used to be a conditional around just the two extra args,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
809 but that might be undefined if yyoverflow is a macro. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
810 yyoverflow ("parser stack overflow",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
811 &yyss1, yysize * sizeof (*yyssp),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
812 &yyvs1, yysize * sizeof (*yyvsp),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
813 &yyls1, yysize * sizeof (*yylsp),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
814 &yystacksize);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
815 yyls = yyls1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
816 # else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
817 yyoverflow ("parser stack overflow",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
818 &yyss1, yysize * sizeof (*yyssp),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
819 &yyvs1, yysize * sizeof (*yyvsp),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
820 &yystacksize);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
821 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
822 yyss = yyss1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
823 yyvs = yyvs1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
824 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
825 #else /* no yyoverflow */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
826 # ifndef YYSTACK_RELOCATE
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
827 goto yyoverflowlab;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
828 # else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
829 /* Extend the stack our own way. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
830 if (yystacksize >= YYMAXDEPTH)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
831 goto yyoverflowlab;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
832 yystacksize *= 2;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
833 if (yystacksize > YYMAXDEPTH)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
834 yystacksize = YYMAXDEPTH;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
835
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
836 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
837 short *yyss1 = yyss;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
838 union yyalloc *yyptr =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
839 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
840 if (! yyptr)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
841 goto yyoverflowlab;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
842 YYSTACK_RELOCATE (yyss);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
843 YYSTACK_RELOCATE (yyvs);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
844 # if YYLSP_NEEDED
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
845 YYSTACK_RELOCATE (yyls);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
846 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
847 # undef YYSTACK_RELOCATE
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
848 if (yyss1 != yyssa)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
849 YYSTACK_FREE (yyss1);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
850 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
851 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
852 #endif /* no yyoverflow */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
853
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
854 yyssp = yyss + yysize - 1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
855 yyvsp = yyvs + yysize - 1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
856 #if YYLSP_NEEDED
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
857 yylsp = yyls + yysize - 1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
858 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
859
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
860 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
861 (unsigned long int) yystacksize));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
862
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
863 if (yyssp >= yyss + yystacksize - 1)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
864 YYABORT;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
865 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
866
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
867 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
868
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
869 goto yybackup;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
870
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
871
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
872 /*-----------.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
873 | yybackup. |
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
874 `-----------*/
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
875 yybackup:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
876
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
877 /* Do appropriate processing given the current state. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
878 /* Read a lookahead token if we need one and don't already have one. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
879 /* yyresume: */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
880
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
881 /* First try to decide what to do without reference to lookahead token. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
882
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
883 yyn = yypact[yystate];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
884 if (yyn == YYFLAG)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
885 goto yydefault;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
886
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
887 /* Not known => get a lookahead token if don't already have one. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
888
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
889 /* yychar is either YYEMPTY or YYEOF
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
890 or a valid token in external form. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
891
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
892 if (yychar == YYEMPTY)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
893 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
894 YYDPRINTF ((stderr, "Reading a token: "));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
895 yychar = YYLEX;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
896 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
897
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
898 /* Convert token to internal form (in yychar1) for indexing tables with */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
899
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
900 if (yychar <= 0) /* This means end of input. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
901 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
902 yychar1 = 0;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
903 yychar = YYEOF; /* Don't call YYLEX any more */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
904
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
905 YYDPRINTF ((stderr, "Now at end of input.\n"));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
906 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
907 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
908 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
909 yychar1 = YYTRANSLATE (yychar);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
910
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
911 #if YYDEBUG
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
912 /* We have to keep this `#if YYDEBUG', since we use variables
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
913 which are defined only if `YYDEBUG' is set. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
914 if (yydebug)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
915 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
916 YYFPRINTF (stderr, "Next token is %d (%s",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
917 yychar, yytname[yychar1]);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
918 /* Give the individual parser a way to print the precise
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
919 meaning of a token, for further debugging info. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
920 # ifdef YYPRINT
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
921 YYPRINT (stderr, yychar, yylval);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
922 # endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
923 YYFPRINTF (stderr, ")\n");
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
924 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
925 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
926 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
927
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
928 yyn += yychar1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
929 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
930 goto yydefault;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
931
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
932 yyn = yytable[yyn];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
933
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
934 /* yyn is what to do for this token type in this state.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
935 Negative => reduce, -yyn is rule number.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
936 Positive => shift, yyn is new state.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
937 New state is final state => don't bother to shift,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
938 just return success.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
939 0, or most negative number => error. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
940
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
941 if (yyn < 0)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
942 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
943 if (yyn == YYFLAG)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
944 goto yyerrlab;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
945 yyn = -yyn;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
946 goto yyreduce;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
947 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
948 else if (yyn == 0)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
949 goto yyerrlab;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
950
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
951 if (yyn == YYFINAL)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
952 YYACCEPT;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
953
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
954 /* Shift the lookahead token. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
955 YYDPRINTF ((stderr, "Shifting token %d (%s), ",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
956 yychar, yytname[yychar1]));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
957
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
958 /* Discard the token being shifted unless it is eof. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
959 if (yychar != YYEOF)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
960 yychar = YYEMPTY;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
961
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
962 *++yyvsp = yylval;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
963 #if YYLSP_NEEDED
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
964 *++yylsp = yylloc;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
965 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
966
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
967 /* Count tokens shifted since error; after three, turn off error
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
968 status. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
969 if (yyerrstatus)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
970 yyerrstatus--;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
971
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
972 yystate = yyn;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
973 goto yynewstate;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
974
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
975
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
976 /*-----------------------------------------------------------.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
977 | yydefault -- do the default action for the current state. |
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
978 `-----------------------------------------------------------*/
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
979 yydefault:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
980 yyn = yydefact[yystate];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
981 if (yyn == 0)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
982 goto yyerrlab;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
983 goto yyreduce;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
984
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
985
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
986 /*-----------------------------.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
987 | yyreduce -- Do a reduction. |
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
988 `-----------------------------*/
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
989 yyreduce:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
990 /* yyn is the number of a rule to reduce with. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
991 yylen = yyr2[yyn];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
992
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
993 /* If YYLEN is nonzero, implement the default value of the action:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
994 `$$ = $1'.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
995
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
996 Otherwise, the following line sets YYVAL to the semantic value of
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
997 the lookahead token. This behavior is undocumented and Bison
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
998 users should not rely upon it. Assigning to YYVAL
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
999 unconditionally makes the parser a bit smaller, and it avoids a
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1000 GCC warning that YYVAL may be used uninitialized. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1001 yyval = yyvsp[1-yylen];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1002
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1003 #if YYLSP_NEEDED
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1004 /* Similarly for the default location. Let the user run additional
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1005 commands if for instance locations are ranges. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1006 yyloc = yylsp[1-yylen];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1007 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1008 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1009
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1010 #if YYDEBUG
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1011 /* We have to keep this `#if YYDEBUG', since we use variables which
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1012 are defined only if `YYDEBUG' is set. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1013 if (yydebug)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1014 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1015 int yyi;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1016
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1017 YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1018 yyn, yyrline[yyn]);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1019
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1020 /* Print the symbols being reduced, and their result. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1021 for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1022 YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1023 YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1024 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1025 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1026
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1027 switch (yyn) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1028
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1029 case 1:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1030 #line 175 "plural.y"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1031 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1032 if (yyvsp[0].exp == NULL)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1033 YYABORT;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1034 ((struct parse_args *) arg)->res = yyvsp[0].exp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1035 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1036 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1037 case 2:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1038 #line 183 "plural.y"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1039 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1040 yyval.exp = new_exp_3 (qmop, yyvsp[-4].exp, yyvsp[-2].exp, yyvsp[0].exp);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1041 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1042 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1043 case 3:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1044 #line 187 "plural.y"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1045 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1046 yyval.exp = new_exp_2 (lor, yyvsp[-2].exp, yyvsp[0].exp);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1047 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1048 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1049 case 4:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1050 #line 191 "plural.y"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1051 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1052 yyval.exp = new_exp_2 (land, yyvsp[-2].exp, yyvsp[0].exp);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1053 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1054 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1055 case 5:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1056 #line 195 "plural.y"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1057 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1058 yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1059 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1060 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1061 case 6:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1062 #line 199 "plural.y"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1063 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1064 yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1065 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1066 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1067 case 7:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1068 #line 203 "plural.y"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1069 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1070 yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1071 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1072 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1073 case 8:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1074 #line 207 "plural.y"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1075 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1076 yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1077 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1078 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1079 case 9:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1080 #line 211 "plural.y"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1081 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1082 yyval.exp = new_exp_1 (lnot, yyvsp[0].exp);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1083 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1084 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1085 case 10:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1086 #line 215 "plural.y"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1087 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1088 yyval.exp = new_exp_0 (var);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1089 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1090 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1091 case 11:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1092 #line 219 "plural.y"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1093 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1094 if ((yyval.exp = new_exp_0 (num)) != NULL)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1095 yyval.exp->val.num = yyvsp[0].num;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1096 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1097 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1098 case 12:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1099 #line 224 "plural.y"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1100 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1101 yyval.exp = yyvsp[-1].exp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1102 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1103 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1104 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1105
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1106 #line 705 "/usr/local/share/bison/bison.simple"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1107
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1108
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1109 yyvsp -= yylen;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1110 yyssp -= yylen;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1111 #if YYLSP_NEEDED
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1112 yylsp -= yylen;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1113 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1114
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1115 #if YYDEBUG
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1116 if (yydebug)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1117 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1118 short *yyssp1 = yyss - 1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1119 YYFPRINTF (stderr, "state stack now");
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1120 while (yyssp1 != yyssp)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1121 YYFPRINTF (stderr, " %d", *++yyssp1);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1122 YYFPRINTF (stderr, "\n");
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1123 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1124 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1125
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1126 *++yyvsp = yyval;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1127 #if YYLSP_NEEDED
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1128 *++yylsp = yyloc;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1129 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1130
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1131 /* Now `shift' the result of the reduction. Determine what state
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1132 that goes to, based on the state we popped back to and the rule
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1133 number reduced by. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1134
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1135 yyn = yyr1[yyn];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1136
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1137 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1138 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1139 yystate = yytable[yystate];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1140 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1141 yystate = yydefgoto[yyn - YYNTBASE];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1142
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1143 goto yynewstate;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1144
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1145
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1146 /*------------------------------------.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1147 | yyerrlab -- here on detecting error |
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1148 `------------------------------------*/
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1149 yyerrlab:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1150 /* If not already recovering from an error, report this error. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1151 if (!yyerrstatus)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1152 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1153 ++yynerrs;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1154
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1155 #ifdef YYERROR_VERBOSE
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1156 yyn = yypact[yystate];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1157
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1158 if (yyn > YYFLAG && yyn < YYLAST)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1159 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1160 YYSIZE_T yysize = 0;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1161 char *yymsg;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1162 int yyx, yycount;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1163
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1164 yycount = 0;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1165 /* Start YYX at -YYN if negative to avoid negative indexes in
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1166 YYCHECK. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1167 for (yyx = yyn < 0 ? -yyn : 0;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1168 yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1169 if (yycheck[yyx + yyn] == yyx)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1170 yysize += yystrlen (yytname[yyx]) + 15, yycount++;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1171 yysize += yystrlen ("parse error, unexpected ") + 1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1172 yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1173 yymsg = (char *) YYSTACK_ALLOC (yysize);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1174 if (yymsg != 0)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1175 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1176 char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1177 yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1178
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1179 if (yycount < 5)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1180 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1181 yycount = 0;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1182 for (yyx = yyn < 0 ? -yyn : 0;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1183 yyx < (int) (sizeof (yytname) / sizeof (char *));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1184 yyx++)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1185 if (yycheck[yyx + yyn] == yyx)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1186 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1187 const char *yyq = ! yycount ? ", expecting " : " or ";
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1188 yyp = yystpcpy (yyp, yyq);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1189 yyp = yystpcpy (yyp, yytname[yyx]);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1190 yycount++;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1191 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1192 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1193 yyerror (yymsg);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1194 YYSTACK_FREE (yymsg);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1195 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1196 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1197 yyerror ("parse error; also virtual memory exhausted");
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1198 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1199 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1200 #endif /* defined (YYERROR_VERBOSE) */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1201 yyerror ("parse error");
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1202 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1203 goto yyerrlab1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1204
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1205
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1206 /*--------------------------------------------------.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1207 | yyerrlab1 -- error raised explicitly by an action |
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1208 `--------------------------------------------------*/
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1209 yyerrlab1:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1210 if (yyerrstatus == 3)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1211 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1212 /* If just tried and failed to reuse lookahead token after an
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1213 error, discard it. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1214
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1215 /* return failure if at end of input */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1216 if (yychar == YYEOF)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1217 YYABORT;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1218 YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1219 yychar, yytname[yychar1]));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1220 yychar = YYEMPTY;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1221 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1222
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1223 /* Else will try to reuse lookahead token after shifting the error
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1224 token. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1225
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1226 yyerrstatus = 3; /* Each real token shifted decrements this */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1227
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1228 goto yyerrhandle;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1229
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1230
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1231 /*-------------------------------------------------------------------.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1232 | yyerrdefault -- current state does not do anything special for the |
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1233 | error token. |
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1234 `-------------------------------------------------------------------*/
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1235 yyerrdefault:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1236 #if 0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1237 /* This is wrong; only states that explicitly want error tokens
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1238 should shift them. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1239
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1240 /* If its default is to accept any token, ok. Otherwise pop it. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1241 yyn = yydefact[yystate];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1242 if (yyn)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1243 goto yydefault;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1244 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1245
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1246
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1247 /*---------------------------------------------------------------.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1248 | yyerrpop -- pop the current state because it cannot handle the |
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1249 | error token |
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1250 `---------------------------------------------------------------*/
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1251 yyerrpop:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1252 if (yyssp == yyss)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1253 YYABORT;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1254 yyvsp--;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1255 yystate = *--yyssp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1256 #if YYLSP_NEEDED
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1257 yylsp--;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1258 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1259
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1260 #if YYDEBUG
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1261 if (yydebug)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1262 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1263 short *yyssp1 = yyss - 1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1264 YYFPRINTF (stderr, "Error: state stack now");
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1265 while (yyssp1 != yyssp)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1266 YYFPRINTF (stderr, " %d", *++yyssp1);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1267 YYFPRINTF (stderr, "\n");
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1268 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1269 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1270
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1271 /*--------------.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1272 | yyerrhandle. |
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1273 `--------------*/
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1274 yyerrhandle:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1275 yyn = yypact[yystate];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1276 if (yyn == YYFLAG)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1277 goto yyerrdefault;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1278
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1279 yyn += YYTERROR;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1280 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1281 goto yyerrdefault;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1282
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1283 yyn = yytable[yyn];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1284 if (yyn < 0)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1285 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1286 if (yyn == YYFLAG)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1287 goto yyerrpop;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1288 yyn = -yyn;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1289 goto yyreduce;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1290 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1291 else if (yyn == 0)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1292 goto yyerrpop;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1293
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1294 if (yyn == YYFINAL)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1295 YYACCEPT;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1296
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1297 YYDPRINTF ((stderr, "Shifting error token, "));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1298
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1299 *++yyvsp = yylval;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1300 #if YYLSP_NEEDED
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1301 *++yylsp = yylloc;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1302 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1303
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1304 yystate = yyn;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1305 goto yynewstate;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1306
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1307
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1308 /*-------------------------------------.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1309 | yyacceptlab -- YYACCEPT comes here. |
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1310 `-------------------------------------*/
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1311 yyacceptlab:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1312 yyresult = 0;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1313 goto yyreturn;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1314
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1315 /*-----------------------------------.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1316 | yyabortlab -- YYABORT comes here. |
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1317 `-----------------------------------*/
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1318 yyabortlab:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1319 yyresult = 1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1320 goto yyreturn;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1321
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1322 /*---------------------------------------------.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1323 | yyoverflowab -- parser overflow comes here. |
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1324 `---------------------------------------------*/
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1325 yyoverflowlab:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1326 yyerror ("parser stack overflow");
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1327 yyresult = 2;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1328 /* Fall through. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1329
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1330 yyreturn:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1331 #ifndef yyoverflow
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1332 if (yyss != yyssa)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1333 YYSTACK_FREE (yyss);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1334 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1335 return yyresult;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1336 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1337 #line 229 "plural.y"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1338
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1339
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1340 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1341 internal_function
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1342 FREE_EXPRESSION (exp)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1343 struct expression *exp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1344 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1345 if (exp == NULL)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1346 return;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1347
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1348 /* Handle the recursive case. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1349 switch (exp->nargs)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1350 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1351 case 3:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1352 FREE_EXPRESSION (exp->val.args[2]);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1353 /* FALLTHROUGH */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1354 case 2:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1355 FREE_EXPRESSION (exp->val.args[1]);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1356 /* FALLTHROUGH */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1357 case 1:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1358 FREE_EXPRESSION (exp->val.args[0]);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1359 /* FALLTHROUGH */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1360 default:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1361 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1362 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1363
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1364 free (exp);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1365 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1366
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1367
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1368 static int
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1369 yylex (lval, pexp)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1370 YYSTYPE *lval;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1371 const char **pexp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1372 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1373 const char *exp = *pexp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1374 int result;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1375
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1376 while (1)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1377 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1378 if (exp[0] == '\0')
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1379 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1380 *pexp = exp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1381 return YYEOF;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1382 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1383
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1384 if (exp[0] != ' ' && exp[0] != '\t')
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1385 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1386
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1387 ++exp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1388 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1389
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1390 result = *exp++;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1391 switch (result)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1392 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1393 case '0': case '1': case '2': case '3': case '4':
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1394 case '5': case '6': case '7': case '8': case '9':
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1395 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1396 unsigned long int n = result - '0';
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1397 while (exp[0] >= '0' && exp[0] <= '9')
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1398 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1399 n *= 10;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1400 n += exp[0] - '0';
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1401 ++exp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1402 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1403 lval->num = n;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1404 result = NUMBER;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1405 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1406 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1407
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1408 case '=':
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1409 if (exp[0] == '=')
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1410 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1411 ++exp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1412 lval->op = equal;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1413 result = EQUOP2;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1414 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1415 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1416 result = YYERRCODE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1417 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1418
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1419 case '!':
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1420 if (exp[0] == '=')
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1421 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1422 ++exp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1423 lval->op = not_equal;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1424 result = EQUOP2;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1425 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1426 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1427
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1428 case '&':
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1429 case '|':
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1430 if (exp[0] == result)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1431 ++exp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1432 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1433 result = YYERRCODE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1434 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1435
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1436 case '<':
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1437 if (exp[0] == '=')
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1438 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1439 ++exp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1440 lval->op = less_or_equal;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1441 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1442 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1443 lval->op = less_than;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1444 result = CMPOP2;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1445 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1446
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1447 case '>':
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1448 if (exp[0] == '=')
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1449 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1450 ++exp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1451 lval->op = greater_or_equal;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1452 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1453 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1454 lval->op = greater_than;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1455 result = CMPOP2;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1456 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1457
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1458 case '*':
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1459 lval->op = mult;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1460 result = MULOP2;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1461 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1462
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1463 case '/':
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1464 lval->op = divide;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1465 result = MULOP2;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1466 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1467
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1468 case '%':
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1469 lval->op = module;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1470 result = MULOP2;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1471 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1472
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1473 case '+':
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1474 lval->op = plus;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1475 result = ADDOP2;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1476 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1477
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1478 case '-':
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1479 lval->op = minus;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1480 result = ADDOP2;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1481 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1482
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1483 case 'n':
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1484 case '?':
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1485 case ':':
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1486 case '(':
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1487 case ')':
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1488 /* Nothing, just return the character. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1489 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1490
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1491 case ';':
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1492 case '\n':
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1493 case '\0':
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1494 /* Be safe and let the user call this function again. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1495 --exp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1496 result = YYEOF;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1497 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1498
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1499 default:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1500 result = YYERRCODE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1501 #if YYDEBUG != 0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1502 --exp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1503 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1504 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1505 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1506
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1507 *pexp = exp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1508
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1509 return result;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1510 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1511
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1512
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1513 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1514 yyerror (str)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1515 const char *str;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1516 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1517 /* Do nothing. We don't print error messages here. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1518 }