1 /* A Bison parser, made by GNU Bison 3.4.1. */ 2 3 /* Bison interface for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, 6 Inc. 7 8 This program is free software: you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation, either version 3 of the License, or 11 (at your option) any later version. 12 13 This program is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 20 21 /* As a special exception, you may create a larger work that contains 22 part or all of the Bison parser skeleton and distribute that work 23 under terms of your choice, so long as that work isn't itself a 24 parser generator using the skeleton or a modified version thereof 25 as a parser skeleton. Alternatively, if you modify or redistribute 26 the parser skeleton itself, you may (at your option) remove this 27 special exception, which will cause the skeleton and the resulting 28 Bison output files to be licensed under the GNU General Public 29 License without this special exception. 30 31 This special exception was added by the Free Software Foundation in 32 version 2.2 of Bison. */ 33 34 /* Undocumented macros, especially those whose name start with YY_, 35 are private implementation details. Do not rely on them. */ 36 37 #ifndef YY_YY_Y_TAB_H_INCLUDED 38 # define YY_YY_Y_TAB_H_INCLUDED 39 /* Debug traces. */ 40 #ifndef YYDEBUG 41 # define YYDEBUG 0 42 #endif 43 #if YYDEBUG 44 extern int yydebug; 45 #endif 46 47 /* Token type. */ 48 #ifndef YYTOKENTYPE 49 # define YYTOKENTYPE 50 enum yytokentype 51 { 52 FIRSTTOKEN = 258, 53 PROGRAM = 259, 54 PASTAT = 260, 55 PASTAT2 = 261, 56 XBEGIN = 262, 57 XEND = 263, 58 NL = 264, 59 ARRAY = 265, 60 MATCH = 266, 61 NOTMATCH = 267, 62 MATCHOP = 268, 63 FINAL = 269, 64 DOT = 270, 65 ALL = 271, 66 CCL = 272, 67 NCCL = 273, 68 CHAR = 274, 69 OR = 275, 70 STAR = 276, 71 QUEST = 277, 72 PLUS = 278, 73 EMPTYRE = 279, 74 ZERO = 280, 75 AND = 281, 76 BOR = 282, 77 APPEND = 283, 78 EQ = 284, 79 GE = 285, 80 GT = 286, 81 LE = 287, 82 LT = 288, 83 NE = 289, 84 IN = 290, 85 ARG = 291, 86 BLTIN = 292, 87 BREAK = 293, 88 CLOSE = 294, 89 CONTINUE = 295, 90 DELETE = 296, 91 DO = 297, 92 EXIT = 298, 93 FOR = 299, 94 FUNC = 300, 95 SUB = 301, 96 GSUB = 302, 97 IF = 303, 98 INDEX = 304, 99 LSUBSTR = 305, 100 MATCHFCN = 306, 101 NEXT = 307, 102 NEXTFILE = 308, 103 ADD = 309, 104 MINUS = 310, 105 MULT = 311, 106 DIVIDE = 312, 107 MOD = 313, 108 ASSIGN = 314, 109 ASGNOP = 315, 110 ADDEQ = 316, 111 SUBEQ = 317, 112 MULTEQ = 318, 113 DIVEQ = 319, 114 MODEQ = 320, 115 POWEQ = 321, 116 PRINT = 322, 117 PRINTF = 323, 118 SPRINTF = 324, 119 ELSE = 325, 120 INTEST = 326, 121 CONDEXPR = 327, 122 POSTINCR = 328, 123 PREINCR = 329, 124 POSTDECR = 330, 125 PREDECR = 331, 126 VAR = 332, 127 IVAR = 333, 128 VARNF = 334, 129 CALL = 335, 130 NUMBER = 336, 131 STRING = 337, 132 REGEXPR = 338, 133 GETLINE = 339, 134 RETURN = 340, 135 SPLIT = 341, 136 SUBSTR = 342, 137 WHILE = 343, 138 CAT = 344, 139 NOT = 345, 140 UMINUS = 346, 141 UPLUS = 347, 142 POWER = 348, 143 DECR = 349, 144 INCR = 350, 145 INDIRECT = 351, 146 LASTTOKEN = 352 147 }; 148 #endif 149 /* Tokens. */ 150 #define FIRSTTOKEN 258 151 #define PROGRAM 259 152 #define PASTAT 260 153 #define PASTAT2 261 154 #define XBEGIN 262 155 #define XEND 263 156 #define NL 264 157 #define ARRAY 265 158 #define MATCH 266 159 #define NOTMATCH 267 160 #define MATCHOP 268 161 #define FINAL 269 162 #define DOT 270 163 #define ALL 271 164 #define CCL 272 165 #define NCCL 273 166 #define CHAR 274 167 #define OR 275 168 #define STAR 276 169 #define QUEST 277 170 #define PLUS 278 171 #define EMPTYRE 279 172 #define ZERO 280 173 #define AND 281 174 #define BOR 282 175 #define APPEND 283 176 #define EQ 284 177 #define GE 285 178 #define GT 286 179 #define LE 287 180 #define LT 288 181 #define NE 289 182 #define IN 290 183 #define ARG 291 184 #define BLTIN 292 185 #define BREAK 293 186 #define CLOSE 294 187 #define CONTINUE 295 188 #define DELETE 296 189 #define DO 297 190 #define EXIT 298 191 #define FOR 299 192 #define FUNC 300 193 #define SUB 301 194 #define GSUB 302 195 #define IF 303 196 #define INDEX 304 197 #define LSUBSTR 305 198 #define MATCHFCN 306 199 #define NEXT 307 200 #define NEXTFILE 308 201 #define ADD 309 202 #define MINUS 310 203 #define MULT 311 204 #define DIVIDE 312 205 #define MOD 313 206 #define ASSIGN 314 207 #define ASGNOP 315 208 #define ADDEQ 316 209 #define SUBEQ 317 210 #define MULTEQ 318 211 #define DIVEQ 319 212 #define MODEQ 320 213 #define POWEQ 321 214 #define PRINT 322 215 #define PRINTF 323 216 #define SPRINTF 324 217 #define ELSE 325 218 #define INTEST 326 219 #define CONDEXPR 327 220 #define POSTINCR 328 221 #define PREINCR 329 222 #define POSTDECR 330 223 #define PREDECR 331 224 #define VAR 332 225 #define IVAR 333 226 #define VARNF 334 227 #define CALL 335 228 #define NUMBER 336 229 #define STRING 337 230 #define REGEXPR 338 231 #define GETLINE 339 232 #define RETURN 340 233 #define SPLIT 341 234 #define SUBSTR 342 235 #define WHILE 343 236 #define CAT 344 237 #define NOT 345 238 #define UMINUS 346 239 #define UPLUS 347 240 #define POWER 348 241 #define DECR 349 242 #define INCR 350 243 #define INDIRECT 351 244 #define LASTTOKEN 352 245 246 /* Value type. */ 247 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 248 union YYSTYPE 249 { 250 #line 41 "awkgram.y" 251 252 Node *p; 253 Cell *cp; 254 int i; 255 char *s; 256 257 #line 258 "y.tab.h" 258 259 }; 260 typedef union YYSTYPE YYSTYPE; 261 # define YYSTYPE_IS_TRIVIAL 1 262 # define YYSTYPE_IS_DECLARED 1 263 #endif 264 265 266 extern YYSTYPE yylval; 267 268 int yyparse (void); 269 270 #endif /* !YY_YY_Y_TAB_H_INCLUDED */ 271