From 2283c3f23328597e2725fc8e2fb1cd9870ae547b Mon Sep 17 00:00:00 2001
From: Lukas Stadler <lukas.stadler@oracle.com>
Date: Mon, 12 Dec 2016 13:22:58 +0100
Subject: [PATCH] more concise FastRSyntaxTree

---
 .../r/nodes/builtin/fastr/FastRSyntaxTree.java   | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastRSyntaxTree.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastRSyntaxTree.java
index caed0874e9..0a2a9930f4 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastRSyntaxTree.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/fastr/FastRSyntaxTree.java
@@ -62,7 +62,7 @@ import com.oracle.truffle.r.runtime.nodes.RSyntaxVisitor;
  * Only nodes that return {@code true} to {@link RSyntaxNode#isSyntax()} are processed. N.B. This
  * will reach nodes that implement {@link RSyntaxNode} but are used in {@link RSyntaxNode#INTERNAL}
  * mode</li>
- * <li><b<syntaxelement</b>: Use the {@link RSyntaxVisitor} to visit the "logical" syntax tree.</li>
+ * <li><b>syntaxelement</b>: Use the {@link RSyntaxVisitor} to visit the "logical" syntax tree.</li>
  * </ol>
  *
  */
@@ -71,7 +71,7 @@ public abstract class FastRSyntaxTree extends RBuiltinNode {
 
     @Override
     public Object[] getDefaultParameterValues() {
-        return new Object[]{RMissing.instance, "rsyntaxnode", RRuntime.LOGICAL_FALSE, RRuntime.LOGICAL_FALSE};
+        return new Object[]{RMissing.instance, "syntaxelement", RRuntime.LOGICAL_FALSE, RRuntime.LOGICAL_FALSE};
     }
 
     @Override
@@ -110,12 +110,18 @@ public abstract class FastRSyntaxTree extends RBuiltinNode {
                     @Override
                     protected Void visit(RSyntaxCall element) {
                         printIndent(depth);
-                        writeString(element.getClass().getSimpleName(), false);
+                        RSyntaxElement lhs = element.getSyntaxLHS();
+                        if (lhs instanceof RSyntaxLookup) {
+                            writeString(element.getClass().getSimpleName() + " " + ((RSyntaxLookup) lhs).getIdentifier(), false);
+                        } else {
+                            writeString(element.getClass().getSimpleName(), false);
+                        }
                         processSourceSection(element.getSourceSection(), printSource);
                         printnl();
-                        RSyntaxElement lhs = element.getSyntaxLHS();
                         RSyntaxElement[] arguments = element.getSyntaxArguments();
-                        accept(lhs);
+                        if (!(lhs instanceof RSyntaxLookup)) {
+                            accept(lhs);
+                        }
                         for (RSyntaxElement arg : arguments) {
                             depth++;
                             accept(arg);
-- 
GitLab