com.google.dart.compiler.backend.js
Class JsFirstExpressionVisitor

java.lang.Object
  extended by JsVisitor
      extended by com.google.dart.compiler.backend.js.ast.RecursiveJsVisitor
          extended by com.google.dart.compiler.backend.js.JsFirstExpressionVisitor

public class JsFirstExpressionVisitor
extends RecursiveJsVisitor

Determines if an expression statement needs to be surrounded by parentheses.

The statement or the left-most expression needs to be surrounded by parentheses if the left-most expression is an object literal or a function object. Function declarations do not need parentheses.

For example the following require parentheses:

The following do not require parentheses:


Method Summary
static boolean exec(JsExpressionStatement statement)
           
 void visitArray(JsArrayLiteral x)
           
 void visitArrayAccess(JsArrayAccess x)
           
 void visitBinaryExpression(JsBinaryOperation x)
           
 void visitConditional(JsConditional x)
           
 void visitFunction(JsFunction x)
           
 void visitInvocation(JsInvocation invocation)
           
 void visitNameRef(JsNameRef nameRef)
           
 void visitNew(JsNew x)
           
 void visitObjectLiteral(JsObjectLiteral x)
           
 void visitPostfixOperation(JsPostfixOperation x)
           
 void visitPrefixOperation(JsPrefixOperation x)
           
 
Methods inherited from class com.google.dart.compiler.backend.js.ast.RecursiveJsVisitor
visitElement
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

exec

public static boolean exec(JsExpressionStatement statement)

visitArrayAccess

public void visitArrayAccess(@NotNull
                             JsArrayAccess x)

visitArray

public void visitArray(@NotNull
                       JsArrayLiteral x)

visitBinaryExpression

public void visitBinaryExpression(@NotNull
                                  JsBinaryOperation x)

visitConditional

public void visitConditional(@NotNull
                             JsConditional x)

visitFunction

public void visitFunction(@NotNull
                          JsFunction x)

visitInvocation

public void visitInvocation(@NotNull
                            JsInvocation invocation)

visitNameRef

public void visitNameRef(@NotNull
                         JsNameRef nameRef)

visitNew

public void visitNew(@NotNull
                     JsNew x)

visitObjectLiteral

public void visitObjectLiteral(@NotNull
                               JsObjectLiteral x)

visitPostfixOperation

public void visitPostfixOperation(@NotNull
                                  JsPostfixOperation x)

visitPrefixOperation

public void visitPrefixOperation(@NotNull
                                 JsPrefixOperation x)