fix precedence of uminus in operation
[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     HIDDENFUNCTION = 315,
107     HIDDEN = 316,
108     FOR = 317,
109     WHILE = 318,
110     DO = 319,
111     BREAK = 320,
112     CONTINUE = 321,
113     TRY = 322,
114     CATCH = 323,
115     RETURN = 324,
116     STR = 325,
117     ID = 326,
118     VARINT = 327,
119     VARFLOAT = 328,
120     NUM = 329,
121     PATH = 330,
122     COMMENT = 331,
123     BLOCKCOMMENT = 332,
124     TOPLEVEL = 333,
125     HIGHLEVEL = 334,
126     UPLEVEL = 335,
127     LISTABLE = 336,
128     CONTROLBREAK = 337,
129     UMINUS = 338,
130     FUNCTIONCALL = 339
131   };
132 #endif
133 /* Tokens.  */
134 #define YYEOF 0
135 #define DOTS 258
136 #define EOL 259
137 #define SPACES 260
138 #define BOOLTRUE 261
139 #define BOOLFALSE 262
140 #define QUOTE 263
141 #define NOT 264
142 #define DOLLAR 265
143 #define COMMA 266
144 #define COLON 267
145 #define SEMI 268
146 #define LPAREN 269
147 #define RPAREN 270
148 #define LBRACK 271
149 #define RBRACK 272
150 #define LBRACE 273
151 #define RBRACE 274
152 #define DOT 275
153 #define DOTQUOTE 276
154 #define PLUS 277
155 #define MINUS 278
156 #define TIMES 279
157 #define DOTTIMES 280
158 #define KRONTIMES 281
159 #define CONTROLTIMES 282
160 #define RDIVIDE 283
161 #define DOTRDIVIDE 284
162 #define CONTROLRDIVIDE 285
163 #define KRONRDIVIDE 286
164 #define LDIVIDE 287
165 #define DOTLDIVIDE 288
166 #define CONTROLLDIVIDE 289
167 #define KRONLDIVIDE 290
168 #define POWER 291
169 #define DOTPOWER 292
170 #define EQ 293
171 #define NE 294
172 #define LT 295
173 #define LE 296
174 #define GT 297
175 #define GE 298
176 #define AND 299
177 #define ANDAND 300
178 #define OR 301
179 #define OROR 302
180 #define ASSIGN 303
181 #define IF 304
182 #define THEN 305
183 #define ELSE 306
184 #define ELSEIF 307
185 #define END 308
186 #define SELECT 309
187 #define SWITCH 310
188 #define CASE 311
189 #define OTHERWISE 312
190 #define FUNCTION 313
191 #define ENDFUNCTION 314
192 #define HIDDENFUNCTION 315
193 #define HIDDEN 316
194 #define FOR 317
195 #define WHILE 318
196 #define DO 319
197 #define BREAK 320
198 #define CONTINUE 321
199 #define TRY 322
200 #define CATCH 323
201 #define RETURN 324
202 #define STR 325
203 #define ID 326
204 #define VARINT 327
205 #define VARFLOAT 328
206 #define NUM 329
207 #define PATH 330
208 #define COMMENT 331
209 #define BLOCKCOMMENT 332
210 #define TOPLEVEL 333
211 #define HIGHLEVEL 334
212 #define UPLEVEL 335
213 #define LISTABLE 336
214 #define CONTROLBREAK 337
215 #define UMINUS 338
216 #define FUNCTIONCALL 339
217
218 /* Value type.  */
219 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
220 typedef union YYSTYPE YYSTYPE;
221 union YYSTYPE
222 {
223
224
225   /* Tokens. */
226     double                      number;
227     std::wstring*               str;
228     std::wstring*               path;
229     std::wstring*               comment;
230
231     LineBreakStr*               mute;
232
233     ast::exps_t*                t_list_var;
234     ast::exps_t*                t_list_exp;
235     ast::Exp*                   t_exp;
236
237     ast::SeqExp*                t_seq_exp;
238     ast::ReturnExp*             t_return_exp;
239
240     ast::IfExp*                 t_if_exp;
241     ast::WhileExp*              t_while_exp;
242     ast::ForExp*                t_for_exp;
243     ast::TryCatchExp*           t_try_exp;
244     ast::SelectExp*             t_select_exp;
245     ast::CaseExp*               t_case_exp;
246     ast::exps_t*                t_list_case;
247
248     ast::CallExp*               t_call_exp;
249
250     ast::MathExp*               t_math_exp;
251
252     ast::OpExp*                 t_op_exp;
253     ast::OpExp::Oper            t_op_exp_oper;
254     ast::LogicalOpExp::Oper     t_lop_exp_oper;
255
256     ast::AssignExp*             t_assign_exp;
257
258     ast::StringExp*             t_string_exp;
259
260     ast::ListExp*               t_implicit_list;
261
262     ast::MatrixExp*             t_matrix_exp;
263     ast::MatrixLineExp*         t_matrixline_exp;
264     ast::exps_t*                t_list_mline;
265
266     ast::CellExp*               t_cell_exp;
267
268     ast::CellCallExp*           t_cell_call_exp;
269
270     ast::FunctionDec*           t_function_dec;
271
272     ast::ArrayListExp*          t_arraylist_exp;
273     ast::AssignListExp*         t_assignlist_exp;
274     ast::ArrayListVar*          t_arraylist_var;
275
276     ast::SimpleVar*             t_simple_var;
277
278
279 };
280 # define YYSTYPE_IS_TRIVIAL 1
281 # define YYSTYPE_IS_DECLARED 1
282 #endif
283
284 /* Location type.  */
285 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
286 typedef struct YYLTYPE YYLTYPE;
287 struct YYLTYPE
288 {
289   int first_line;
290   int first_column;
291   int last_line;
292   int last_column;
293 };
294 # define YYLTYPE_IS_DECLARED 1
295 # define YYLTYPE_IS_TRIVIAL 1
296 #endif
297
298
299 extern YYSTYPE yylval;
300 extern YYLTYPE yylloc;
301 int yyparse (void);
302
303 #endif /* !YY_YY_Y_TAB_H_INCLUDED  */