]> git.ipfire.org Git - thirdparty/dhcp.git/blame - includes/dhctoken.h
Add untyped expression evaluator and support for typed values.
[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,
983ea35c
TL
117 SUBSTRING = 337,
118 SUFFIX = 338,
119 CHECK = 339,
120 EXTRACT_INT = 340,
121 IF = 341,
8a04c615 122 TOKEN_ADD = 342,
983ea35c
TL
123 BREAK = 343,
124 ELSE = 344,
125 ELSIF = 345,
126 SUBCLASS = 346,
127 MATCH = 347,
128 SPAWN = 348,
129 WITH = 349,
130 EXISTS = 350,
f197003d
TL
131 POOL = 351,
132 UNKNOWN = 352,
133 CLIENTS = 353,
134 KNOWN = 354,
135 AUTHENTICATED = 355,
136 UNAUTHENTICATED = 356,
137 ALL = 357,
138 DYNAMIC = 358,
139 MEMBERS = 359,
140 OF = 360,
141 PSEUDO = 361,
00a7748f
TL
142 LIMIT = 362,
143 BILLING = 363,
c66b869e
TL
144 PEER = 364,
145 FAILOVER = 365,
146 MY = 366,
147 PARTNER = 367,
148 PRIMARY = 368,
149 SECONDARY = 369,
150 IDENTIFIER = 370,
151 PORT = 371,
152 MAX_TRANSMIT_IDLE = 372,
153 MAX_RESPONSE_DELAY = 373,
154 PARTNER_DOWN = 374,
155 NORMAL = 375,
156 COMMUNICATIONS_INTERRUPTED = 376,
157 POTENTIAL_CONFLICT = 377,
158 RECOVER = 378,
6b6126fb
TL
159 FDDI = 379,
160 AUTHORITATIVE = 380,
161 TOKEN_NOT = 381,
74f45f96 162 AUTH_KEY = 382,
40d08f51
TL
163 AUTHENTICATION = 383,
164 IGNORE = 384,
165 ACCEPT = 385,
166 PREFER = 386,
167 DONT = 387,
1e382a09
TL
168 CODE = 388,
169 ARRAY = 389,
170 BOOLEAN = 390,
171 INTEGER = 391,
172 SIGNED = 392,
173 UNSIGNED = 393,
174 IP_ADDRESS = 394,
175 TEXT = 395,
176 STRING_TOKEN = 396,
6cad5838 177 SPACE = 397,
b7afba03 178 CONCAT = 398,
3cb23d09 179 ENCODE_INT = 399,
da38df14
TL
180 REVERSE = 402,
181 LEASED_ADDRESS = 403,
182 BINARY_TO_ASCII = 404,
d7d2cbe8 183 PICK = 405,
79a65726
TL
184 CONFIG_OPTION = 406,
185 HOST_DECL_NAME = 407,
186 ON = 408,
187 EXPIRY = 409,
188 RELEASE = 410,
189 COMMIT = 411,
069e9f4c
TL
190 DNS_UPDATE = 412,
191 LEASE_TIME = 413,
1c5d5731 192 STATIC = 414,
be1ee858
TL
193 NEVER = 415,
194 INFINITE = 416,
07dc11f8 195 DELETED = 417,
846d7d54 196 UPDATED_DNS_RR = 418,
337b3e52 197 DNS_DELETE = 419,
3d201338 198 DUPLICATES = 420,
679c2655
TL
199 DECLINES = 421,
200 TSTP = 422,
201 TSFP = 423,
202 OWNER = 424,
203 IS = 425,
204 HBA = 426,
205 MAX_UNACKED_UPDATES = 427,
206 MCLT = 428,
207 SPLIT = 429,
208 AT = 430,
209 NO = 431,
210 TOKEN_DELETE,
211 NS_UPDATE,
14a2c383
TL
212 UPDATE,
213 SWITCH,
214 CASE,
215 NS_FORMERR,
216 NS_NOERROR,
217 NS_NOTAUTH,
218 NS_NOTIMP,
219 NS_NOTZONE,
220 NS_NXDOMAIN,
221 NS_NXRRSET,
222 NS_REFUSED,
223 NS_SERVFAIL,
224 NS_YXDOMAIN,
225 NS_YXRRSET,
226 TOKEN_NULL,
227 TOKEN_SET,
d7d2cbe8
TL
228 DEFINED,
229 UNSET,
230 EVAL,
231 LET
983ea35c 232};
d7837182
TL
233
234#define is_identifier(x) ((x) >= FIRST_TOKEN && \
d7837182 235 (x) != STRING && \
f4e348de
TL
236 (x) != NUMBER && \
237 (x) != EOF)