FR_TOKEN t1 = T_INVALID, t2, t3;
bool has_spaces = false;
bool pass2;
+ bool update_or_map = false;
char *cbuff;
size_t len;
case T_OP_LT:
case T_OP_CMP_EQ:
case T_OP_CMP_FALSE:
- if (!this || ((strcmp(this->name1, "update") != 0) && (strcmp(this->name1, "map") != 0))) {
+ if (!this || !update_or_map) {
ERROR("%s[%d]: Invalid operator in assignment",
filename, *lineno);
goto error;
* The current section is now the child section.
*/
this = css;
+
+ /*
+ * Hack for better error messages in
+ * nested sections. This information
+ * should really be put into a parser
+ * struct, as with tmpls.
+ */
+ if (!update_or_map) update_or_map = (strcmp(css->name1, "update") == 0);
+ if (!update_or_map) update_or_map = (strcmp(css->name1, "map") == 0);
break;
case T_INVALID:
# PRE: update
#
update reply {
- #
- # This is a TLV, so it's allowed.
- #
- # For now, the grouped attributes are skipped, so they don't
- # change the test results.
- #
- &WiMAX-Capability := {
- &WiMAX-Release := "1.0"
- }
+ #
+ # This is a TLV, so it's allowed.
+ #
+ # For now, the grouped attributes are skipped, so they don't
+ # change the test results.
+ #
+ &WiMAX-Capability := {
+ &WiMAX-Release := "1.0"
+ }
+}
+
+update reply {
+ &WiMAX-Capability += {
+ #
+ # Operators are allowed here.
+ #
+ &WiMAX-Release += "1.0"
+ }
}
success