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