package lang.java; import aioli.vtp.*; public class ppstd extends lang.ppaux { public static int prec(Tree tree) { switch (tree.operator().getCode()) { case op_binary: { tree = tree.down(2); switch (tree.operator().getCode()) { case op_assignment: case op_plusAssignment: case op_minusAssignment: case op_timesAssignment: case op_divAssignment: case op_modAssignment: case op_rightShiftAssignment: case op_unsignedRightShiftAssignment: case op_leftShiftAssignment: case op_andAssignment: case op_xorAssignment: case op_iorAssignment: return 13; case op_cond: return 12; case op_lor: return 11; case op_land: return 10; case op_ior: return 9; case op_xor: return 8; case op_and: return 7; case op_neq: case op_eq: return 6; case op_less: case op_gtr: case op_lessEq: case op_gtrEq: return 5; case op_leftShift: case op_rightShift: case op_unsignedRightShift: return 4; case op_plus: case op_minus: return 3; case op_times: case op_div: case op_mod: return 2; default: return 0; } } case op_cond: return 12; default: return 0; } } public static boolean leftp (Tree tree1, Tree tree2) { if (prec(tree2) <= prec(tree1)) return false; return true; } public static boolean rightp (Tree tree1, Tree tree2) { if (prec(tree2) < prec(tree1)) return false; return true; } public static boolean unip (Tree tree1, Tree tree2) { return false; } private final static int op_none = 84; private final static int op_binary = 10; private final static int op_cond = 25; private final static int op_assignment = 9; private final static int op_minusAssignment = 74; private final static int op_plusAssignment = 92; private final static int op_timesAssignment = 113; private final static int op_divAssignment = 35; private final static int op_modAssignment = 76; private final static int op_rightShiftAssignment = 100; private final static int op_unsignedRightShiftAssignment = 121; private final static int op_leftShiftAssignment = 65; private final static int op_andAssignment = 4; private final static int op_xorAssignment = 127; private final static int op_iorAssignment = 61; private final static int op_leftShift = 64; private final static int op_rightShift = 99; private final static int op_unsignedRightShift = 120; private final static int op_neq = 79; private final static int op_eq = 37; private final static int op_minus = 73; private final static int op_plus = 91; private final static int op_land = 63; private final static int op_times = 112; private final static int op_mod = 75; private final static int op_div = 34; private final static int op_and = 3; private final static int op_lor = 70; private final static int op_ior = 60; private final static int op_xor = 126; private final static int op_not = 85; private final static int op_complement = 24; private final static int op_less = 66; private final static int op_lessEq = 67; private final static int op_gtr = 45; private final static int op_gtrEq = 46; private final static int op_decr = 30; private final static int op_incr = 51; private final static int op_postfix = 93; private final static int op_prefix = 94; private final static int op_unary = 119; private final static int op_cast = 15; private final static int op_integer = 57; private final static int op_linteger = 68; private final static int op_string = 103; private final static int op_character = 18; private final static int op_floating = 43; private final static int op_hexa = 47; private final static int op_superInvocation = 105; private final static int op_thisInvocation = 110; private final static int op_call = 13; private final static int op_newObject = 83; private final static int op_newArray = 81; private final static int op_dims = 33; private final static int op_newDim = 82; private final static int op_dim = 32; private final static int op_index = 52; private final static int op_access = 2; private final static int op_return = 98; }