summaryrefslogtreecommitdiff
path: root/keama/parse.c
diff options
context:
space:
mode:
authorFrancis Dupont <fdupont@isc.org>2017-04-21 16:52:40 +0200
committerFrancis Dupont <fdupont@isc.org>2018-11-29 16:42:13 +0100
commitd904376d815e8275eaf88a7e9b611ffee611f20c (patch)
tree5aa75cda5276cec89728f0be901971598febde63 /keama/parse.c
parentba9e4b40b2dbaf441a81476547f7527954886989 (diff)
downloadisc-dhcp-d904376d815e8275eaf88a7e9b611ffee611f20c.tar.gz
Checkpoint (wrote doc, began group)
Diffstat (limited to 'keama/parse.c')
-rw-r--r--keama/parse.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/keama/parse.c b/keama/parse.c
index 713aadc8..bcfcd81b 100644
--- a/keama/parse.c
+++ b/keama/parse.c
@@ -3142,14 +3142,17 @@ parse_non_binary(struct element *expr,
if (context == context_numeric ||
context == context_data_or_numeric) {
skip_token(&val, NULL, cfile);
+ /* can also return a const-int */
resetInt(expr, atoi(val));
break;
}
case NUMBER_OR_NAME:
+ /* Return a const-data to make a difference with
+ a string literal. */
data = makeString(-1, "0x");
concatString(data, parse_hexa(cfile, NULL));
- resetString(expr, data);
+ mapSet(expr, createString(data), "const-data");
break;
case NS_FORMERR:
@@ -4845,6 +4848,7 @@ is_data_expression(struct element *expr)
mapContains(expr, "uppercase") ||
mapContains(expr, "option") ||
mapContains(expr, "hardware") ||
+ mapContains(expr, "const-data") ||
mapContains(expr, "packet") ||
mapContains(expr, "concat") ||
mapContains(expr, "encapsulate") ||
@@ -4872,6 +4876,7 @@ is_numeric_expression(struct element *expr)
mapContains(expr, "extract-int8") ||
mapContains(expr, "extract-int16") ||
mapContains(expr, "extract-int32") ||
+ mapContains(expr, "const-int") ||
mapContains(expr, "lease-time") ||
mapContains(expr, "add") ||
mapContains(expr, "subtract") ||