org.codehaus.groovy.antlr.java
Class PreJava2GroovyConverter

java.lang.Object
  extended by org.codehaus.groovy.antlr.treewalker.VisitorAdapter
      extended by org.codehaus.groovy.antlr.java.PreJava2GroovyConverter
All Implemented Interfaces:
Visitor

public class PreJava2GroovyConverter
extends VisitorAdapter

This class mutates the Java AST, whilst it is still a Java AST, in readiness for conversion to Groovy, yippee-ky-a !


Field Summary
private  java.util.Stack stack
           
private  java.lang.String[] tokenNames
           
 
Fields inherited from interface org.codehaus.groovy.antlr.treewalker.Visitor
CLOSING_VISIT, OPENING_VISIT, SECOND_VISIT, SUBSEQUENT_VISIT
 
Constructor Summary
PreJava2GroovyConverter(java.lang.String[] tokenNames)
           
 
Method Summary
private  GroovySourceAST getGrandParentNode()
           
private  GroovySourceAST getParentNode()
           
 GroovySourceAST pop()
           
 void push(GroovySourceAST t)
           
 void swapTwoChildren(GroovySourceAST t)
          To swap two children of node t...
 void visitDefault(GroovySourceAST t, int visit)
           
private  void visitJavaArrayInit(GroovySourceAST t)
          Handle Arrays.
private  void visitJavaLiteralDo(GroovySourceAST t)
           
 
Methods inherited from class org.codehaus.groovy.antlr.treewalker.VisitorAdapter
setUp, tearDown, visitAbstract, visitAnnotation, visitAnnotationArrayInit, visitAnnotationDef, visitAnnotationFieldDef, visitAnnotationMemberValuePair, visitAnnotations, visitArrayDeclarator, visitAssign, visitAt, visitBand, visitBandAssign, visitBigSuffix, visitBlock, visitBnot, visitBor, visitBorAssign, visitBsr, visitBsrAssign, visitBxor, visitBxorAssign, visitCaseGroup, visitClassDef, visitClosedBlock, visitClosureList, visitClosureOp, visitColon, visitComma, visitCompareTo, visitCtorCall, visitCtorIdent, visitDec, visitDigit, visitDiv, visitDivAssign, visitDollar, visitDot, visitDynamicMember, visitElist, visitEmptyStat, visitEnumConstantDef, visitEnumDef, visitEof, visitEqual, visitEsc, visitExponent, visitExpr, visitExtendsClause, visitFinal, visitFloatSuffix, visitForCondition, visitForEachClause, visitForInit, visitForInIterable, visitForIterator, visitGe, visitGt, visitHexDigit, visitIdent, visitImplementsClause, visitImplicitParameters, visitImport, visitInc, visitIndexOp, visitInstanceInit, visitInterfaceDef, visitLabeledArg, visitLabeledStat, visitLand, visitLbrack, visitLcurly, visitLe, visitLetter, visitListConstructor, visitLiteralAs, visitLiteralAssert, visitLiteralBoolean, visitLiteralBreak, visitLiteralByte, visitLiteralCase, visitLiteralCatch, visitLiteralChar, visitLiteralClass, visitLiteralContinue, visitLiteralDef, visitLiteralDefault, visitLiteralDouble, visitLiteralElse, visitLiteralEnum, visitLiteralExtends, visitLiteralFalse, visitLiteralFinally, visitLiteralFloat, visitLiteralFor, visitLiteralIf, visitLiteralImplements, visitLiteralImport, visitLiteralIn, visitLiteralInstanceof, visitLiteralInt, visitLiteralInterface, visitLiteralLong, visitLiteralNative, visitLiteralNew, visitLiteralNull, visitLiteralPackage, visitLiteralPrivate, visitLiteralProtected, visitLiteralPublic, visitLiteralReturn, visitLiteralShort, visitLiteralStatic, visitLiteralSuper, visitLiteralSwitch, visitLiteralSynchronized, visitLiteralThis, visitLiteralThreadsafe, visitLiteralThrow, visitLiteralThrows, visitLiteralTransient, visitLiteralTrue, visitLiteralTry, visitLiteralVoid, visitLiteralVolatile, visitLiteralWhile, visitLnot, visitLor, visitLparen, visitLt, visitMapConstructor, visitMemberPointer, visitMethodCall, visitMethodDef, visitMinus, visitMinusAssign, visitMlComment, visitMod, visitModAssign, visitModifiers, visitNls, visitNotEqual, visitNullTreeLookahead, visitNumBigDecimal, visitNumBigInt, visitNumDouble, visitNumFloat, visitNumInt, visitNumLong, visitObjblock, visitOneNl, visitOptionalDot, visitPackageDef, visitParameterDef, visitParameters, visitPlus, visitPlusAssign, visitPostDec, visitPostInc, visitQuestion, visitRangeExclusive, visitRangeInclusive, visitRbrack, visitRcurly, visitRegexFind, visitRegexMatch, visitRegexpCtorEnd, visitRegexpLiteral, visitRegexpSymbol, visitRparen, visitSelectSlot, visitSemi, visitShComment, visitSl, visitSlAssign, visitSlComment, visitSlist, visitSpreadArg, visitSpreadDot, visitSpreadMapArg, visitSr, visitSrAssign, visitStar, visitStarAssign, visitStarStar, visitStarStarAssign, visitStaticImport, visitStaticInit, visitStrictfp, visitStringCh, visitStringConstructor, visitStringCtorEnd, visitStringCtorMiddle, visitStringCtorStart, visitStringLiteral, visitStringNl, visitSuperCtorCall, visitTripleDot, visitType, visitTypeArgument, visitTypeArguments, visitTypecast, visitTypeLowerBounds, visitTypeParameter, visitTypeParameters, visitTypeUpperBounds, visitUnaryMinus, visitUnaryPlus, visitUnusedConst, visitUnusedDo, visitUnusedGoto, visitVariableDef, visitVariableParameterDef, visitVocab, visitWildcardType, visitWs
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

