/* A Bison parser, made by GNU Bison 3.8.2. */12/* Bison interface for Yacc-like parsers in C34Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,5Inc.67This program is free software: you can redistribute it and/or modify8it under the terms of the GNU General Public License as published by9the Free Software Foundation, either version 3 of the License, or10(at your option) any later version.1112This program is distributed in the hope that it will be useful,13but WITHOUT ANY WARRANTY; without even the implied warranty of14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the15GNU General Public License for more details.1617You should have received a copy of the GNU General Public License18along with this program. If not, see <https://www.gnu.org/licenses/>. */1920/* As a special exception, you may create a larger work that contains21part or all of the Bison parser skeleton and distribute that work22under terms of your choice, so long as that work isn't itself a23parser generator using the skeleton or a modified version thereof24as a parser skeleton. Alternatively, if you modify or redistribute25the parser skeleton itself, you may (at your option) remove this26special exception, which will cause the skeleton and the resulting27Bison output files to be licensed under the GNU General Public28License without this special exception.2930This special exception was added by the Free Software Foundation in31version 2.2 of Bison. */3233/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,34especially those whose name start with YY_ or yy_. They are35private implementation details that can be changed or removed. */3637#ifndef YY_SUDOERS_Y_TAB_H_INCLUDED38# define YY_SUDOERS_Y_TAB_H_INCLUDED39/* Debug traces. */40#ifndef YYDEBUG41# define YYDEBUG 042#endif43#if YYDEBUG44extern int sudoersdebug;45#endif4647/* Token kinds. */48#ifndef YYTOKENTYPE49# define YYTOKENTYPE50enum yytokentype51{52YYEMPTY = -2,53YYEOF = 0, /* "end of file" */54YYerror = 256, /* error */55YYUNDEF = 257, /* "invalid token" */56COMMAND = 258, /* COMMAND */57ALIAS = 259, /* ALIAS */58DEFVAR = 260, /* DEFVAR */59NTWKADDR = 261, /* NTWKADDR */60NETGROUP = 262, /* NETGROUP */61USERGROUP = 263, /* USERGROUP */62WORD = 264, /* WORD */63DIGEST = 265, /* DIGEST */64INCLUDE = 266, /* INCLUDE */65INCLUDEDIR = 267, /* INCLUDEDIR */66DEFAULTS = 268, /* DEFAULTS */67DEFAULTS_HOST = 269, /* DEFAULTS_HOST */68DEFAULTS_USER = 270, /* DEFAULTS_USER */69DEFAULTS_RUNAS = 271, /* DEFAULTS_RUNAS */70DEFAULTS_CMND = 272, /* DEFAULTS_CMND */71NOPASSWD = 273, /* NOPASSWD */72PASSWD = 274, /* PASSWD */73NOEXEC = 275, /* NOEXEC */74EXEC = 276, /* EXEC */75SETENV = 277, /* SETENV */76NOSETENV = 278, /* NOSETENV */77LOG_INPUT = 279, /* LOG_INPUT */78NOLOG_INPUT = 280, /* NOLOG_INPUT */79LOG_OUTPUT = 281, /* LOG_OUTPUT */80NOLOG_OUTPUT = 282, /* NOLOG_OUTPUT */81MAIL = 283, /* MAIL */82NOMAIL = 284, /* NOMAIL */83FOLLOWLNK = 285, /* FOLLOWLNK */84NOFOLLOWLNK = 286, /* NOFOLLOWLNK */85INTERCEPT = 287, /* INTERCEPT */86NOINTERCEPT = 288, /* NOINTERCEPT */87ALL = 289, /* ALL */88HOSTALIAS = 290, /* HOSTALIAS */89CMNDALIAS = 291, /* CMNDALIAS */90USERALIAS = 292, /* USERALIAS */91RUNASALIAS = 293, /* RUNASALIAS */92ERROR = 294, /* ERROR */93NOMATCH = 295, /* NOMATCH */94CHROOT = 296, /* CHROOT */95CWD = 297, /* CWD */96TYPE = 298, /* TYPE */97ROLE = 299, /* ROLE */98APPARMOR_PROFILE = 300, /* APPARMOR_PROFILE */99PRIVS = 301, /* PRIVS */100LIMITPRIVS = 302, /* LIMITPRIVS */101CMND_TIMEOUT = 303, /* CMND_TIMEOUT */102NOTBEFORE = 304, /* NOTBEFORE */103NOTAFTER = 305, /* NOTAFTER */104MYSELF = 306, /* MYSELF */105SHA224_TOK = 307, /* SHA224_TOK */106SHA256_TOK = 308, /* SHA256_TOK */107SHA384_TOK = 309, /* SHA384_TOK */108SHA512_TOK = 310 /* SHA512_TOK */109};110typedef enum yytokentype yytoken_kind_t;111#endif112/* Token kinds. */113#define YYEMPTY -2114#define YYEOF 0115#define YYerror 256116#define YYUNDEF 257117#define COMMAND 258118#define ALIAS 259119#define DEFVAR 260120#define NTWKADDR 261121#define NETGROUP 262122#define USERGROUP 263123#define WORD 264124#define DIGEST 265125#define INCLUDE 266126#define INCLUDEDIR 267127#define DEFAULTS 268128#define DEFAULTS_HOST 269129#define DEFAULTS_USER 270130#define DEFAULTS_RUNAS 271131#define DEFAULTS_CMND 272132#define NOPASSWD 273133#define PASSWD 274134#define NOEXEC 275135#define EXEC 276136#define SETENV 277137#define NOSETENV 278138#define LOG_INPUT 279139#define NOLOG_INPUT 280140#define LOG_OUTPUT 281141#define NOLOG_OUTPUT 282142#define MAIL 283143#define NOMAIL 284144#define FOLLOWLNK 285145#define NOFOLLOWLNK 286146#define INTERCEPT 287147#define NOINTERCEPT 288148#define ALL 289149#define HOSTALIAS 290150#define CMNDALIAS 291151#define USERALIAS 292152#define RUNASALIAS 293153#define ERROR 294154#define NOMATCH 295155#define CHROOT 296156#define CWD 297157#define TYPE 298158#define ROLE 299159#define APPARMOR_PROFILE 300160#define PRIVS 301161#define LIMITPRIVS 302162#define CMND_TIMEOUT 303163#define NOTBEFORE 304164#define NOTAFTER 305165#define MYSELF 306166#define SHA224_TOK 307167#define SHA256_TOK 308168#define SHA384_TOK 309169#define SHA512_TOK 310170171/* Value type. */172#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED173union YYSTYPE174{175#line 91 "gram.y"176177struct cmndspec *cmndspec;178struct defaults *defaults;179struct member *member;180struct runascontainer *runas;181struct privilege *privilege;182struct command_digest *digest;183struct sudo_command command;184struct command_options options;185struct cmndtag tag;186char *string;187const char *cstring;188int tok;189190#line 192 "gram.h"191192};193typedef union YYSTYPE YYSTYPE;194# define YYSTYPE_IS_TRIVIAL 1195# define YYSTYPE_IS_DECLARED 1196#endif197198199extern YYSTYPE sudoerslval;200201202int sudoersparse (void);203204205#endif /* !YY_SUDOERS_Y_TAB_H_INCLUDED */206207208