org.jruby.ast.visitor.rewriter
Class ReWriteVisitor

java.lang.Object
  extended byorg.jruby.ast.visitor.rewriter.ReWriteVisitor
All Implemented Interfaces:
NodeVisitor
Direct Known Subclasses:
DRegxReWriteVisitor, HereDocReWriteVisitor, IgnoreCommentsReWriteVisitor, MultipleAssignmentReWriteVisitor, ShortIfNodeReWriteVisitor

public class ReWriteVisitor
extends java.lang.Object
implements NodeVisitor

Visits each node and outputs the corresponding Ruby sourcecode for the nodes.

Author:
Mirko Stocker

Field Summary
protected  ReWriterContext config
           
protected  ReWriterFactory factory
           
 
Constructor Summary
ReWriteVisitor(java.io.OutputStream out, java.lang.String source)
           
ReWriteVisitor(ReWriterContext config)
           
ReWriteVisitor(java.io.Writer out, java.lang.String source)
           
 
Method Summary
static java.lang.String createCodeFromNode(Node node, java.lang.String document)
           
static java.lang.String createCodeFromNode(Node node, java.lang.String document, FormatHelper helper)
           
static Node firstChild(Node n)
           
 void flushStream()
           
 ReWriterContext getConfig()
           
protected static int getEndOffset(Node n)
           
static int getLocalVarIndex(Node n)
           
protected  char getSeparatorForStr(Node n)
           
protected  char getSeparatorForSym(Node n)
           
protected  boolean inDRegxNode()
           
protected  boolean inMultipleAssignment()
           
protected  void print(java.math.BigInteger i)
           
protected  void print(char c)
           
protected  void print(double d)
           
protected  void print(int i)
           
protected  void print(long l)
           
protected  void print(java.lang.String s)
           
protected  void printAssignmentOperator()
           
protected  boolean printCommentsAfter(Node iVisited)
           
protected  void printCommentsAtEnd(Node n)
           
protected  void printNewlineAndIndentation()
           
static java.lang.String unescapeChar(char escapedChar)
           
static Node unwrapSingleArrayNode(Node n)
           
 Instruction visitAliasNode(AliasNode iVisited)
           
 Instruction visitAndNode(AndNode iVisited)
           
 void visitAndPrintWithSeparator(java.util.Iterator it)
           
 Instruction visitArgsCatNode(ArgsCatNode iVisited)
           
 Instruction visitArgsNode(ArgsNode iVisited)
           
 Instruction visitArgsPushNode(ArgsPushNode node)
           
 Instruction visitArrayNode(ArrayNode iVisited)
           
 Instruction visitAttrAssignNode(AttrAssignNode iVisited)
           
 Instruction visitBackRefNode(BackRefNode iVisited)
           
 Instruction visitBeginNode(BeginNode iVisited)
           
 Instruction visitBignumNode(BignumNode iVisited)
           
 Instruction visitBlockArgNode(BlockArgNode iVisited)
           
 Instruction visitBlockNode(BlockNode iVisited)
           
 Instruction visitBlockPassNode(BlockPassNode iVisited)
           
 Instruction visitBreakNode(BreakNode iVisited)
           
 Instruction visitCallNode(CallNode iVisited)
           
 Instruction visitCaseNode(CaseNode iVisited)
           
 Instruction visitClassNode(ClassNode iVisited)
           
 Instruction visitClassVarAsgnNode(ClassVarAsgnNode iVisited)
           
 Instruction visitClassVarDeclNode(ClassVarDeclNode iVisited)
           
 Instruction visitClassVarNode(ClassVarNode iVisited)
           
 Instruction visitColon2Node(Colon2Node iVisited)
           
 Instruction visitColon3Node(Colon3Node iVisited)
           
 Instruction visitConstDeclNode(ConstDeclNode iVisited)
           
 Instruction visitConstNode(ConstNode iVisited)
           
 Instruction visitDAsgnNode(DAsgnNode iVisited)
           
 Instruction visitDefinedNode(DefinedNode iVisited)
           
 Instruction visitDefnNode(DefnNode iVisited)
           
 Instruction visitDefsNode(DefsNode iVisited)
           
 Instruction visitDotNode(DotNode iVisited)
           
 Instruction visitDRegxNode(DRegexpNode iVisited)
           
 Instruction visitDStrNode(DStrNode iVisited)
           
 Instruction visitDSymbolNode(DSymbolNode iVisited)
           
 Instruction visitDVarNode(DVarNode iVisited)
           
 Instruction visitDXStrNode(DXStrNode iVisited)
           
 Instruction visitEnsureNode(EnsureNode iVisited)
           
 Instruction visitEvStrNode(EvStrNode iVisited)
           
 Instruction visitFalseNode(FalseNode iVisited)
           
 Instruction visitFCallNode(FCallNode iVisited)
           
 Instruction visitFixnumNode(FixnumNode iVisited)
           
 Instruction visitFlipNode(FlipNode iVisited)
           
 Instruction visitFloatNode(FloatNode iVisited)
           
 Instruction visitForNode(ForNode iVisited)
           
 Instruction visitGlobalAsgnNode(GlobalAsgnNode iVisited)
           
 Instruction visitGlobalVarNode(GlobalVarNode iVisited)
           
 Instruction visitHashNode(HashNode iVisited)
           
 Instruction visitIfNode(IfNode iVisited)
           
 Instruction visitInstAsgnNode(InstAsgnNode iVisited)
           
 Instruction visitInstVarNode(InstVarNode iVisited)
           
 void visitIter(java.util.Iterator iterator)
           
 Instruction visitIterNode(IterNode iVisited)
           
 Instruction visitLocalAsgnNode(LocalAsgnNode iVisited)
           
 Instruction visitLocalVarNode(LocalVarNode iVisited)
           
 Instruction visitMatch2Node(Match2Node iVisited)
           
 Instruction visitMatch3Node(Match3Node iVisited)
           
 Instruction visitMatchNode(MatchNode iVisited)
           
 Instruction visitModuleNode(ModuleNode iVisited)
           
 Instruction visitMultipleAsgnNode(MultipleAsgnNode iVisited)
           
