1 /* A Bison parser, made by GNU Bison 3.7.6.  */
2 
3 /* Bison interface for Yacc-like parsers in C
4 
5    Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 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 <https://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 /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
35    especially those whose name start with YY_ or yy_.  They are
36    private implementation details that can be changed or removed.  */
37 
38 #ifndef YY_SUDOERS_Y_TAB_H_INCLUDED
39 # define YY_SUDOERS_Y_TAB_H_INCLUDED
40 /* Debug traces.  */
41 #ifndef YYDEBUG
42 # define YYDEBUG 0
43 #endif
44 #if YYDEBUG
45 extern int sudoersdebug;
46 #endif
47 
48 /* Token kinds.  */
49 #ifndef YYTOKENTYPE
50 # define YYTOKENTYPE
51   enum yytokentype
52   {
53     YYEMPTY = -2,
54     YYEOF = 0,                     /* "end of file"  */
55     YYerror = 256,                 /* error  */
56     YYUNDEF = 257,                 /* "invalid token"  */
57     COMMAND = 258,                 /* COMMAND  */
58     ALIAS = 259,                   /* ALIAS  */
59     DEFVAR = 260,                  /* DEFVAR  */
60     NTWKADDR = 261,                /* NTWKADDR  */
61     NETGROUP = 262,                /* NETGROUP  */
62     USERGROUP = 263,               /* USERGROUP  */
63     WORD = 264,                    /* WORD  */
64     DIGEST = 265,                  /* DIGEST  */
65     INCLUDE = 266,                 /* INCLUDE  */
66     INCLUDEDIR = 267,              /* INCLUDEDIR  */
67     DEFAULTS = 268,                /* DEFAULTS  */
68     DEFAULTS_HOST = 269,           /* DEFAULTS_HOST  */
69     DEFAULTS_USER = 270,           /* DEFAULTS_USER  */
70     DEFAULTS_RUNAS = 271,          /* DEFAULTS_RUNAS  */
71     DEFAULTS_CMND = 272,           /* DEFAULTS_CMND  */
72     NOPASSWD = 273,                /* NOPASSWD  */
73     PASSWD = 274,                  /* PASSWD  */
74     NOEXEC = 275,                  /* NOEXEC  */
75     EXEC = 276,                    /* EXEC  */
76     SETENV = 277,                  /* SETENV  */
77     NOSETENV = 278,                /* NOSETENV  */
78     LOG_INPUT = 279,               /* LOG_INPUT  */
79     NOLOG_INPUT = 280,             /* NOLOG_INPUT  */
80     LOG_OUTPUT = 281,              /* LOG_OUTPUT  */
81     NOLOG_OUTPUT = 282,            /* NOLOG_OUTPUT  */
82     MAIL = 283,                    /* MAIL  */
83     NOMAIL = 284,                  /* NOMAIL  */
84     FOLLOWLNK = 285,               /* FOLLOWLNK  */
85     NOFOLLOWLNK = 286,             /* NOFOLLOWLNK  */
86     INTERCEPT = 287,               /* INTERCEPT  */
87     NOINTERCEPT = 288,             /* NOINTERCEPT  */
88     ALL = 289,                     /* ALL  */
89     HOSTALIAS = 290,               /* HOSTALIAS  */
90     CMNDALIAS = 291,               /* CMNDALIAS  */
91     USERALIAS = 292,               /* USERALIAS  */
92     RUNASALIAS = 293,              /* RUNASALIAS  */
93     ERROR = 294,                   /* ERROR  */
94     NOMATCH = 295,                 /* NOMATCH  */
95     CHROOT = 296,                  /* CHROOT  */
96     CWD = 297,                     /* CWD  */
97     TYPE = 298,                    /* TYPE  */
98     ROLE = 299,                    /* ROLE  */
99     PRIVS = 300,                   /* PRIVS  */
100     LIMITPRIVS = 301,              /* LIMITPRIVS  */
101     CMND_TIMEOUT = 302,            /* CMND_TIMEOUT  */
102     NOTBEFORE = 303,               /* NOTBEFORE  */
103     NOTAFTER = 304,                /* NOTAFTER  */
104     MYSELF = 305,                  /* MYSELF  */
105     SHA224_TOK = 306,              /* SHA224_TOK  */
106     SHA256_TOK = 307,              /* SHA256_TOK  */
107     SHA384_TOK = 308,              /* SHA384_TOK  */
108     SHA512_TOK = 309               /* SHA512_TOK  */
109   };
110   typedef enum yytokentype yytoken_kind_t;
111 #endif
112 /* Token kinds.  */
113 #define YYEMPTY -2
114 #define YYEOF 0
115 #define YYerror 256
116 #define YYUNDEF 257
117 #define COMMAND 258
118 #define ALIAS 259
119 #define DEFVAR 260
120 #define NTWKADDR 261
121 #define NETGROUP 262
122 #define USERGROUP 263
123 #define WORD 264
124 #define DIGEST 265
125 #define INCLUDE 266
126 #define INCLUDEDIR 267
127 #define DEFAULTS 268
128 #define DEFAULTS_HOST 269
129 #define DEFAULTS_USER 270
130 #define DEFAULTS_RUNAS 271
131 #define DEFAULTS_CMND 272
132 #define NOPASSWD 273
133 #define PASSWD 274
134 #define NOEXEC 275
135 #define EXEC 276
136 #define SETENV 277
137 #define NOSETENV 278
138 #define LOG_INPUT 279
139 #define NOLOG_INPUT 280
140 #define LOG_OUTPUT 281
141 #define NOLOG_OUTPUT 282
142 #define MAIL 283
143 #define NOMAIL 284
144 #define FOLLOWLNK 285
145 #define NOFOLLOWLNK 286
146 #define INTERCEPT 287
147 #define NOINTERCEPT 288
148 #define ALL 289
149 #define HOSTALIAS 290
150 #define CMNDALIAS 291
151 #define USERALIAS 292
152 #define RUNASALIAS 293
153 #define ERROR 294
154 #define NOMATCH 295
155 #define CHROOT 296
156 #define CWD 297
157 #define TYPE 298
158 #define ROLE 299
159 #define PRIVS 300
160 #define LIMITPRIVS 301
161 #define CMND_TIMEOUT 302
162 #define NOTBEFORE 303
163 #define NOTAFTER 304
164 #define MYSELF 305
165 #define SHA224_TOK 306
166 #define SHA256_TOK 307
167 #define SHA384_TOK 308
168 #define SHA512_TOK 309
169 
170 /* Value type.  */
171 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
172 union YYSTYPE
173 {
174 #line 85 "gram.y"
175 
176     struct cmndspec *cmndspec;
177     struct defaults *defaults;
178     struct member *member;
179     struct runascontainer *runas;
180     struct privilege *privilege;
181     struct command_digest *digest;
182     struct sudo_command command;
183     struct command_options options;
184     struct cmndtag tag;
185     char *string;
186     int tok;
187 
188 #line 189 "y.tab.h"
189 
190 };
191 typedef union YYSTYPE YYSTYPE;
192 # define YYSTYPE_IS_TRIVIAL 1
193 # define YYSTYPE_IS_DECLARED 1
194 #endif
195 
196 
197 extern YYSTYPE sudoerslval;
198 
199 int sudoersparse (void);
200 
201 #endif /* !YY_SUDOERS_Y_TAB_H_INCLUDED  */
202