* Bug 15599 fixed: now degree of zero polynomial is -Inf
[scilab.git] / scilab / modules / ast / includes / parse / parsescilab.hxx
1 /* A Bison parser, made by GNU Bison 3.0.2.  */
2
3 /* Bison interface for Yacc-like parsers in C
4
5    Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
6
7    This program is free software: you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation, either version 3 of the License, or
10    (at your option) any later version.
11
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16
17    You should have received a copy of the GNU General Public License
18    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19
20 /* As a special exception, you may create a larger work that contains
21    part or all of the Bison parser skeleton and distribute that work
22    under terms of your choice, so long as that work isn't itself a
23    parser generator using the skeleton or a modified version thereof
24    as a parser skeleton.  Alternatively, if you modify or redistribute
25    the parser skeleton itself, you may (at your option) remove this
26    special exception, which will cause the skeleton and the resulting
27    Bison output files to be licensed under the GNU General Public
28    License without this special exception.
29
30    This special exception was added by the Free Software Foundation in
31    version 2.2 of Bison.  */
32
33 #ifndef YY_YY_Y_TAB_H_INCLUDED
34 # define YY_YY_Y_TAB_H_INCLUDED
35 /* Debug traces.  */
36 #ifndef YYDEBUG
37 # define YYDEBUG 1
38 #endif
39 #if YYDEBUG
40 extern int yydebug;
41 #endif
42
43 /* Token type.  */
44 #ifndef YYTOKENTYPE
45 # define YYTOKENTYPE
46   enum yytokentype
47   {
48     YYEOF = 0,
49     DOTS = 258,
50     EOL = 259,
51     SPACES = 260,
52     BOOLTRUE = 261,
53     BOOLFALSE = 262,
54     QUOTE = 263,
55     NOT = 264,
56     DOLLAR = 265,
57     COMMA = 266,
58     COLON = 267,
59     SEMI = 268,
60     LPAREN = 269,
61     RPAREN = 270,
62     LBRACK = 271,
63     RBRACK = 272,
64     LBRACE = 273,
65     RBRACE = 274,
66     DOT = 275,
67     DOTQUOTE = 276,
68     PLUS = 277,
69     MINUS = 278,
70     TIMES = 279,
71     DOTTIMES = 280,
72     KRONTIMES = 281,
73     CONTROLTIMES = 282,
74     RDIVIDE = 283,
75     DOTRDIVIDE = 284,
76     CONTROLRDIVIDE = 285,
77     KRONRDIVIDE = 286,
78     LDIVIDE = 287,
79     DOTLDIVIDE = 288,
80     CONTROLLDIVIDE = 289,
81     KRONLDIVIDE = 290,
82     POWER = 291,
83     DOTPOWER = 292,
84     EQ = 293,
85     NE = 294,
86     LT = 295,
87     LE = 296,
88     GT = 297,
89     GE = 298,
90     AND = 299,
91     ANDAND = 300,
92     OR = 301,
93     OROR = 302,
94     ASSIGN = 303,
95     IF = 304,
96     THEN = 305,
97     ELSE = 306,
98     ELSEIF = 307,
99     END = 308,
100     SELECT = 309,
101     SWITCH = 310,
102     CASE = 311,
103     OTHERWISE = 312,
104     FUNCTION = 313,
105     ENDFUNCTION = 314,
106     FOR = 315,
107     WHILE = 316,
108     DO = 317,
109     BREAK = 318,
110     CONTINUE = 319,
111     TRY = 320,
112     CATCH = 321,
113     RETURN = 322,
114     FLEX_ERROR = 323,
115     STR = 324,
116     ID = 325,
117     VARINT = 326,
118     VARFLOAT = 327,
119     NUM = 328,
120     PATH = 329,
121     COMMENT = 330,
122     BLOCKCOMMENT = 331,
123     TOPLEVEL = 332,
124     HIGHLEVEL = 333,
125     UPLEVEL = 334,
126     LISTABLE = 335,
127     CONTROLBREAK = 336,
128     UMINUS = 337,
129     FUNCTIONCALL = 338
130   };
131 #endif
132 /* Tokens.  */
133 #define YYEOF 0
134 #define DOTS 258
135 #define EOL 259
136 #define SPACES 260
137 #define BOOLTRUE 261
138 #define BOOLFALSE 262
139 #define QUOTE 263
140 #define NOT 264
141 #define DOLLAR 265
142 #define COMMA 266
143 #define COLON 267
144 #define SEMI 268
145 #define LPAREN 269
146 #define RPAREN 270
147 #define LBRACK 271
148 #define RBRACK 272
149 #define LBRACE 273
150 #define RBRACE 274
151 #define DOT 275
152 #define DOTQUOTE 276
153 #define PLUS 277
154 #define MINUS 278
155 #define TIMES 279
156 #define DOTTIMES 280
157 #define KRONTIMES 281
158 #define CONTROLTIMES 282
159 #define RDIVIDE 283
160 #define DOTRDIVIDE 284
161 #define CONTROLRDIVIDE 285
162 #define KRONRDIVIDE 286
163 #define LDIVIDE 287
164 #define DOTLDIVIDE 288
165 #define CONTROLLDIVIDE 289
166 #define KRONLDIVIDE 290
167 #define POWER 291
168 #define DOTPOWER 292
169 #define EQ 293
170 #define NE 294
171 #define LT 295
172 #define LE 296
173 #define GT 297
174 #define GE 298
175 #define AND 299
176 #define ANDAND 300
177 #define OR 301
178 #define OROR 302
179 #define ASSIGN 303
180 #define IF 304
181 #define THEN 305
182 #define ELSE 306
183 #define ELSEIF 307
184 #define END 308
185 #define SELECT 309
186 #define SWITCH 310
187 #define CASE 311
188 #define OTHERWISE 312
189 #define FUNCTION 313
190 #define ENDFUNCTION 314
191 #define FOR 315
192 #define WHILE 316
193 #define DO 317
194 #define BREAK 318
195 #define CONTINUE 319
196 #define TRY 320
197 #define CATCH 321
198 #define RETURN 322
199 #define FLEX_ERROR 323
200 #define STR 324
201 #define ID 325
202 #define VARINT 326
203 #define VARFLOAT 327
204 #define NUM 328
205 #define PATH 329
206 #define COMMENT 330
207 #define BLOCKCOMMENT 331
208 #define TOPLEVEL 332
209 #define HIGHLEVEL 333
210 #define UPLEVEL 334
211 #define LISTABLE 335
212 #define CONTROLBREAK 336
213 #define UMINUS 337
214 #define FUNCTIONCALL 338
215
216 /* Value type.  */
217 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
218 typedef union YYSTYPE YYSTYPE;
219 union YYSTYPE
220 {
221
222
223   /* Tokens. */
224     double                      number;
225     std::wstring*               str;
226     std::wstring*               path;
227     std::wstring*               comment;
228
229     LineBreakStr*               mute;
230
231     ast::exps_t*                t_list_var;
232     ast::exps_t*                t_list_exp;
233     ast::Exp*                   t_exp;
234
235     ast::SeqExp*                t_seq_exp;
236     ast::ReturnExp*             t_return_exp;
237
238     ast::IfExp*                 t_if_exp;
239     ast::WhileExp*              t_while_exp;
240     ast::ForExp*                t_for_exp;
241     ast::TryCatchExp*           t_try_exp;
242     ast::SelectExp*             t_select_exp;
243     ast::CaseExp*               t_case_exp;
244     ast::exps_t*                t_list_case;
245
246     ast::CallExp*               t_call_exp;
247
248     ast::MathExp*               t_math_exp;
249
250     ast::OpExp*                 t_op_exp;
251     ast::OpExp::Oper            t_op_exp_oper;
252     ast::LogicalOpExp::Oper     t_lop_exp_oper;
253
254     ast::AssignExp*             t_assign_exp;
255
256     ast::StringExp*             t_string_exp;
257
258     ast::ListExp*               t_implicit_list;
259
260     ast::MatrixExp*             t_matrix_exp;
261     ast::MatrixLineExp*         t_matrixline_exp;
262     ast::exps_t*                t_list_mline;
263
264     ast::CellExp*               t_cell_exp;
265
266     ast::CellCallExp*           t_cell_call_exp;
267
268     ast::FunctionDec*           t_function_dec;
269
270     ast::ArrayListExp*          t_arraylist_exp;
271     ast::AssignListExp*         t_assignlist_exp;
272     ast::ArrayListVar*          t_arraylist_var;
273
274     ast::SimpleVar*             t_simple_var;
275
276
277 };
278 # define YYSTYPE_IS_TRIVIAL 1
279 # define YYSTYPE_IS_DECLARED 1
280 #endif
281
282 /* Location type.  */
283 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
284 typedef struct YYLTYPE YYLTYPE;
285 struct YYLTYPE
286 {
287   int first_line;
288   int first_column;
289   int last_line;
290   int last_column;
291 };
292 # define YYLTYPE_IS_DECLARED 1
293 # define YYLTYPE_IS_TRIVIAL 1
294 #endif
295
296
297 extern YYSTYPE yylval;
298 extern YYLTYPE yylloc;
299 int yyparse (void);
300
301 #endif /* !YY_YY_Y_TAB_H_INCLUDED  */