protected  void visitNewlineInParentheses(Node n)
           
 Instruction visitNewlineNode(NewlineNode iVisited)
           
 Instruction visitNextNode(NextNode iVisited)
           
 Instruction visitNilNode(NilNode iVisited)
           
 void visitNode(Node iVisited)
           
 void visitNodeInIndentation(Node n)
           
 Instruction visitNotNode(NotNode iVisited)
           
 Instruction visitNthRefNode(NthRefNode iVisited)
           
 Instruction visitOpAsgnAndNode(OpAsgnAndNode iVisited)
           
 Instruction visitOpAsgnNode(OpAsgnNode iVisited)
           
 Instruction visitOpAsgnOrNode(OpAsgnOrNode iVisited)
           
 Instruction visitOpElementAsgnNode(OpElementAsgnNode iVisited)
           
 Instruction visitOptNNode(OptNNode iVisited)
           
 Instruction visitOrNode(OrNode iVisited)
           
 Instruction visitPostExeNode(PostExeNode iVisited)
           
 Instruction visitRedoNode(RedoNode iVisited)
           
 Instruction visitRegexpNode(RegexpNode iVisited)
           
 Instruction visitRescueBodyNode(RescueBodyNode iVisited)
           
 Instruction visitRescueNode(RescueNode iVisited)
           
 Instruction visitRetryNode(RetryNode iVisited)
           
 Instruction visitReturnNode(ReturnNode iVisited)
           
 Instruction visitRootNode(RootNode iVisited)
           
 Instruction visitSClassNode(SClassNode iVisited)
           
 Instruction visitSelfNode(SelfNode iVisited)
           
 Instruction visitSplatNode(SplatNode iVisited)
           
 Instruction visitStrNode(StrNode iVisited)
           
 Instruction visitSuperNode(SuperNode iVisited)
           
 Instruction visitSValueNode(SValueNode iVisited)
           
 Instruction visitSymbolNode(SymbolNode iVisited)
           
 Instruction visitToAryNode(ToAryNode iVisited)
           
 Instruction visitTrueNode(TrueNode iVisited)
           
 Instruction visitUndefNode(UndefNode iVisited)
           
 Instruction visitUntilNode(UntilNode iVisited)
           
 Instruction visitVAliasNode(VAliasNode iVisited)
           
 Instruction visitVCallNode(VCallNode iVisited)
           
 Instruction visitWhenNode(WhenNode iVisited)
           
 Instruction visitWhileNode(WhileNode iVisited)
           
 Instruction visitXStrNode(XStrNode iVisited)
           
 Instruction visitYieldNode(YieldNode iVisited)
           
 Instruction visitZArrayNode(ZArrayNode iVisited)
           
 Instruction visitZSuperNode(ZSuperNode iVisited)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

