aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
diff options
context:
space:
mode:
authorGravatar brandjon <brandjon@google.com>2017-06-27 18:14:54 +0200
committerGravatar Marcel Hlopko <hlopko@google.com>2017-06-28 10:17:45 +0200
commite2ffd5d3eb8a24efc26568543ae32637c6d26380 (patch)
tree63ec3358f98aa758b8d2a83c3d5e6218e6a37c03 /src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
parent3bc1547a5cd78bd6639d968b3cfddbe26b1c31d5 (diff)
Add a pretty printer for Skylark ASTs
This can be used to canonically compare ASTs for equality, e.g. in tests. RELNOTES: None PiperOrigin-RevId: 160283160
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
index 2c7a2c888f..63120932a0 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
@@ -32,6 +32,7 @@ import com.google.devtools.build.lib.syntax.Runtime.NoneType;
import com.google.devtools.build.lib.util.Pair;
import com.google.devtools.build.lib.util.Preconditions;
import com.google.devtools.build.lib.util.StringUtilities;
+import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
@@ -249,6 +250,23 @@ public final class FuncallExpression extends Expression {
return numPositionalArgs;
}
+ @Override
+ public void prettyPrint(Appendable buffer) throws IOException {
+ if (obj != null) {
+ obj.prettyPrint(buffer);
+ buffer.append('.');
+ }
+ func.prettyPrint(buffer);
+ buffer.append('(');
+ String sep = "";
+ for (Argument.Passed arg : args) {
+ buffer.append(sep);
+ arg.prettyPrint(buffer);
+ sep = ", ";
+ }
+ buffer.append(')');
+ }
+
@Override
public String toString() {
StringBuilder sb = new StringBuilder();