/* A Bison parser, made by GNU Bison 3.0.4. */ /* Bison interface for Yacc-like parsers in C Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ #ifndef YY_YY_GRAM_H_INCLUDED # define YY_YY_GRAM_H_INCLUDED /* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif #if YYDEBUG extern int yydebug; #endif /* Token type. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { T_ACCEPT = 258, T_REJECT = 259, T_TEMPFAIL = 260, T_CONTINUE = 261, T_DISCARD = 262, T_ADD = 263, T_REPLACE = 264, T_DELETE = 265, T_PROG = 266, T_BEGIN = 267, T_END = 268, T_IF = 269, T_FI = 270, T_ELSE = 271, T_ELIF = 272, T_ON = 273, T_HOST = 274, T_FROM = 275, T_AS = 276, T_DO = 277, T_DONE = 278, T_POLL = 279, T_MATCHES = 280, T_FNMATCHES = 281, T_MXMATCHES = 282, T_MXFNMATCHES = 283, T_WHEN = 284, T_PASS = 285, T_SET = 286, T_CATCH = 287, T_TRY = 288, T_THROW = 289, T_ECHO = 290, T_RETURNS = 291, T_RETURN = 292, T_FUNC = 293, T_SWITCH = 294, T_CASE = 295, T_DEFAULT = 296, T_CONST = 297, T_FOR = 298, T_LOOP = 299, T_WHILE = 300, T_BREAK = 301, T_NEXT = 302, T_ARGCOUNT = 303, T_ALIAS = 304, T_DOTS = 305, T_ARGX = 306, T_VAPTR = 307, T_PRECIOUS = 308, T_OR = 309, T_AND = 310, T_EQ = 311, T_NE = 312, T_LT = 313, T_LE = 314, T_GT = 315, T_GE = 316, T_NOT = 317, T_LOGAND = 318, T_LOGOR = 319, T_LOGXOR = 320, T_LOGNOT = 321, T_REQUIRE = 322, T_IMPORT = 323, T_STATIC = 324, T_PUBLIC = 325, T_MODULE = 326, T_BYE = 327, T_DCLEX = 328, T_SHL = 329, T_SHR = 330, T_COMPOSE = 331, T_MODBEG = 332, T_MODEND = 333, T_STRING = 334, T_SYMBOL = 335, T_IDENTIFIER = 336, T_ARG = 337, T_NUMBER = 338, T_BACKREF = 339, T_BUILTIN = 340, T_FUNCTION = 341, T_TYPE = 342, T_TYPECAST = 343, T_VARIABLE = 344, T_BOGUS = 345, T_UMINUS = 346 }; #endif /* Tokens. */ #define T_ACCEPT 258 #define T_REJECT 259 #define T_TEMPFAIL 260 #define T_CONTINUE 261 #define T_DISCARD 262 #define T_ADD 263 #define T_REPLACE 264 #define T_DELETE 265 #define T_PROG 266 #define T_BEGIN 267 #define T_END 268 #define T_IF 269 #define T_FI 270 #define T_ELSE 271 #define T_ELIF 272 #define T_ON 273 #define T_HOST 274 #define T_FROM 275 #define T_AS 276 #define T_DO 277 #define T_DONE 278 #define T_POLL 279 #define T_MATCHES 280 #define T_FNMATCHES 281 #define T_MXMATCHES 282 #define T_MXFNMATCHES 283 #define T_WHEN 284 #define T_PASS 285 #define T_SET 286 #define T_CATCH 287 #define T_TRY 288 #define T_THROW 289 #define T_ECHO 290 #define T_RETURNS 291 #define T_RETURN 292 #define T_FUNC 293 #define T_SWITCH 294 #define T_CASE 295 #define T_DEFAULT 296 #define T_CONST 297 #define T_FOR 298 #define T_LOOP 299 #define T_WHILE 300 #define T_BREAK 301 #define T_NEXT 302 #define T_ARGCOUNT 303 #define T_ALIAS 304 #define T_DOTS 305 #define T_ARGX 306 #define T_VAPTR 307 #define T_PRECIOUS 308 #define T_OR 309 #define T_AND 310 #define T_EQ 311 #define T_NE 312 #define T_LT 313 #define T_LE 314 #define T_GT 315 #define T_GE 316 #define T_NOT 317 #define T_LOGAND 318 #define T_LOGOR 319 #define T_LOGXOR 320 #define T_LOGNOT 321 #define T_REQUIRE 322 #define T_IMPORT 323 #define T_STATIC 324 #define T_PUBLIC 325 #define T_MODULE 326 #define T_BYE 327 #define T_DCLEX 328 #define T_SHL 329 #define T_SHR 330 #define T_COMPOSE 331 #define T_MODBEG 332 #define T_MODEND 333 #define T_STRING 334 #define T_SYMBOL 335 #define T_IDENTIFIER 336 #define T_ARG 337 #define T_NUMBER 338 #define T_BACKREF 339 #define T_BUILTIN 340 #define T_FUNCTION 341 #define T_TYPE 342 #define T_TYPECAST 343 #define T_VARIABLE 344 #define T_BOGUS 345 #define T_UMINUS 346 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { #line 294 "gram.y" /* yacc.c:1909 */ struct literal *literal; struct stmtlist stmtlist; NODE *node; struct return_node ret; struct poll_data poll; struct pollarg { int kw; NODE *expr; } pollarg; struct arglist { NODE *head; NODE *tail; size_t count; } arglist; long number; const struct builtin *builtin; struct variable *var; enum smtp_state state; struct { int qualifier; } matchtype; data_type_t type; struct parmtype *parm; struct parmlist { struct parmtype *head, *tail; size_t count; size_t optcount; int varargs; } parmlist; enum lexical_context tie_in; struct function *function; struct { struct valist *head, *tail; } valist_list; struct { int all; struct valist *valist; } catchlist; struct valist *valist; struct value value; struct { struct case_stmt *head, *tail; } case_list ; struct case_stmt *case_stmt; struct loop_node loop; struct { int code; } progspecial; struct enumlist { struct constant *cv; struct enumlist *prev; } enumlist; mu_list_t list; struct import_rule_list import_rule_list; char *string; #line 294 "gram.h" /* yacc.c:1909 */ }; typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 #endif /* Location type. */ #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED typedef struct YYLTYPE YYLTYPE; struct YYLTYPE { int first_line; int first_column; int last_line; int last_column; }; # define YYLTYPE_IS_DECLARED 1 # define YYLTYPE_IS_TRIVIAL 1 #endif extern YYSTYPE yylval; extern YYLTYPE yylloc; int yyparse (void); #endif /* !YY_YY_GRAM_H_INCLUDED */