60 UnaryOp(JExpression e, String op) {
61 this.op = op;
62 this.e = e;
63 opFirst = false;
64 }
65
66 public void generate(JFormatter f) {
67 if (opFirst)
68 f.p('(').p(op).g(e).p(')');
69 else
70 f.p('(').g(e).p(op).p(')');
71 }
72
73 }
74
75 public static JExpression minus(JExpression e) {
76 return new UnaryOp("-", e);
77 }
78
79 /**
80 * Logical not <tt>'!x'</tt>.
81 */
82 public static JExpression not(JExpression e) {
83 if (e == JExpr.TRUE) return JExpr.FALSE;
84 if (e == JExpr.FALSE) return JExpr.TRUE;
85 return new UnaryOp("!", e);
86 }
87
88 public static JExpression complement(JExpression e) {
89 return new UnaryOp("~", e);
90 }
91
92 static private class TightUnaryOp extends UnaryOp {
93
94 TightUnaryOp(JExpression e, String op) {
95 super(e, op);
96 }
97
98 public void generate(JFormatter f) {
99 if (opFirst)
100 f.p(op).g(e);
|
60 UnaryOp(JExpression e, String op) {
61 this.op = op;
62 this.e = e;
63 opFirst = false;
64 }
65
66 public void generate(JFormatter f) {
67 if (opFirst)
68 f.p('(').p(op).g(e).p(')');
69 else
70 f.p('(').g(e).p(op).p(')');
71 }
72
73 }
74
75 public static JExpression minus(JExpression e) {
76 return new UnaryOp("-", e);
77 }
78
79 /**
80 * Logical not {@code '!x'}.
81 */
82 public static JExpression not(JExpression e) {
83 if (e == JExpr.TRUE) return JExpr.FALSE;
84 if (e == JExpr.FALSE) return JExpr.TRUE;
85 return new UnaryOp("!", e);
86 }
87
88 public static JExpression complement(JExpression e) {
89 return new UnaryOp("~", e);
90 }
91
92 static private class TightUnaryOp extends UnaryOp {
93
94 TightUnaryOp(JExpression e, String op) {
95 super(e, op);
96 }
97
98 public void generate(JFormatter f) {
99 if (opFirst)
100 f.p(op).g(e);
|