config

protected final ReWriterContext config

factory

protected final ReWriterFactory factory
Constructor Detail

ReWriteVisitor

public ReWriteVisitor(java.io.Writer out,
                      java.lang.String source)

ReWriteVisitor

public ReWriteVisitor(java.io.OutputStream out,
                      java.lang.String source)

ReWriteVisitor

public ReWriteVisitor(ReWriterContext config)
Method Detail

flushStream

public void flushStream()

print

protected void print(java.lang.String s)

print

protected void print(char c)

print

protected void print(java.math.BigInteger i)

print

protected void print(int i)

print

protected void print(long l)

print

protected void print(double d)

printNewlineAndIndentation

protected void printNewlineAndIndentation()

printCommentsAfter

protected boolean printCommentsAfter(Node iVisited)

visitNode

public void visitNode(Node iVisited)

visitIter

public void visitIter(java.util.Iterator iterator)

visitAndPrintWithSeparator

public void visitAndPrintWithSeparator(java.util.Iterator it)

visitAliasNode

public Instruction visitAliasNode(AliasNode iVisited)
Specified by:
visitAliasNode in interface NodeVisitor

visitAndNode

public Instruction visitAndNode(AndNode iVisited)
Specified by:
visitAndNode in interface NodeVisitor

visitArgsNode

public Instruction visitArgsNode(ArgsNode iVisited)
Specified by:
visitArgsNode in interface NodeVisitor

visitArgsCatNode

public Instruction visitArgsCatNode(ArgsCatNode iVisited)
Specified by:
visitArgsCatNode in interface NodeVisitor

visitArrayNode

public Instruction visitArrayNode(ArrayNode iVisited)
Specified by:
visitArrayNode in interface NodeVisitor

visitBackRefNode

public Instruction visitBackRefNode(BackRefNode iVisited)
Specified by:
visitBackRefNode in interface NodeVisitor

visitBeginNode

public Instruction visitBeginNode(BeginNode iVisited)
Specified by:
visitBeginNode in interface NodeVisitor

visitBignumNode

public Instruction visitBignumNode(BignumNode iVisited)
Specified by:
visitBignumNode in interface NodeVisitor

visitBlockArgNode

public Instruction visitBlockArgNode(BlockArgNode iVisited)
Specified by:
visitBlockArgNode in interface NodeVisitor

visitBlockNode

public Instruction visitBlockNode(BlockNode iVisited)
Specified by:
visitBlockNode in interface NodeVisitor

getLocalVarIndex

public static int getLocalVarIndex(Node n)

visitBlockPassNode

public Instruction visitBlockPassNode(BlockPassNode iVisited)
Specified by:
visitBlockPassNode in interface NodeVisitor

visitBreakNode

public Instruction visitBreakNode(BreakNode iVisited)
Specified by:
visitBreakNode in interface NodeVisitor

visitConstDeclNode

public Instruction visitConstDeclNode(ConstDeclNode iVisited)
Specified by:
visitConstDeclNode in interface NodeVisitor

visitClassVarAsgnNode

public Instruction visitClassVarAsgnNode(ClassVarAsgnNode iVisited)
Specified by:
visitClassVarAsgnNode in interface NodeVisitor

visitClassVarDeclNode

public Instruction visitClassVarDeclNode(ClassVarDeclNode iVisited)
Specified by:
visitClassVarDeclNode in interface NodeVisitor

visitClassVarNode

public Instruction visitClassVarNode(ClassVarNode iVisited)
Specified by:
visitClassVarNode in interface NodeVisitor

printAssignmentOperator

protected void printAssignmentOperator()

inMultipleAssignment

protected boolean inMultipleAssignment()

visitCallNode

