annotate intl/plural.c @ 1096:9b4e9be457f0 trunk

[svn] - remove improper sampling rate change condition. Valid MP3s will not do this. Infact, I've never seen an MP3 that does this. Additionally, it doesn't even work with Shoutcast.
author nenolod
date Mon, 22 May 2006 16:37:39 -0700
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 }