1 /* A Bison parser, made by GNU Bison 3.0.5.  */
2 
3 /* Bison interface for Yacc-like parsers in C
4 
5    Copyright (C) 1984, 1989-1990, 2000-2015, 2018 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     UPLUS = 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 FOR 315
193 #define WHILE 316
194 #define DO 317
195 #define BREAK 318
196 #define CONTINUE 319
197 #define TRY 320
198 #define CATCH 321
199 #define RETURN 322
200 #define FLEX_ERROR 323
201 #define STR 324
202 #define ID 325
203 #define VARINT 326
204 #define VARFLOAT 327
205 #define NUM 328
206 #define PATH 329
207 #define COMMENT 330
208 #define BLOCKCOMMENT 331
209 #define TOPLEVEL 332
210 #define HIGHLEVEL 333
211 #define UPLEVEL 334
212 #define LISTABLE 335
213 #define CONTROLBREAK 336
214 #define UMINUS 337
215 #define UPLUS 338
216 #define FUNCTIONCALL 339
217 
218 /* Value type.  */
219 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
220 
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 
281 typedef union YYSTYPE YYSTYPE;
282 # define YYSTYPE_IS_TRIVIAL 1
283 # define YYSTYPE_IS_DECLARED 1
284 #endif
285 
286 /* Location type.  */
287 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
288 typedef struct YYLTYPE YYLTYPE;
289 struct YYLTYPE
290 {
291   int first_line;
292   int first_column;
293   int last_line;
294   int last_column;
295 };
296 # define YYLTYPE_IS_DECLARED 1
297 # define YYLTYPE_IS_TRIVIAL 1
298 #endif
299 
300 
301 extern YYSTYPE yylval;
302 extern YYLTYPE yylloc;
303 int yyparse (void);
304 
305 #endif /* !YY_YY_Y_TAB_H_INCLUDED  */
306