Initial import from FreeBSD RELENG_4:
[games.git] / contrib / isc-dhcp / includes / dhctoken.h
1 /* dhctoken.h
2
3    Tokens for config file lexer and parser. */
4
5 /*
6  * Copyright (c) 1996-2002 Internet Software Consortium.
7  * All rights reserved.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions
11  * are met:
12  *
13  * 1. Redistributions of source code must retain the above copyright
14  *    notice, this list of conditions and the following disclaimer.
15  * 2. Redistributions in binary form must reproduce the above copyright
16  *    notice, this list of conditions and the following disclaimer in the
17  *    documentation and/or other materials provided with the distribution.
18  * 3. Neither the name of The Internet Software Consortium nor the names
19  *    of its contributors may be used to endorse or promote products derived
20  *    from this software without specific prior written permission.
21  *
22  * THIS SOFTWARE IS PROVIDED BY THE INTERNET SOFTWARE CONSORTIUM AND
23  * CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
24  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
25  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
26  * DISCLAIMED.  IN NO EVENT SHALL THE INTERNET SOFTWARE CONSORTIUM OR
27  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
29  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
30  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
31  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
32  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
33  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34  * SUCH DAMAGE.
35  *
36  * This software has been written for the Internet Software Consortium
37  * by Ted Lemon in cooperation with Vixie Enterprises and Nominum, Inc.
38  * To learn more about the Internet Software Consortium, see
39  * ``http://www.isc.org/''.  To learn more about Vixie Enterprises,
40  * see ``http://www.vix.com''.   To learn more about Nominum, Inc., see
41  * ``http://www.nominum.com''.
42  */
43
44 enum dhcp_token {
45         SEMI = ';',
46         DOT = '.',
47         COLON = ':',
48         COMMA = ',',
49         SLASH = '/',
50         LBRACE = '{',
51         RBRACE = '}',
52         LPAREN = '(',
53         RPAREN = ')',
54         EQUAL = '=',
55         BANG = '!',
56         PERCENT = '%',
57         PLUS = '+',
58         MINUS = '-',
59         ASTERISK = '*',
60         AMPERSAND = '&',
61         PIPE = '|',
62         CARET = '^',
63
64         HOST = 256,
65         FIRST_TOKEN = HOST,
66         HARDWARE = 257,
67         FILENAME = 258,
68         FIXED_ADDR = 259,
69         OPTION = 260,
70         ETHERNET = 261,
71         STRING = 262,
72         NUMBER = 263,
73         NUMBER_OR_NAME = 264,
74         NAME = 265,
75         TIMESTAMP = 266,
76         STARTS = 267,
77         ENDS = 268,
78         UID = 269,
79         CLASS = 270,
80         LEASE = 271,
81         RANGE = 272,
82         PACKET = 273,
83         CIADDR = 274,
84         YIADDR = 275,
85         SIADDR = 276,
86         GIADDR = 277,
87         SUBNET = 278,
88         NETMASK = 279,
89         DEFAULT_LEASE_TIME = 280,
90         MAX_LEASE_TIME = 281,
91         VENDOR_CLASS = 282,
92         USER_CLASS = 283,
93         SHARED_NETWORK = 284,
94         SERVER_NAME = 285,
95         DYNAMIC_BOOTP = 286,
96         SERVER_IDENTIFIER = 287,
97         DYNAMIC_BOOTP_LEASE_CUTOFF = 288,
98         DYNAMIC_BOOTP_LEASE_LENGTH = 289,
99         BOOT_UNKNOWN_CLIENTS = 290,
100         NEXT_SERVER = 291,
101         TOKEN_RING = 292,
102         GROUP = 293,
103         ONE_LEASE_PER_CLIENT = 294,
104         GET_LEASE_HOSTNAMES = 295,
105         USE_HOST_DECL_NAMES = 296,
106         SEND = 297,
107         CLIENT_IDENTIFIER = 298,
108         REQUEST = 299,
109         REQUIRE = 300,
110         TIMEOUT = 301,
111         RETRY = 302,
112         SELECT_TIMEOUT = 303,
113         SCRIPT = 304,
114         INTERFACE = 305,
115         RENEW = 306,
116         REBIND = 307,
117         EXPIRE = 308,
118         UNKNOWN_CLIENTS = 309,
119         ALLOW = 310,
120         DENY = 312,
121         BOOTING = 313,
122         DEFAULT = 314,
123         MEDIA = 315,
124         MEDIUM = 316,
125         ALIAS = 317,
126         REBOOT = 318,
127         TOKEN_ABANDONED = 319,
128         BACKOFF_CUTOFF = 320,
129         INITIAL_INTERVAL = 321,
130         NAMESERVER = 322,
131         DOMAIN = 323,
132         SEARCH = 324,
133         SUPERSEDE = 325,
134         APPEND = 326,
135         PREPEND = 327,
136         HOSTNAME = 328,
137         CLIENT_HOSTNAME = 329,
138         REJECT = 330,
139         USE_LEASE_ADDR_FOR_DEFAULT_ROUTE = 331,
140         MIN_LEASE_TIME = 332,
141         MIN_SECS = 333,
142         AND = 334,
143         OR = 335,
144         SUBSTRING = 337,
145         SUFFIX = 338,
146         CHECK = 339,
147         EXTRACT_INT = 340,
148         IF = 341,
149         TOKEN_ADD = 342,
150         BREAK = 343,
151         ELSE = 344,
152         ELSIF = 345,
153         SUBCLASS = 346,
154         MATCH = 347,
155         SPAWN = 348,
156         WITH = 349,
157         EXISTS = 350,
158         POOL = 351,
159         UNKNOWN = 352,
160         CLIENTS = 353,
161         KNOWN = 354,
162         AUTHENTICATED = 355,
163         UNAUTHENTICATED = 356,
164         ALL = 357,
165         DYNAMIC = 358,
166         MEMBERS = 359,
167         OF = 360,
168         PSEUDO = 361,
169         LIMIT = 362,
170         BILLING = 363,
171         PEER = 364,
172         FAILOVER = 365,
173         MY = 366,
174         PARTNER = 367,
175         PRIMARY = 368,
176         SECONDARY = 369,
177         IDENTIFIER = 370,
178         PORT = 371,
179         MAX_TRANSMIT_IDLE = 372,
180         MAX_RESPONSE_DELAY = 373,
181         PARTNER_DOWN = 374,
182         NORMAL = 375,
183         COMMUNICATIONS_INTERRUPTED = 376,
184         POTENTIAL_CONFLICT = 377,
185         RECOVER = 378,
186         FDDI = 379,
187         AUTHORITATIVE = 380,
188         TOKEN_NOT = 381,
189         AUTHENTICATION = 383,
190         IGNORE = 384,
191         ACCEPT = 385,
192         PREFER = 386,
193         DONT = 387,
194         CODE = 388,
195         ARRAY = 389,
196         BOOLEAN = 390,
197         INTEGER = 391,
198         SIGNED = 392,
199         UNSIGNED = 393,
200         IP_ADDRESS = 394,
201         TEXT = 395,
202         STRING_TOKEN = 396,
203         SPACE = 397,
204         CONCAT = 398,
205         ENCODE_INT = 399,
206         REVERSE = 402,
207         LEASED_ADDRESS = 403,
208         BINARY_TO_ASCII = 404,
209         PICK = 405,
210         CONFIG_OPTION = 406,
211         HOST_DECL_NAME = 407,
212         ON = 408,
213         EXPIRY = 409,
214         RELEASE = 410,
215         COMMIT = 411,
216         DNS_UPDATE = 412,
217         LEASE_TIME = 413,
218         STATIC = 414,
219         NEVER = 415,
220         INFINITE = 416,
221         TOKEN_DELETED = 417,
222         UPDATED_DNS_RR = 418,
223         DNS_DELETE = 419,
224         DUPLICATES = 420,
225         DECLINES = 421,
226         TSTP = 422,
227         TSFP = 423,
228         OWNER = 424,
229         IS = 425,
230         HBA = 426,
231         MAX_UNACKED_UPDATES = 427,
232         MCLT = 428,
233         SPLIT = 429,
234         AT = 430,
235         NO = 431,
236         TOKEN_DELETE = 432,
237         NS_UPDATE = 433,
238         UPDATE = 434,
239         SWITCH = 435,
240         CASE = 436,
241         NS_FORMERR = 437,
242         NS_NOERROR = 438,
243         NS_NOTAUTH = 439,
244         NS_NOTIMP = 440,
245         NS_NOTZONE = 441,
246         NS_NXDOMAIN = 442,
247         NS_NXRRSET = 443,
248         NS_REFUSED = 444,
249         NS_SERVFAIL = 445,
250         NS_YXDOMAIN = 446,
251         NS_YXRRSET = 447,
252         TOKEN_NULL = 448,
253         TOKEN_SET = 449,
254         DEFINED = 450,
255         UNSET = 451,
256         EVAL = 452,
257         LET = 453,
258         FUNCTION = 454,
259         DEFINE = 455,
260         ZONE = 456,
261         KEY = 457,
262         SECRET = 458,
263         ALGORITHM = 459,
264         LOAD = 460,
265         BALANCE = 461,
266         TOKEN_MAX = 462,
267         SECONDS = 463,
268         ADDRESS = 464,
269         RESOLUTION_INTERRUPTED = 465,
270         STATE = 466,
271         UNKNOWN_STATE = 567,
272         CLTT = 568,
273         INCLUDE = 569,
274         BINDING = 570,
275         TOKEN_FREE = 571,
276         TOKEN_ACTIVE = 572,
277         TOKEN_EXPIRED = 573,
278         TOKEN_RELEASED = 574,
279         TOKEN_RESET = 575,
280         TOKEN_BACKUP = 576,
281         TOKEN_RESERVED = 577,
282         TOKEN_BOOTP = 578,
283         TOKEN_NEXT = 579,
284         OMAPI = 580,
285         LOG = 581,
286         FATAL = 582,
287         ERROR = 583,
288         TOKEN_DEBUG = 584,
289         INFO = 585,
290         RETURN = 586,
291         PAUSED = 587,
292         RECOVER_DONE = 588,
293         SHUTDOWN = 589,
294         STARTUP = 590,
295         ENCAPSULATE = 591,
296         VENDOR = 592,
297         CLIENT_STATE = 593,
298         INIT_REBOOT = 594,
299         TOKEN_INIT = 595,
300         SELECT = 596,
301         BOUND = 597,
302         RENEWING = 598,
303         REBINDING = 599,
304         RECONTACT_INTERVAL = 600,
305         CLIENT_UPDATES = 601,
306         TOKEN_NEW = 601,
307         TRANSMISSION = 602,
308         TOKEN_CLOSE = 603,
309         TOKEN_CREATE = 604,
310         TOKEN_OPEN = 605,
311         TOKEN_HELP = 606,
312         END_OF_FILE = 607,
313         RECOVER_WAIT = 608,
314         SERVER = 609,
315         CONNECT = 610,
316         REMOVE = 611,
317         REFRESH = 612,
318         DOMAIN_NAME = 613,
319         DO_FORWARD_UPDATE = 614
320 };
321
322 #define is_identifier(x)        ((x) >= FIRST_TOKEN &&  \
323                                  (x) != STRING &&       \
324                                  (x) != NUMBER &&       \
325                                  (x) != END_OF_FILE)