X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=scripts%2Fgen_calc_oper.php;h=ab71f62c2542ce98794a89186cae4cf5e958e17b;hp=126e9ac83000c3cef244fb0890972700b0fe8a39;hb=0682ecb84dfe1de08b609c6c0ae641b06f3fa481;hpb=52ed5940ed0ab3cafd36fbded2e83c92563e7b2b diff --git a/scripts/gen_calc_oper.php b/scripts/gen_calc_oper.php index 126e9ac..ab71f62 100644 --- a/scripts/gen_calc_oper.php +++ b/scripts/gen_calc_oper.php @@ -3,7 +3,7 @@ include __DIR__."/_include.php"; $oper = [ - ["NOT", "TILDE"], + ["NOT", "TILDE", "CAST"], ["ASTERISK", "SLASH", "MODULO"], ["PLUS", "MINUS"], ["LSHIFT", "RSHIFT"], @@ -27,26 +27,41 @@ static inline int psi_calc_oper(token_t op1, token_t op2) return 1; } else if (op1 == op2) { return 0; - } else if (!op1) { + } else if (!op1 || op1 == PSI_T_NUMBER) { return 1; - } else if (!op2) { + } else if (!op2 || op2 == PSI_T_NUMBER) { return -1; } switch (op1) { $ops1) : ?> - + case PSI_T_: switch (op2) { $ops2) : ?> + $prec2) : + $ret = 1; + else : + $ret = -1; + endif; + ?> + - case PSI_T_: - return $prec2?1:-1)?>; + return ; + + + + case PSI_T_: + return ; + default: assert(0); break;