@@ -2035,52 +2035,27 @@ STATIC void compile_and_expr(compiler_t *comp, const byte *p, const byte *ptop)
2035
2035
c_binary_op (comp , p , ptop , MP_BINARY_OP_AND );
2036
2036
}
2037
2037
2038
- STATIC void compile_shift_expr (compiler_t * comp , const byte * p , const byte * ptop ) {
2039
- p = compile_node (comp , p );
2040
- while (p != ptop ) {
2041
- byte tok ;
2042
- p = pt_tok_extract (p , & tok );
2043
- p = compile_node (comp , p );
2044
- if (tok == MP_TOKEN_OP_DBL_LESS ) {
2045
- EMIT_ARG (binary_op , MP_BINARY_OP_LSHIFT );
2046
- } else {
2047
- assert (tok == MP_TOKEN_OP_DBL_MORE ); // should be
2048
- EMIT_ARG (binary_op , MP_BINARY_OP_RSHIFT );
2049
- }
2050
- }
2051
- }
2052
-
2053
- STATIC void compile_arith_expr (compiler_t * comp , const byte * p , const byte * ptop ) {
2054
- p = compile_node (comp , p );
2055
- while (p != ptop ) {
2056
- byte tok ;
2057
- p = pt_tok_extract (p , & tok );
2058
- p = compile_node (comp , p );
2059
- if (tok == MP_TOKEN_OP_PLUS ) {
2060
- EMIT_ARG (binary_op , MP_BINARY_OP_ADD );
2061
- } else {
2062
- assert (tok == MP_TOKEN_OP_MINUS ); // should be
2063
- EMIT_ARG (binary_op , MP_BINARY_OP_SUBTRACT );
2064
- }
2065
- }
2066
- }
2067
-
2068
2038
STATIC void compile_term (compiler_t * comp , const byte * p , const byte * ptop ) {
2069
2039
p = compile_node (comp , p );
2070
2040
while (p != ptop ) {
2071
2041
byte tok ;
2072
2042
p = pt_tok_extract (p , & tok );
2073
2043
p = compile_node (comp , p );
2074
- if (tok == MP_TOKEN_OP_STAR ) {
2075
- EMIT_ARG (binary_op , MP_BINARY_OP_MULTIPLY );
2076
- } else if (tok == MP_TOKEN_OP_DBL_SLASH ) {
2077
- EMIT_ARG (binary_op , MP_BINARY_OP_FLOOR_DIVIDE );
2078
- } else if (tok == MP_TOKEN_OP_SLASH ) {
2079
- EMIT_ARG (binary_op , MP_BINARY_OP_TRUE_DIVIDE );
2080
- } else {
2081
- assert (tok == MP_TOKEN_OP_PERCENT ); // should be
2082
- EMIT_ARG (binary_op , MP_BINARY_OP_MODULO );
2044
+ mp_binary_op_t op ;
2045
+ switch (tok ) {
2046
+ case MP_TOKEN_OP_PLUS : op = MP_BINARY_OP_ADD ; break ;
2047
+ case MP_TOKEN_OP_MINUS : op = MP_BINARY_OP_SUBTRACT ; break ;
2048
+ case MP_TOKEN_OP_STAR : op = MP_BINARY_OP_MULTIPLY ; break ;
2049
+ case MP_TOKEN_OP_DBL_SLASH : op = MP_BINARY_OP_FLOOR_DIVIDE ; break ;
2050
+ case MP_TOKEN_OP_SLASH : op = MP_BINARY_OP_TRUE_DIVIDE ; break ;
2051
+ case MP_TOKEN_OP_PERCENT : op = MP_BINARY_OP_MODULO ; break ;
2052
+ case MP_TOKEN_OP_DBL_LESS : op = MP_BINARY_OP_LSHIFT ; break ;
2053
+ default :
2054
+ assert (tok == MP_TOKEN_OP_DBL_MORE );
2055
+ op = MP_BINARY_OP_RSHIFT ;
2056
+ break ;
2083
2057
}
2058
+ EMIT_ARG (binary_op , op );
2084
2059
}
2085
2060
}
2086
2061
0 commit comments