summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAn-Cheng Huang <ancheng@vyatta.com>2010-05-06 17:32:19 -0700
committerAn-Cheng Huang <ancheng@vyatta.com>2010-05-06 17:32:19 -0700
commit34c359422cc2d556478f4252c66aa880f8adb8b1 (patch)
tree85637dc423f1e8cff5a6aaf3b65841a612d5042b
parent03c782a72257d611abfdba12e67ba8aa6b759c9d (diff)
downloadvyatta-cfg-34c359422cc2d556478f4252c66aa880f8adb8b1.tar.gz
vyatta-cfg-34c359422cc2d556478f4252c66aa880f8adb8b1.zip
additional fix
-rw-r--r--src/cli_def.l5
-rw-r--r--src/cli_parse.y3
-rw-r--r--src/cli_val.h3
3 files changed, 5 insertions, 6 deletions
diff --git a/src/cli_def.l b/src/cli_def.l
index ef5a278..a7de87d 100644
--- a/src/cli_def.l
+++ b/src/cli_def.l
@@ -257,8 +257,7 @@ RE_TYPE_NAME (txt|u32|ipv4|ipv4net|ipv6|ipv6net|bool|macaddr)
/* values */
RE_VAL_U32 [0-9]+
RE_VAL_BOOL (true|false)
-RE_VAL_TEXT [a-zA-Z]+
-RE_VAL_PRIORITY (PARENT|{RE_VAL_U32})
+RE_VAL_PRIORITY (PARENT)
/* operators */
RE_OP_COND (==|!=|<|>|<=|>=|in)
@@ -446,7 +445,7 @@ RE_ACT_FIELD (help|syntax|commit|delete|update|activate|create|begin|end|comp_he
return VAR;
}
-<INITIAL,expression>{RE_VAL_PRIORITY} { yy_cli_parse_lval.val.free_me = TRUE; yy_cli_parse_lval.val.val = strdup(yy_cli_def_text); return PRIORITY_VALUE;}
+<INITIAL,expression>{RE_VAL_PRIORITY} { return return_value(PRIORITY_TYPE); }
<INITIAL,expression>{RE_VAL_U32} { return return_value(INT_TYPE); }
<INITIAL,expression>{RE_IPV4} { return return_value(IPV4_TYPE); }
<INITIAL,expression>{RE_IPV4NET} { return return_value(IPV4NET_TYPE); }
diff --git a/src/cli_parse.y b/src/cli_parse.y
index 50b1313..0f32928 100644
--- a/src/cli_parse.y
+++ b/src/cli_parse.y
@@ -43,7 +43,6 @@ static void cli_deferror(const char *);
%token DUMMY
%left SEMI
%token <val>VALUE
-%token <val>PRIORITY_VALUE
%token <type>TYPE_DEF
%token <strp>VAR
%token <strp> STRING
@@ -175,7 +174,7 @@ default_cause: DEFAULT STRING
yy_cli_parse_error((const char *)"Bad default\n");
parse_defp->def_default = $2;
}
-priority_stmt: PRIORITY PRIORITY_VALUE
+priority_stmt: PRIORITY VALUE
{
char *tmp = $2.val;
long long int cval = 0;
diff --git a/src/cli_val.h b/src/cli_val.h
index e6182e7..728b307 100644
--- a/src/cli_val.h
+++ b/src/cli_val.h
@@ -30,7 +30,8 @@ typedef enum {
MACADDR_TYPE,
DOMAIN_TYPE, /*end of addr types */
TEXT_TYPE,
- BOOL_TYPE
+ BOOL_TYPE,
+ PRIORITY_TYPE
}vtw_type_e;
typedef enum {