]> git.ipfire.org Git - thirdparty/dhcp.git/blob - includes/dhctoken.h
98efc6201ccf73828567d9690ed6ac8f620fcf88
[thirdparty/dhcp.git] / includes / dhctoken.h
1 /* dhctoken.h
2
3 Tokens for config file lexer and parser. */
4
5 /*
6 * Copyright (c) 1996-1999 Internet Software Consortium.
7 * Use is subject to license terms which appear in the file named
8 * ISC-LICENSE that should have accompanied this file when you
9 * received it. If a file named ISC-LICENSE did not accompany this
10 * file, or you are not sure the one you have is correct, you may
11 * obtain an applicable copy of the license at:
12 *
13 * http://www.isc.org/isc-license-1.0.html.
14 *
15 * This file is part of the ISC DHCP distribution. The documentation
16 * associated with this file is listed in the file DOCUMENTATION,
17 * included in the top-level directory of this release.
18 *
19 * Support and other services are available for ISC products - see
20 * http://www.isc.org for more information.
21 */
22
23 enum dhcp_token {
24 SEMI = ';',
25 DOT = '.',
26 COLON = ':',
27 COMMA = ',',
28 SLASH = '/',
29 LBRACE = '{',
30 RBRACE = '}',
31 LPAREN = '(',
32 RPAREN = ')',
33 EQUAL = '=',
34 BANG = '!',
35 PERCENT = '%',
36 PLUS = '+',
37 MINUS = '-',
38 ASTERISK = '*',
39
40 HOST = 256,
41 FIRST_TOKEN = HOST,
42 HARDWARE = 257,
43 FILENAME = 258,
44 FIXED_ADDR = 259,
45 OPTION = 260,
46 ETHERNET = 261,
47 STRING = 262,
48 NUMBER = 263,
49 NUMBER_OR_NAME = 264,
50 NAME = 265,
51 TIMESTAMP = 266,
52 STARTS = 267,
53 ENDS = 268,
54 UID = 269,
55 CLASS = 270,
56 LEASE = 271,
57 RANGE = 272,
58 PACKET = 273,
59 CIADDR = 274,
60 YIADDR = 275,
61 SIADDR = 276,
62 GIADDR = 277,
63 SUBNET = 278,
64 NETMASK = 279,
65 DEFAULT_LEASE_TIME = 280,
66 MAX_LEASE_TIME = 281,
67 VENDOR_CLASS = 282,
68 USER_CLASS = 283,
69 SHARED_NETWORK = 284,
70 SERVER_NAME = 285,
71 DYNAMIC_BOOTP = 286,
72 SERVER_IDENTIFIER = 287,
73 DYNAMIC_BOOTP_LEASE_CUTOFF = 288,
74 DYNAMIC_BOOTP_LEASE_LENGTH = 289,
75 BOOT_UNKNOWN_CLIENTS = 290,
76 NEXT_SERVER = 291,
77 TOKEN_RING = 292,
78 GROUP = 293,
79 ONE_LEASE_PER_CLIENT = 294,
80 GET_LEASE_HOSTNAMES = 295,
81 USE_HOST_DECL_NAMES = 296,
82 SEND = 297,
83 CLIENT_IDENTIFIER = 298,
84 REQUEST = 299,
85 REQUIRE = 300,
86 TIMEOUT = 301,
87 RETRY = 302,
88 SELECT_TIMEOUT = 303,
89 SCRIPT = 304,
90 INTERFACE = 305,
91 RENEW = 306,
92 REBIND = 307,
93 EXPIRE = 308,
94 UNKNOWN_CLIENTS = 309,
95 ALLOW = 310,
96 BOOTP = 311,
97 DENY = 312,
98 BOOTING = 313,
99 DEFAULT = 314,
100 MEDIA = 315,
101 MEDIUM = 316,
102 ALIAS = 317,
103 REBOOT = 318,
104 ABANDONED = 319,
105 BACKOFF_CUTOFF = 320,
106 INITIAL_INTERVAL = 321,
107 NAMESERVER = 322,
108 DOMAIN = 323,
109 SEARCH = 324,
110 SUPERSEDE = 325,
111 APPEND = 326,
112 PREPEND = 327,
113 HOSTNAME = 328,
114 CLIENT_HOSTNAME = 329,
115 REJECT = 330,
116 USE_LEASE_ADDR_FOR_DEFAULT_ROUTE = 331,
117 MIN_LEASE_TIME = 332,
118 MIN_SECS = 333,
119 AND = 334,
120 OR = 335,
121 SUBSTRING = 337,
122 SUFFIX = 338,
123 CHECK = 339,
124 EXTRACT_INT = 340,
125 IF = 341,
126 TOKEN_ADD = 342,
127 BREAK = 343,
128 ELSE = 344,
129 ELSIF = 345,
130 SUBCLASS = 346,
131 MATCH = 347,
132 SPAWN = 348,
133 WITH = 349,
134 EXISTS = 350,
135 POOL = 351,
136 UNKNOWN = 352,
137 CLIENTS = 353,
138 KNOWN = 354,
139 AUTHENTICATED = 355,
140 UNAUTHENTICATED = 356,
141 ALL = 357,
142 DYNAMIC = 358,
143 MEMBERS = 359,
144 OF = 360,
145 PSEUDO = 361,
146 LIMIT = 362,
147 BILLING = 363,
148 PEER = 364,
149 FAILOVER = 365,
150 MY = 366,
151 PARTNER = 367,
152 PRIMARY = 368,
153 SECONDARY = 369,
154 IDENTIFIER = 370,
155 PORT = 371,
156 MAX_TRANSMIT_IDLE = 372,
157 MAX_RESPONSE_DELAY = 373,
158 PARTNER_DOWN = 374,
159 NORMAL = 375,
160 COMMUNICATIONS_INTERRUPTED = 376,
161 POTENTIAL_CONFLICT = 377,
162 RECOVER = 378,
163 FDDI = 379,
164 AUTHORITATIVE = 380,
165 TOKEN_NOT = 381,
166 AUTH_KEY = 382,
167 AUTHENTICATION = 383,
168 IGNORE = 384,
169 ACCEPT = 385,
170 PREFER = 386,
171 DONT = 387,
172 CODE = 388,
173 ARRAY = 389,
174 BOOLEAN = 390,
175 INTEGER = 391,
176 SIGNED = 392,
177 UNSIGNED = 393,
178 IP_ADDRESS = 394,
179 TEXT = 395,
180 STRING_TOKEN = 396,
181 SPACE = 397,
182 CONCAT = 398,
183 ENCODE_INT = 399,
184 REVERSE = 402,
185 LEASED_ADDRESS = 403,
186 BINARY_TO_ASCII = 404,
187 PICK = 405,
188 CONFIG_OPTION = 406,
189 HOST_DECL_NAME = 407,
190 ON = 408,
191 EXPIRY = 409,
192 RELEASE = 410,
193 COMMIT = 411,
194 DNS_UPDATE = 412,
195 LEASE_TIME = 413,
196 STATIC = 414,
197 NEVER = 415,
198 INFINITE = 416,
199 DELETED = 417,
200 UPDATED_DNS_RR = 418,
201 DNS_DELETE = 419,
202 DUPLICATES = 420,
203 DECLINES = 421,
204 TSTP = 422,
205 TSFP = 423,
206 OWNER = 424,
207 IS = 425,
208 HBA = 426,
209 MAX_UNACKED_UPDATES = 427,
210 MCLT = 428,
211 SPLIT = 429,
212 AT = 430,
213 NO = 431,
214 TOKEN_DELETE,
215 NS_UPDATE,
216 UPDATE,
217 SWITCH,
218 CASE,
219 NS_FORMERR,
220 NS_NOERROR,
221 NS_NOTAUTH,
222 NS_NOTIMP,
223 NS_NOTZONE,
224 NS_NXDOMAIN,
225 NS_NXRRSET,
226 NS_REFUSED,
227 NS_SERVFAIL,
228 NS_YXDOMAIN,
229 NS_YXRRSET,
230 TOKEN_NULL,
231 TOKEN_SET,
232 DEFINED,
233 UNSET,
234 EVAL,
235 LET,
236 FUNCTION,
237 DEFINE,
238 TSIG_KEY,
239 ZONE
240 };
241
242 #define is_identifier(x) ((x) >= FIRST_TOKEN && \
243 (x) != STRING && \
244 (x) != NUMBER && \
245 (x) != EOF)