tokenNames

private java.lang.String[] tokenNames

stack

private java.util.Stack stack
Constructor Detail

PreJava2GroovyConverter

public PreJava2GroovyConverter(java.lang.String[] tokenNames)
Method Detail

visitDefault

public void visitDefault(GroovySourceAST t,
                         int visit)
Specified by:
visitDefault in interface Visitor
Overrides:
visitDefault in class VisitorAdapter

visitJavaLiteralDo

private void visitJavaLiteralDo(GroovySourceAST t)

visitJavaArrayInit

private void visitJavaArrayInit(GroovySourceAST t)
Handle Arrays. Examples:
 String[] myArray = new String[] {"a","b","c"};
 
 becomes
 
 String[] myArray = ["a", "b", "c"]
 
 ---
 
 To convert node (t) and surrounding nodes into the right structure for List Constructor
 
 (a) java/EXPR
  |
  +- (b) java/new
      |
      + (t) java/ARRAY_INIT
    
  becomes
  
 (a) groovy/LIST_CONSTRUCTOR (via ARRAY_INIT as temporary marker type)
  |
  +- (t) groovy/ELIST
  
  * note: node (b) is thrown away...
 


swapTwoChildren

public void swapTwoChildren(GroovySourceAST t)
To swap two children of node t...
   (t)
    |
    |
   (a) -- (b)
 
 t.down = firstNode
 a.right = b
 b.right = null
becomes
   (t)
    |
    |
   (b) -- (a)
   
 t.down = b
 a.right = null
 b.right = a
todo - build API of basic tree mutations like this method.


push

public void push(GroovySourceAST t)
Specified by:
push in interface Visitor
Overrides:
push in class VisitorAdapter

pop

public GroovySourceAST pop()
Specified by:
pop in interface Visitor
Overrides:
pop in class VisitorAdapter

getParentNode

private GroovySourceAST getParentNode()

getGrandParentNode

private GroovySourceAST getGrandParentNode()


Copyright © ${year} The Codehaus. All Rights Reserved.