public Instruction visitCallNode(CallNode iVisited)
Specified by:
visitCallNode in interface NodeVisitor

visitCaseNode

public Instruction visitCaseNode(CaseNode iVisited)
Specified by:
visitCaseNode in interface NodeVisitor

visitClassNode

public Instruction visitClassNode(ClassNode iVisited)
Specified by:
visitClassNode in interface NodeVisitor

visitColon2Node

public Instruction visitColon2Node(Colon2Node iVisited)
Specified by:
visitColon2Node in interface NodeVisitor

visitColon3Node

public Instruction visitColon3Node(Colon3Node iVisited)
Specified by:
visitColon3Node in interface NodeVisitor

visitConstNode

public Instruction visitConstNode(ConstNode iVisited)
Specified by:
visitConstNode in interface NodeVisitor

visitDAsgnNode

public Instruction visitDAsgnNode(DAsgnNode iVisited)
Specified by:
visitDAsgnNode in interface NodeVisitor

visitDRegxNode

public Instruction visitDRegxNode(DRegexpNode iVisited)
Specified by:
visitDRegxNode in interface NodeVisitor

visitDStrNode

public Instruction visitDStrNode(DStrNode iVisited)
Specified by:
visitDStrNode in interface NodeVisitor

visitDSymbolNode

public Instruction visitDSymbolNode(DSymbolNode iVisited)
Specified by:
visitDSymbolNode in interface NodeVisitor

visitDVarNode

public Instruction visitDVarNode(DVarNode iVisited)
Specified by:
visitDVarNode in interface NodeVisitor

visitDXStrNode

public Instruction visitDXStrNode(DXStrNode iVisited)
Specified by:
visitDXStrNode in interface NodeVisitor

visitDefinedNode

public Instruction visitDefinedNode(DefinedNode iVisited)
Specified by:
visitDefinedNode in interface NodeVisitor

printCommentsAtEnd

protected void printCommentsAtEnd(Node n)

visitDefnNode

public Instruction visitDefnNode(DefnNode iVisited)
Specified by:
visitDefnNode in interface NodeVisitor

visitDefsNode

public Instruction visitDefsNode(DefsNode iVisited)
Specified by:
visitDefsNode in interface NodeVisitor

visitDotNode

public Instruction visitDotNode(DotNode iVisited)
Specified by:
visitDotNode in interface NodeVisitor

visitEnsureNode

public Instruction visitEnsureNode(EnsureNode iVisited)
Specified by:
visitEnsureNode in interface NodeVisitor

visitEvStrNode

public Instruction visitEvStrNode(EvStrNode iVisited)
Specified by:
visitEvStrNode in interface NodeVisitor

visitFCallNode

public Instruction visitFCallNode(FCallNode iVisited)
Specified by:
visitFCallNode in interface NodeVisitor

visitFalseNode

public Instruction visitFalseNode(FalseNode iVisited)
Specified by:
visitFalseNode in interface NodeVisitor

visitFixnumNode

public Instruction visitFixnumNode(FixnumNode iVisited)
Specified by:
visitFixnumNode in interface NodeVisitor

visitFlipNode

public Instruction visitFlipNode(FlipNode iVisited)
Specified by:
visitFlipNode in interface NodeVisitor

visitFloatNode

public Instruction visitFloatNode(FloatNode iVisited)
Specified by:
visitFloatNode in interface NodeVisitor

visitForNode

public Instruction visitForNode(ForNode iVisited)
Specified by:
visitForNode in interface NodeVisitor

visitGlobalAsgnNode

public Instruction visitGlobalAsgnNode(GlobalAsgnNode iVisited)
Specified by:
visitGlobalAsgnNode in interface NodeVisitor

visitGlobalVarNode

public Instruction visitGlobalVarNode(GlobalVarNode iVisited)
Specified by:
visitGlobalVarNode in interface NodeVisitor

visitHashNode

public Instruction visitHashNode(HashNode iVisited)
Specified by:
visitHashNode in interface NodeVisitor

visitInstAsgnNode

public Instruction visitInstAsgnNode(InstAsgnNode iVisited)
Specified by:
visitInstAsgnNode in interface NodeVisitor

visitInstVarNode

