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

java.lang.Object
  extended by com.google.dart.compiler.backend.js.ast.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 com.google.dart.compiler.backend.js.ast.JsVisitor
accept, acceptList, acceptLvalue, acceptWithInsertRemove, visitElement, visitPropertyInitializer
 
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(JsArrayAccess x)
Overrides:
visitArrayAccess in class JsVisitor

visitArray

public void visitArray(JsArrayLiteral x)
Overrides:
visitArray in class JsVisitor

visitBinaryExpression

public void visitBinaryExpression(JsBinaryOperation binaryOperation)
Overrides:
visitBinaryExpression in class JsVisitor

visitBlock

public void visitBlock(JsBlock x)
Overrides:
visitBlock in class JsVisitor

visitBoolean

public void visitBoolean(JsLiteral.JsBooleanLiteral x)
Overrides:
visitBoolean in class JsVisitor

visitBreak

public void visitBreak(JsBreak x)
Overrides:
visitBreak in class JsVisitor

visitContinue

public void visitContinue(JsContinue x)
Overrides:
visitContinue in class JsVisitor

visitCase

public void visitCase(JsCase x)
Overrides:
visitCase in class JsVisitor

visitCatch

public void visitCatch(JsCatch x)
Overrides:
visitCatch in class JsVisitor

visitConditional

public void visitConditional(JsConditional x)
Overrides:
visitConditional in class JsVisitor

visitDebugger

public void visitDebugger(JsDebugger x)
Overrides:
visitDebugger in class JsVisitor

visitDefault

public void visitDefault(JsDefault x)
Overrides:
visitDefault in class JsVisitor

visitWhile

public void visitWhile(JsWhile x)
Overrides:
visitWhile in class JsVisitor

visitDoWhile

public void visitDoWhile(JsDoWhile x)
Overrides:
visitDoWhile in class JsVisitor

visitEmpty

public void visitEmpty(JsEmpty x)
Overrides:
visitEmpty in class JsVisitor

visitExpressionStatement

public void visitExpressionStatement(JsExpressionStatement x)
Overrides:
visitExpressionStatement in class JsVisitor

visitFor

public void visitFor(JsFor x)
Overrides:
visitFor in class JsVisitor

visitForIn

public void visitForIn(JsForIn x)
Overrides:
visitForIn in class JsVisitor

visitFunction

public void visitFunction(JsFunction x)
Overrides:
visitFunction in class JsVisitor

visitIf

public void visitIf(JsIf x)
Overrides:
visitIf in class JsVisitor

visitInvocation

public void visitInvocation(JsInvocation invocation)
Overrides:
visitInvocation in class JsVisitor

visitLabel

public void visitLabel(JsLabel x)
Overrides:
visitLabel in class JsVisitor

visitNameRef

public void visitNameRef(JsNameRef nameRef)
Overrides:
visitNameRef in class JsVisitor

beforeNodePrinted

protected void beforeNodePrinted(JsNode node)

visitNew

public void visitNew(JsNew x)
Overrides:
visitNew in class JsVisitor

visitNull

public void visitNull(JsNullLiteral x)
Overrides:
visitNull in class JsVisitor

visitInt

public void visitInt(JsNumberLiteral.JsIntLiteral x)
Overrides:
visitInt in class JsVisitor

visitDouble

public void visitDouble(JsNumberLiteral.JsDoubleLiteral x)
Overrides:
visitDouble in class JsVisitor

visitObjectLiteral

public void visitObjectLiteral(JsObjectLiteral objectLiteral)
Overrides:
visitObjectLiteral in class JsVisitor

visitParameter

public void visitParameter(JsParameter x)
Overrides:
visitParameter in class JsVisitor

visitPostfixOperation

public void visitPostfixOperation(JsPostfixOperation x)
Overrides:
visitPostfixOperation in class JsVisitor

visitPrefixOperation

public void visitPrefixOperation(JsPrefixOperation x)
Overrides:
visitPrefixOperation in class JsVisitor

visitProgram

public void visitProgram(JsProgram x)
Overrides:
visitProgram in class JsVisitor

visitProgramFragment

public void visitProgramFragment(JsProgramFragment x)
Overrides:
visitProgramFragment in class JsVisitor

visitRegExp

public void visitRegExp(JsRegExp x)
Overrides:
visitRegExp in class JsVisitor

visitReturn

public void visitReturn(JsReturn x)
Overrides:
visitReturn in class JsVisitor

visitString

public void visitString(JsStringLiteral x)
Overrides:
visitString in class JsVisitor

visit

public void visit(JsSwitch x)
Overrides:
visit in class JsVisitor

visitThis

public void visitThis(JsLiteral.JsThisRef x)
Overrides:
visitThis in class JsVisitor

visitThrow

public void visitThrow(JsThrow x)
Overrides:
visitThrow in class JsVisitor

visitTry

public void visitTry(JsTry x)
Overrides:
visitTry in class JsVisitor

visit

public void visit(JsVars.JsVar var)
Overrides:
visit in class JsVisitor

visitVars

public void visitVars(JsVars vars)
Overrides:
visitVars in class JsVisitor

visitDocComment

public void visitDocComment(JsDocComment comment)
Overrides:
visitDocComment in class JsVisitor

newlineOpt

protected final void newlineOpt()

printJsBlock

protected void printJsBlock(JsBlock x,
                            boolean finalNewline)