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

java.lang.Object
  extended by JsVisitor
      extended by com.google.dart.compiler.backend.js.JsToStringGenerationVisitor
Direct Known Subclasses:
JsSourceGenerationVisitor

public class JsToStringGenerationVisitor
extends JsVisitor

Produces text output from a JavaScript AST.


Field Summary
protected  boolean needSemi
           
protected  TextOutput p
           
 
Constructor Summary
JsToStringGenerationVisitor(TextOutput out)
           
 
Method Summary
protected  void beforeNodePrinted(JsNode node)
           
static java.lang.CharSequence javaScriptString(java.lang.CharSequence chars, boolean forceDoubleQuote)
          Generate JavaScript code that evaluates to the supplied string.
static java.lang.CharSequence javaScriptString(java.lang.String value)
           
protected  void newlineOpt()
           
protected  void printJsBlock(JsBlock x, boolean finalNewline)
           
 void visit(JsSwitch x)
           
 void visit(JsVars.JsVar var)
           
 void visitArray(JsArrayLiteral x)
           
 void visitArrayAccess(JsArrayAccess x)
           
 void visitBinaryExpression(JsBinaryOperation binaryOperation)
           
 void visitBlock(JsBlock x)
           
 void visitBoolean(JsLiteral.JsBooleanLiteral x)
           
 void visitBreak(JsBreak x)
           
 void visitCase(JsCase x)
           
 void visitCatch(JsCatch x)
           
 void visitConditional(JsConditional x)
           
 void visitContinue(JsContinue x)
           
 void visitDebugger(JsDebugger x)
           
 void visitDefault(JsDefault x)
           
 void visitDocComment(JsDocComment comment)
           
 void visitDouble(JsNumberLiteral.JsDoubleLiteral x)
           
 void visitDoWhile(JsDoWhile x)
           
 void visitEmpty(JsEmpty x)
           
 void visitExpressionStatement(JsExpressionStatement x)
           
 void visitFor(JsFor x)
           
 void visitForIn(JsForIn x)
           
 void visitFunction(JsFunction x)
           
 void visitIf(JsIf x)
           
 void visitInt(JsNumberLiteral.JsIntLiteral x)
           
 void visitInvocation(JsInvocation invocation)
           
 void visitLabel(JsLabel x)
           
 void visitNameRef(JsNameRef nameRef)
           
 void visitNew(JsNew x)
           
 void visitNull(JsNullLiteral x)
           
 void visitObjectLiteral(JsObjectLiteral objectLiteral)
           
 void visitParameter(JsParameter x)
           
 void visitPostfixOperation(JsPostfixOperation x)
           
 void visitPrefixOperation(JsPrefixOperation x)
           
 void visitProgram(JsProgram x)
           
 void visitProgramFragment(JsProgramFragment x)
           
 void visitRegExp(JsRegExp x)
           
 void visitReturn(JsReturn x)
           
 void visitString(JsStringLiteral x)
           
 void visitThis(JsLiteral.JsThisRef x)
           
 void visitThrow(JsThrow x)
           
 void visitTry(JsTry x)
           
 void visitVars(JsVars vars)
           
 void visitWhile(JsWhile x)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

needSemi

protected boolean needSemi

p

protected final TextOutput p
Constructor Detail

JsToStringGenerationVisitor

public JsToStringGenerationVisitor(TextOutput out)
Method Detail

javaScriptString

public static java.lang.CharSequence javaScriptString(java.lang.String value)

javaScriptString

public static java.lang.CharSequence javaScriptString(java.lang.CharSequence chars,
                                                      boolean forceDoubleQuote)
Generate JavaScript code that evaluates to the supplied string. Adapted from org.mozilla.javascript.ScriptRuntime#escapeString(String) . The difference is that we quote with either " or ' depending on which one is used less inside the string.


visitArrayAccess

public void visitArrayAccess(@NotNull
                             JsArrayAccess x)

visitArray

public void visitArray(@NotNull
                       JsArrayLiteral x)

visitBinaryExpression

public void visitBinaryExpression(@NotNull
                                  JsBinaryOperation binaryOperation)

visitBlock

public void visitBlock(@NotNull
                       JsBlock x)

visitBoolean

public void visitBoolean(@NotNull
                         JsLiteral.JsBooleanLiteral x)

visitBreak

public void visitBreak(@NotNull
                       JsBreak x)

visitContinue

public void visitContinue(@NotNull
                          JsContinue x)

visitCase

public void visitCase(@NotNull
                      JsCase x)

visitCatch

public void visitCatch(@NotNull
                       JsCatch x)

visitConditional

public void visitConditional(@NotNull
                             JsConditional x)

visitDebugger

public void visitDebugger(@NotNull
                          JsDebugger x)

visitDefault

public void visitDefault(@NotNull
                         JsDefault x)

visitWhile

public void visitWhile(@NotNull
                       JsWhile x)

visitDoWhile

public void visitDoWhile(@NotNull
                         JsDoWhile x)

visitEmpty

public void visitEmpty(@NotNull
                       JsEmpty x)

visitExpressionStatement

public void visitExpressionStatement(@NotNull
                                     JsExpressionStatement x)

visitFor

public void visitFor(@NotNull
                     JsFor x)

visitForIn

public void visitForIn(@NotNull
                       JsForIn x)

visitFunction

public void visitFunction(@NotNull
                          JsFunction x)

visitIf

public void visitIf(@NotNull
                    JsIf x)

visitInvocation

public void visitInvocation(@NotNull
                            JsInvocation invocation)

visitLabel

public void visitLabel(@NotNull
                       JsLabel x)

visitNameRef

public void visitNameRef(@NotNull
                         JsNameRef nameRef)

beforeNodePrinted

protected void beforeNodePrinted(JsNode node)

visitNew

public void visitNew(@NotNull
                     JsNew x)

visitNull

public void visitNull(@NotNull
                      JsNullLiteral x)

visitInt

public void visitInt(@NotNull
                     JsNumberLiteral.JsIntLiteral x)

visitDouble

public void visitDouble(@NotNull
                        JsNumberLiteral.JsDoubleLiteral x)

visitObjectLiteral

public void visitObjectLiteral(@NotNull
                               JsObjectLiteral objectLiteral)

visitParameter

public void visitParameter(@NotNull
                           JsParameter x)

visitPostfixOperation

public void visitPostfixOperation(@NotNull
                                  JsPostfixOperation x)

visitPrefixOperation

public void visitPrefixOperation(@NotNull
                                 JsPrefixOperation x)

visitProgram

public void visitProgram(@NotNull
                         JsProgram x)

visitProgramFragment

public void visitProgramFragment(@NotNull
                                 JsProgramFragment x)

visitRegExp

public void visitRegExp(@NotNull
                        JsRegExp x)

visitReturn

public void visitReturn(@NotNull
                        JsReturn x)

visitString

public void visitString(@NotNull
                        JsStringLiteral x)

visit

public void visit(@NotNull
                  JsSwitch x)

visitThis

public void visitThis(@NotNull
                      JsLiteral.JsThisRef x)

visitThrow

public void visitThrow(@NotNull
                       JsThrow x)

visitTry

public void visitTry(@NotNull
                     JsTry x)

visit

public void visit(@NotNull
                  JsVars.JsVar var)

visitVars

public void visitVars(@NotNull
                      JsVars vars)

visitDocComment

public void visitDocComment(@NotNull
                            JsDocComment comment)

newlineOpt

protected final void newlineOpt()

printJsBlock

protected void printJsBlock(JsBlock x,
                            boolean finalNewline)