public Instruction visitInstVarNode(InstVarNode iVisited)
Specified by:
visitInstVarNode in interface NodeVisitor

visitIfNode

public Instruction visitIfNode(IfNode iVisited)
Specified by:
visitIfNode in interface NodeVisitor

visitIterNode

public Instruction visitIterNode(IterNode iVisited)
Specified by:
visitIterNode in interface NodeVisitor

visitLocalAsgnNode

public Instruction visitLocalAsgnNode(LocalAsgnNode iVisited)
Specified by:
visitLocalAsgnNode in interface NodeVisitor

visitLocalVarNode

public Instruction visitLocalVarNode(LocalVarNode iVisited)
Specified by:
visitLocalVarNode in interface NodeVisitor

visitMultipleAsgnNode

public Instruction visitMultipleAsgnNode(MultipleAsgnNode iVisited)
Specified by:
visitMultipleAsgnNode in interface NodeVisitor

visitMatch2Node

public Instruction visitMatch2Node(Match2Node iVisited)
Specified by:
visitMatch2Node in interface NodeVisitor

visitMatch3Node

public Instruction visitMatch3Node(Match3Node iVisited)
Specified by:
visitMatch3Node in interface NodeVisitor

visitMatchNode

public Instruction visitMatchNode(MatchNode iVisited)
Specified by:
visitMatchNode in interface NodeVisitor

visitModuleNode

public Instruction visitModuleNode(ModuleNode iVisited)
Specified by:
visitModuleNode in interface NodeVisitor

visitNewlineNode

public Instruction visitNewlineNode(NewlineNode iVisited)
Specified by:
visitNewlineNode in interface NodeVisitor

visitNextNode

public Instruction visitNextNode(NextNode iVisited)
Specified by:
visitNextNode in interface NodeVisitor

visitNilNode

public Instruction visitNilNode(NilNode iVisited)
Specified by:
visitNilNode in interface NodeVisitor

visitNotNode

public Instruction visitNotNode(NotNode iVisited)
Specified by:
visitNotNode in interface NodeVisitor

visitNthRefNode

public Instruction visitNthRefNode(NthRefNode iVisited)
Specified by:
visitNthRefNode in interface NodeVisitor

visitOpElementAsgnNode

public Instruction visitOpElementAsgnNode(OpElementAsgnNode iVisited)
Specified by:
visitOpElementAsgnNode in interface NodeVisitor

visitOpAsgnNode

public Instruction visitOpAsgnNode(OpAsgnNode iVisited)
Specified by:
visitOpAsgnNode in interface NodeVisitor

visitOpAsgnAndNode

public Instruction visitOpAsgnAndNode(OpAsgnAndNode iVisited)
Specified by:
visitOpAsgnAndNode in interface NodeVisitor

visitOpAsgnOrNode

public Instruction visitOpAsgnOrNode(OpAsgnOrNode iVisited)
Specified by:
visitOpAsgnOrNode in interface NodeVisitor

visitOptNNode

public Instruction visitOptNNode(OptNNode iVisited)
Specified by:
visitOptNNode in interface NodeVisitor

visitOrNode

public Instruction visitOrNode(OrNode iVisited)
Specified by:
visitOrNode in interface NodeVisitor

visitPostExeNode

public Instruction visitPostExeNode(PostExeNode iVisited)
Specified by:
visitPostExeNode in interface NodeVisitor

visitRedoNode

public Instruction visitRedoNode(RedoNode iVisited)
Specified by:
visitRedoNode in interface NodeVisitor

visitRegexpNode

public Instruction visitRegexpNode(RegexpNode iVisited)
Specified by:
visitRegexpNode in interface NodeVisitor

firstChild

public static Node firstChild(Node n)

visitRescueBodyNode

public Instruction visitRescueBodyNode(RescueBodyNode iVisited)
Specified by:
visitRescueBodyNode in interface NodeVisitor

visitRescueNode

public Instruction visitRescueNode(RescueNode iVisited)
Specified by:
visitRescueNode in interface NodeVisitor

visitRetryNode

public Instruction visitRetryNode(RetryNode iVisited)
Specified by:
visitRetryNode in interface NodeVisitor

unwrapSingleArrayNode

public static Node unwrapSingleArrayNode(Node n)

