solstice

Compute collected power and efficiencies of a solar plant
git clone git://git.meso-star.com/solstice.git
Log | Files | Refs | README | LICENSE

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:
Mdoc/input | 2+-
Msrc/parser/solparser.c | 7+++++++
Msrc/parser/yaml/test_ko_0.yaml | 3+++
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: } ---