diff --git a/src/frontend/parse-bison.y b/src/frontend/parse-bison.y index 2b37ddc6e..0cac0e407 100644 --- a/src/frontend/parse-bison.y +++ b/src/frontend/parse-bison.y @@ -82,7 +82,7 @@ %token TOK_NUM %token TOK_STR -%token TOK_LE TOK_GE TOK_NE TOK_LRANGE TOK_RRANGE +%token TOK_LE TOK_GE TOK_NE %type exp exp_list one_exp @@ -99,7 +99,6 @@ %left NEG /* negation--unary minus */ %right '^' /* exponentiation */ %left '[' ']' -%left TOK_LRANGE TOK_RRANGE %initial-action /* initialize yylval */ { @@ -164,7 +163,7 @@ exp: | exp '|' exp { $$ = mkbnode(PT_OP_OR, $1, $3); } | exp '[' exp ']' { $$ = mkbnode(PT_OP_INDX, $1, $3); } - | exp TOK_LRANGE exp TOK_RRANGE { $$ = mkbnode(PT_OP_RANGE, $1, $3); } + | exp '[' '[' exp ']' ']' { $$ = mkbnode(PT_OP_RANGE, $1, $4); } | exp '?' exp ':' exp { $$ = mkbnode(PT_OP_TERNARY,$1, mkbnode(PT_OP_COMMA,$3,$5)); } ; diff --git a/src/frontend/parse.c b/src/frontend/parse.c index ad3b7f1a5..300447779 100644 --- a/src/frontend/parse.c +++ b/src/frontend/parse.c @@ -606,18 +606,8 @@ PPlex(YYSTYPE *lvalp, struct PPltype *llocp, char **line) switch (*sbuf) { case '[': - if (sbuf[1] == '[') { - lexer_return(TOK_LRANGE, 2); - } else { - lexer_return(*sbuf, 1); - } - case ']': - if (sbuf[1] == ']') { - lexer_return(TOK_RRANGE, 2); - } else { - lexer_return(*sbuf, 1); - } + lexer_return(*sbuf, 1); case '>': case '<':