aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java
index de3bf92c2b..ba868188dd 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/BinaryOperatorExpression.java
@@ -19,6 +19,7 @@ import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.syntax.Concatable.Concatter;
import com.google.devtools.build.lib.syntax.SkylarkList.MutableList;
import com.google.devtools.build.lib.syntax.SkylarkList.Tuple;
+import java.io.IOException;
import java.util.Collections;
import java.util.IllegalFormatException;
@@ -55,7 +56,22 @@ public final class BinaryOperatorExpression extends Expression {
}
@Override
+ public void prettyPrint(Appendable buffer) throws IOException {
+ // TODO(bazel-team): Possibly omit parentheses when they are not needed according to operator
+ // precedence rules. This requires passing down more contextual information.
+ buffer.append('(');
+ lhs.prettyPrint(buffer);
+ buffer.append(' ');
+ buffer.append(operator.toString());
+ buffer.append(' ');
+ rhs.prettyPrint(buffer);
+ buffer.append(')');
+ }
+
+ @Override
public String toString() {
+ // This omits the parentheses for brevity, but is not correct in general due to operator
+ // precedence rules.
return lhs + " " + operator + " " + rhs;
}