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