commit 65324e2f8a5da6fba9c3ea84fcf400e15e43d91f
parent e874314885746973e4a7e7275a7a41eae5ba14b0
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date: Tue, 28 Feb 2017 15:19:30 +0100
Add rejection of 'self' as an entity name.
Diffstat:
3 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/doc/input b/doc/input
@@ -219,7 +219,7 @@
# <entity-data>
#
# <entity-data> ::=
-# name: STRING
+# name: STRING # except "self"
# [ <geometry-data> | <x_pivot> | <zx_pivot> ]
# [ <anchors> ]
# [ <transform> ]
diff --git a/src/parser/solparser.c b/src/parser/solparser.c
@@ -2557,6 +2557,13 @@ parse_entity
} else if(!strcmp((char*)key->data.scalar.value, "name")) {
SETUP_MASK(NAME, "name");
res = parse_identifier_string(parser, val, &solent.name);
+ if (!strcmp(str_get(&solent.name), "self")) {
+ /* self is a reserved keyword */
+ log_err(parser, key, "Reserved keywords cannot be used as names: %s.\n",
+ str_get(&solent.name));
+ res = RES_BAD_ARG;
+ goto error;
+ }
} else if(!strcmp((char*)key->data.scalar.value, "x_pivot")) {
SETUP_MASK(DATA, "data");
solent.type = SOLPARSER_ENTITY_X_PIVOT;
diff --git a/src/parser/yaml/test_ko_0.yaml b/src/parser/yaml/test_ko_0.yaml
@@ -1093,6 +1093,9 @@
# missing name value
- entity: { name: }
---
+# reserved word used as name
+- entity: { name: "self" }
+---
# missing primary value
- entity: { primary: }
---