visitReturnNode

public Instruction visitReturnNode(ReturnNode iVisited)
Specified by:
visitReturnNode in interface NodeVisitor

visitSClassNode

public Instruction visitSClassNode(SClassNode iVisited)
Specified by:
visitSClassNode in interface NodeVisitor

visitSelfNode

public Instruction visitSelfNode(SelfNode iVisited)
Specified by:
visitSelfNode in interface NodeVisitor

visitSplatNode

public Instruction visitSplatNode(SplatNode iVisited)
Specified by:
visitSplatNode in interface NodeVisitor

getSeparatorForSym

protected char getSeparatorForSym(Node n)

getSeparatorForStr

protected char getSeparatorForStr(Node n)

inDRegxNode

protected boolean inDRegxNode()

visitStrNode

public Instruction visitStrNode(StrNode iVisited)
Specified by:
visitStrNode in interface NodeVisitor

unescapeChar

public static java.lang.String unescapeChar(char escapedChar)

visitSuperNode

public Instruction visitSuperNode(SuperNode iVisited)
Specified by:
visitSuperNode in interface NodeVisitor

visitSValueNode

public Instruction visitSValueNode(SValueNode iVisited)
Specified by:
visitSValueNode in interface NodeVisitor

visitSymbolNode

public Instruction visitSymbolNode(SymbolNode iVisited)
Specified by:
visitSymbolNode in interface NodeVisitor

visitToAryNode

public Instruction visitToAryNode(ToAryNode iVisited)
Specified by:
visitToAryNode in interface NodeVisitor

visitTrueNode

public Instruction visitTrueNode(TrueNode iVisited)
Specified by:
visitTrueNode in interface NodeVisitor

visitUndefNode

public Instruction visitUndefNode(UndefNode iVisited)
Specified by:
visitUndefNode in interface NodeVisitor

visitUntilNode

public Instruction visitUntilNode(UntilNode iVisited)
Specified by:
visitUntilNode in interface NodeVisitor

visitVAliasNode

public Instruction visitVAliasNode(VAliasNode iVisited)
Specified by:
visitVAliasNode in interface NodeVisitor

visitVCallNode

public Instruction visitVCallNode(VCallNode iVisited)
Specified by:
visitVCallNode in interface NodeVisitor

visitNodeInIndentation

public void visitNodeInIndentation(Node n)

visitWhenNode

public Instruction visitWhenNode(WhenNode iVisited)
Specified by:
visitWhenNode in interface NodeVisitor

visitNewlineInParentheses

protected void visitNewlineInParentheses(Node n)

visitWhileNode

public Instruction visitWhileNode(WhileNode iVisited)
Specified by:
visitWhileNode in interface NodeVisitor

visitXStrNode

public Instruction visitXStrNode(XStrNode iVisited)
Specified by:
visitXStrNode in interface NodeVisitor

visitYieldNode

public Instruction visitYieldNode(YieldNode iVisited)
Specified by:
visitYieldNode in interface NodeVisitor

visitZArrayNode

public Instruction visitZArrayNode(ZArrayNode iVisited)
Specified by:
visitZArrayNode in interface NodeVisitor

visitZSuperNode

public Instruction visitZSuperNode(ZSuperNode iVisited)
Specified by:
visitZSuperNode in interface NodeVisitor

getEndOffset

protected static int getEndOffset(Node n)

getConfig

public ReWriterContext getConfig()

createCodeFromNode

public static java.lang.String createCodeFromNode(Node node,
                                                  java.lang.String document)

createCodeFromNode

public static java.lang.String createCodeFromNode(Node node,
                                                  java.lang.String document,
                                                  FormatHelper helper)

visitArgsPushNode

public Instruction visitArgsPushNode(ArgsPushNode node)
Specified by:
visitArgsPushNode in interface NodeVisitor

visitAttrAssignNode

public Instruction visitAttrAssignNode(AttrAssignNode iVisited)
Specified by:
visitAttrAssignNode in interface NodeVisitor

visitRootNode

public Instruction visitRootNode(RootNode iVisited)
Specified by:
visitRootNode in interface NodeVisitor


Copyright © 2002-2007 JRuby Team. All Rights Reserved.