Fix grammar conflict : remove duplicate rule / manage empty function call arguments
[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     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 HIDDENFUNCTION 315
192 #define HIDDEN 316
193 #define FOR 317
194 #define WHILE 318
195 #define DO 319
196 #define BREAK 320
197 #define CONTINUE 321
198 #define TRY 322
199 #define CATCH 323
200 #define RETURN 324
201 #define STR 325
202 #define ID 326
203 #define VARINT 327
204 #define VARFLOAT 328
205 #define NUM 329
206 #define PATH 330
207 #define COMMENT 331
208 #define BLOCKCOMMENT 332
209 #define TOPLEVEL 333
210 #define HIGHLEVEL 334
211 #define UPLEVEL 335
212 #define LISTABLE 336
213 #define CONTROLBREAK 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::vars_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::cases_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     std::list<ast::MatrixLineExp *>*            \
263                                 t_list_mline;
264
265     ast::CellExp*               t_cell_exp;
266
267     ast::CellCallExp*           t_cell_call_exp;
268
269     ast::FunctionDec*           t_function_dec;
270
271     ast::ArrayListExp*          t_arraylist_exp;
272     ast::AssignListExp*         t_assignlist_exp;
273     ast::ArrayListVar*          t_arraylist_var;
274
275     ast::SimpleVar*             t_simple_var;
276
277
278 };
279 # define YYSTYPE_IS_TRIVIAL 1
280 # define YYSTYPE_IS_DECLARED 1
281 #endif
282
283 /* Location type.  */
284 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
285 typedef struct YYLTYPE YYLTYPE;
286 struct YYLTYPE
287 {
288   int first_line;
289   int first_column;
290   int last_line;
291   int last_column;
292 };
293 # define YYLTYPE_IS_DECLARED 1
294 # define YYLTYPE_IS_TRIVIAL 1
295 #endif
296
297
298 extern YYSTYPE yylval;
299 extern YYLTYPE yylloc;
300 int yyparse (void);
301
302 #endif /* !YY_YY_Y_TAB_H_INCLUDED  */