* Full RFC 7950 if-feature-expr support (Section 7.20.2)

* Previous implementation did not handle nested if-feature expressions
  * As part of fixing: [YANG if-feature does not support nested boolean expression](https://github.com/clicon/clixon/issues/341)
  * Added new yacc/lex parser for if-feature-expr string
This commit is contained in:
Olof hagsand 2022-06-26 10:56:03 +02:00
parent 5bb3767358
commit a00e36caa2
11 changed files with 484 additions and 155 deletions

View file

@ -316,10 +316,9 @@ ysp_add(clixon_yang_yacc *yy,
yang_argument_set(ys, argument);
if (yn_insert(yn, ys) < 0) /* Insert into hierarchy */
goto err;
yang_linenum_set(ys, yy->yy_linenum); /* For error/debugging */
if (ys_parse_sub(ys, extra) < 0) /* Check statement-specific syntax */
goto err2; /* dont free since part of tree */
yang_linenum_set(ys, yy->yy_linenum); /* For error/debugging */
// done:
return ys;
err:
if (ys)