# HG changeset patch # User John W. Eaton # Date 1455812387 18000 # Node ID 3d375b0905a02a8dec7f07cbef32a57df269925a # Parent 350caa6afadf6861b9010c7eed4ca5658b010ef9 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. diff -r 350caa6afadf -r 3d375b0905a0 libinterp/octave-value/ov.cc --- a/libinterp/octave-value/ov.cc Thu Feb 18 11:10:05 2016 -0500 +++ b/libinterp/octave-value/ov.cc Thu Feb 18 11:19:47 2016 -0500 @@ -189,12 +189,6 @@ case op_ldiv: return "\\"; - case op_lshift: - return "<<"; - - case op_rshift: - return ">>"; - case op_lt: return "<"; @@ -369,12 +363,6 @@ case op_pow_eq: return "^="; - case op_lshift_eq: - return "<<="; - - case op_rshift_eq: - return ">>="; - case op_el_mul_eq: return ".*="; @@ -421,12 +409,6 @@ case op_pow_eq: return op_pow; - case op_lshift_eq: - return op_lshift; - - case op_rshift_eq: - return op_rshift; - case op_el_mul_eq: return op_el_mul; @@ -2612,12 +2594,6 @@ case op_pow_eq: return op_pow; - case op_lshift_eq: - return op_lshift; - - case op_rshift_eq: - return op_rshift; - case op_el_mul_eq: return op_el_mul; diff -r 350caa6afadf -r 3d375b0905a0 libinterp/octave-value/ov.h --- a/libinterp/octave-value/ov.h Thu Feb 18 11:10:05 2016 -0500 +++ b/libinterp/octave-value/ov.h Thu Feb 18 11:19:47 2016 -0500 @@ -94,8 +94,6 @@ op_div, // mrdivide op_pow, // mpower op_ldiv, // mldivide - op_lshift, - op_rshift, op_lt, // lt op_le, // le op_eq, // eq @@ -139,8 +137,6 @@ op_div_eq, op_ldiv_eq, op_pow_eq, - op_lshift_eq, - op_rshift_eq, op_el_mul_eq, op_el_div_eq, op_el_ldiv_eq, @@ -1507,8 +1503,6 @@ OV_BINOP_FN (op_pow) OV_BINOP_FN (op_ldiv) -OV_BINOP_FN (op_lshift) -OV_BINOP_FN (op_rshift) OV_BINOP_FN_OP (op_lt, <) OV_BINOP_FN_OP (op_le, <=) diff -r 350caa6afadf -r 3d375b0905a0 libinterp/parse-tree/lex.ll --- a/libinterp/parse-tree/lex.ll Thu Feb 18 11:10:05 2016 -0500 +++ b/libinterp/parse-tree/lex.ll Thu Feb 18 11:19:47 2016 -0500 @@ -1539,8 +1539,6 @@ "**" { CMD_OR_OP ("**", POW, false); } "&&" { CMD_OR_OP ("&&", EXPR_AND_AND, true); } "||" { CMD_OR_OP ("||", EXPR_OR_OR, true); } -"<<" { CMD_OR_OP ("<<", LSHIFT, false); } -">>" { CMD_OR_OP (">>", RSHIFT, false); } ";" { bool at_beginning_of_statement @@ -1678,8 +1676,6 @@ ".**=" { CMD_OR_COMPUTED_ASSIGN_OP (".^=", EPOW_EQ); } "&=" { CMD_OR_COMPUTED_ASSIGN_OP ("&=", AND_EQ); } "|=" { CMD_OR_COMPUTED_ASSIGN_OP ("|=", OR_EQ); } -"<<=" { CMD_OR_COMPUTED_ASSIGN_OP ("<<=", LSHIFT_EQ); } -">>=" { CMD_OR_COMPUTED_ASSIGN_OP (">>=", RSHIFT_EQ); } %{ // In Matlab, '{' may also trigger command syntax. @@ -2185,9 +2181,8 @@ || tok == EXPR_GT || tok == EXPR_LE || tok == EXPR_LT || tok == EXPR_NE || tok == EXPR_NOT || tok == EXPR_OR || tok == EXPR_OR_OR || tok == LEFTDIV || tok == LEFTDIV_EQ - || tok == LSHIFT || tok == LSHIFT_EQ || tok == MUL_EQ - || tok == OR_EQ || tok == POW || tok == POW_EQ - || tok == RSHIFT || tok == RSHIFT_EQ || tok == SUB_EQ); + || tok == MUL_EQ || tok == OR_EQ || tok == POW + || tok == POW_EQ || tok == SUB_EQ); } bool @@ -3228,10 +3223,6 @@ case EPOW_EQ: std::cerr << "EPOW_EQ\n"; break; case AND_EQ: std::cerr << "AND_EQ\n"; break; case OR_EQ: std::cerr << "OR_EQ\n"; break; - case LSHIFT_EQ: std::cerr << "LSHIFT_EQ\n"; break; - case RSHIFT_EQ: std::cerr << "RSHIFT_EQ\n"; break; - case LSHIFT: std::cerr << "LSHIFT\n"; break; - case RSHIFT: std::cerr << "RSHIFT\n"; break; case EXPR_AND_AND: std::cerr << "EXPR_AND_AND\n"; break; case EXPR_OR_OR: std::cerr << "EXPR_OR_OR\n"; break; case EXPR_AND: std::cerr << "EXPR_AND\n"; break; diff -r 350caa6afadf -r 3d375b0905a0 libinterp/parse-tree/oct-parse.in.yy --- a/libinterp/parse-tree/oct-parse.in.yy Thu Feb 18 11:10:05 2016 -0500 +++ b/libinterp/parse-tree/oct-parse.in.yy Thu Feb 18 11:19:47 2016 -0500 @@ -208,7 +208,6 @@ %token '=' ':' '-' '+' '*' '/' %token ADD_EQ SUB_EQ MUL_EQ DIV_EQ LEFTDIV_EQ POW_EQ %token EMUL_EQ EDIV_EQ ELEFTDIV_EQ EPOW_EQ AND_EQ OR_EQ -%token LSHIFT_EQ RSHIFT_EQ LSHIFT RSHIFT %token EXPR_AND_AND EXPR_OR_OR %token EXPR_AND EXPR_OR EXPR_NOT %token EXPR_LT EXPR_LE EXPR_EQ EXPR_NE EXPR_GE EXPR_GT @@ -305,13 +304,12 @@ %type method_decl1 // Precedence and associativity. -%right '=' ADD_EQ SUB_EQ MUL_EQ DIV_EQ LEFTDIV_EQ POW_EQ EMUL_EQ EDIV_EQ ELEFTDIV_EQ EPOW_EQ OR_EQ AND_EQ LSHIFT_EQ RSHIFT_EQ +%right '=' ADD_EQ SUB_EQ MUL_EQ DIV_EQ LEFTDIV_EQ POW_EQ EMUL_EQ EDIV_EQ ELEFTDIV_EQ EPOW_EQ OR_EQ AND_EQ %left EXPR_OR_OR %left EXPR_AND_AND %left EXPR_OR %left EXPR_AND %left EXPR_LT EXPR_LE EXPR_EQ EXPR_NE EXPR_GE EXPR_GT -%left LSHIFT RSHIFT %left ':' %left '-' '+' EPLUS EMINUS %left '*' '/' LEFTDIV EMUL EDIV ELEFTDIV @@ -832,10 +830,6 @@ simple_expr : colon_expr { $$ = $1; } - | simple_expr LSHIFT simple_expr - { $$ = parser.make_binary_op (LSHIFT, $1, $2, $3); } - | simple_expr RSHIFT simple_expr - { $$ = parser.make_binary_op (RSHIFT, $1, $2, $3); } | simple_expr EXPR_LT simple_expr { $$ = parser.make_binary_op (EXPR_LT, $1, $2, $3); } | simple_expr EXPR_LE simple_expr @@ -886,10 +880,6 @@ { $$ = parser.make_assign_op (LEFTDIV_EQ, $1, $2, $3); } | assign_lhs POW_EQ expression { $$ = parser.make_assign_op (POW_EQ, $1, $2, $3); } - | assign_lhs LSHIFT_EQ expression - { $$ = parser.make_assign_op (LSHIFT_EQ, $1, $2, $3); } - | assign_lhs RSHIFT_EQ expression - { $$ = parser.make_assign_op (RSHIFT_EQ, $1, $2, $3); } | assign_lhs EMUL_EQ expression { $$ = parser.make_assign_op (EMUL_EQ, $1, $2, $3); } | assign_lhs EDIV_EQ expression @@ -2437,14 +2427,6 @@ t = octave_value::op_el_ldiv; break; - case LSHIFT: - t = octave_value::op_lshift; - break; - - case RSHIFT: - t = octave_value::op_rshift; - break; - case EXPR_LT: t = octave_value::op_lt; break; @@ -3003,14 +2985,6 @@ t = octave_value::op_pow_eq; break; - case LSHIFT_EQ: - t = octave_value::op_lshift_eq; - break; - - case RSHIFT_EQ: - t = octave_value::op_rshift_eq; - break; - case EMUL_EQ: t = octave_value::op_el_mul_eq; break;