diff options
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.java | 16 |
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; } |