comparison libinterp/parse-tree/lex.ll @ 21294:3d375b0905a0

eliminate unused << and >> operators from Octave scripting language * ov.h, ov.cc (binary_op): Remove op_lshift and op_rshift from the list of binary operators. Delete all uses. (assign_op): Remove op_lshift_eq and op_rshift_eq from the list of assignment operators. Delete all uses. * lex.ll, oct-parse.in.yy (LSHIFT, RSHIFT, LSHIFT_EQ, RSHIFT_EQ): Delete tokens.
author John W. Eaton <jwe@octave.org>
date Thu, 18 Feb 2016 11:19:47 -0500
parents dfcb9d74b253
children 40de9f8f23a6
comparison
equal deleted inserted replaced
21293:350caa6afadf 21294:3d375b0905a0
1537 1537
1538 "^" { CMD_OR_OP ("^", POW, true); } 1538 "^" { CMD_OR_OP ("^", POW, true); }
1539 "**" { CMD_OR_OP ("**", POW, false); } 1539 "**" { CMD_OR_OP ("**", POW, false); }
1540 "&&" { CMD_OR_OP ("&&", EXPR_AND_AND, true); } 1540 "&&" { CMD_OR_OP ("&&", EXPR_AND_AND, true); }
1541 "||" { CMD_OR_OP ("||", EXPR_OR_OR, true); } 1541 "||" { CMD_OR_OP ("||", EXPR_OR_OR, true); }
1542 "<<" { CMD_OR_OP ("<<", LSHIFT, false); }
1543 ">>" { CMD_OR_OP (">>", RSHIFT, false); }
1544 1542
1545 ";" { 1543 ";" {
1546 bool at_beginning_of_statement 1544 bool at_beginning_of_statement
1547 = (! (curr_lexer->whitespace_is_significant () 1545 = (! (curr_lexer->whitespace_is_significant ()
1548 || curr_lexer->looking_at_object_index.front ())); 1546 || curr_lexer->looking_at_object_index.front ()));
1676 "**=" { CMD_OR_COMPUTED_ASSIGN_OP ("^=", POW_EQ); } 1674 "**=" { CMD_OR_COMPUTED_ASSIGN_OP ("^=", POW_EQ); }
1677 ".^=" { CMD_OR_COMPUTED_ASSIGN_OP (".^=", EPOW_EQ); } 1675 ".^=" { CMD_OR_COMPUTED_ASSIGN_OP (".^=", EPOW_EQ); }
1678 ".**=" { CMD_OR_COMPUTED_ASSIGN_OP (".^=", EPOW_EQ); } 1676 ".**=" { CMD_OR_COMPUTED_ASSIGN_OP (".^=", EPOW_EQ); }
1679 "&=" { CMD_OR_COMPUTED_ASSIGN_OP ("&=", AND_EQ); } 1677 "&=" { CMD_OR_COMPUTED_ASSIGN_OP ("&=", AND_EQ); }
1680 "|=" { CMD_OR_COMPUTED_ASSIGN_OP ("|=", OR_EQ); } 1678 "|=" { CMD_OR_COMPUTED_ASSIGN_OP ("|=", OR_EQ); }
1681 "<<=" { CMD_OR_COMPUTED_ASSIGN_OP ("<<=", LSHIFT_EQ); }
1682 ">>=" { CMD_OR_COMPUTED_ASSIGN_OP (">>=", RSHIFT_EQ); }
1683 1679
1684 %{ 1680 %{
1685 // In Matlab, '{' may also trigger command syntax. 1681 // In Matlab, '{' may also trigger command syntax.
1686 %} 1682 %}
1687 1683
2183 || tok == EPOW || tok == EPOW_EQ || tok == EXPR_AND 2179 || tok == EPOW || tok == EPOW_EQ || tok == EXPR_AND
2184 || tok == EXPR_AND_AND || tok == EXPR_EQ || tok == EXPR_GE 2180 || tok == EXPR_AND_AND || tok == EXPR_EQ || tok == EXPR_GE
2185 || tok == EXPR_GT || tok == EXPR_LE || tok == EXPR_LT 2181 || tok == EXPR_GT || tok == EXPR_LE || tok == EXPR_LT
2186 || tok == EXPR_NE || tok == EXPR_NOT || tok == EXPR_OR 2182 || tok == EXPR_NE || tok == EXPR_NOT || tok == EXPR_OR
2187 || tok == EXPR_OR_OR || tok == LEFTDIV || tok == LEFTDIV_EQ 2183 || tok == EXPR_OR_OR || tok == LEFTDIV || tok == LEFTDIV_EQ
2188 || tok == LSHIFT || tok == LSHIFT_EQ || tok == MUL_EQ 2184 || tok == MUL_EQ || tok == OR_EQ || tok == POW
2189 || tok == OR_EQ || tok == POW || tok == POW_EQ 2185 || tok == POW_EQ || tok == SUB_EQ);
2190 || tok == RSHIFT || tok == RSHIFT_EQ || tok == SUB_EQ);
2191 } 2186 }
2192 2187
2193 bool 2188 bool
2194 lexical_feedback::previous_token_is_keyword (void) const 2189 lexical_feedback::previous_token_is_keyword (void) const
2195 { 2190 {
3226 case EDIV_EQ: std::cerr << "EDIV_EQ\n"; break; 3221 case EDIV_EQ: std::cerr << "EDIV_EQ\n"; break;
3227 case ELEFTDIV_EQ: std::cerr << "ELEFTDIV_EQ\n"; break; 3222 case ELEFTDIV_EQ: std::cerr << "ELEFTDIV_EQ\n"; break;
3228 case EPOW_EQ: std::cerr << "EPOW_EQ\n"; break; 3223 case EPOW_EQ: std::cerr << "EPOW_EQ\n"; break;
3229 case AND_EQ: std::cerr << "AND_EQ\n"; break; 3224 case AND_EQ: std::cerr << "AND_EQ\n"; break;
3230 case OR_EQ: std::cerr << "OR_EQ\n"; break; 3225 case OR_EQ: std::cerr << "OR_EQ\n"; break;
3231 case LSHIFT_EQ: std::cerr << "LSHIFT_EQ\n"; break;
3232 case RSHIFT_EQ: std::cerr << "RSHIFT_EQ\n"; break;
3233 case LSHIFT: std::cerr << "LSHIFT\n"; break;
3234 case RSHIFT: std::cerr << "RSHIFT\n"; break;
3235 case EXPR_AND_AND: std::cerr << "EXPR_AND_AND\n"; break; 3226 case EXPR_AND_AND: std::cerr << "EXPR_AND_AND\n"; break;
3236 case EXPR_OR_OR: std::cerr << "EXPR_OR_OR\n"; break; 3227 case EXPR_OR_OR: std::cerr << "EXPR_OR_OR\n"; break;
3237 case EXPR_AND: std::cerr << "EXPR_AND\n"; break; 3228 case EXPR_AND: std::cerr << "EXPR_AND\n"; break;
3238 case EXPR_OR: std::cerr << "EXPR_OR\n"; break; 3229 case EXPR_OR: std::cerr << "EXPR_OR\n"; break;
3239 case EXPR_NOT: std::cerr << "EXPR_NOT\n"; break; 3230 case EXPR_NOT: std::cerr << "EXPR_NOT\n"; break;