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