@@ -181,7 +181,8 @@ PLUS "+"
MINUS "-"
/* Attribute specification */
-ATTR_MARK "$"|"%"|"@"
+ATTR_MARK "$"|"%"
+FUNC_MARK "@"
ATTR_FROM "from"|"f"
ATTR_TO "to"|"t"
ATTR_USER "user"|"u"
@@ -494,6 +495,7 @@ EAT_ABLE [\ \t\b\r]
BEGIN(INITIAL);
return ID;
}
+<INITIAL>{FUNC_MARK} { count(); return FUNC_MARK; }
<INITIAL>{IPV6ADDR} { count(); yylval.strval=yytext; return IPV6ADDR; }
<INITIAL>{DECNUMBER} { count(); yylval.intval=atoi(yytext);return NUMBER; }
@@ -264,6 +264,7 @@ static struct socket_id* mk_listen_id(char*, int, int);
%token TOS
%token ATTR_MARK
+%token FUNC_MARK
%token ATTR_FROM
%token ATTR_TO
%token ATTR_USER
@@ -1192,6 +1193,9 @@ attr_id : ATTR_MARK ID { s_attr = (struct avp_spec*)pkg_malloc(sizeof(struct avp
;
+func_id : FUNC_MARK ID
+
assign_op : ADDEQ { $$ = ADD_T; }
| EQUAL { $$ = ASSIGN_T; }