You are viewing a plain text version of this content. The canonical link for it is here.
Posted to adffaces-commits@incubator.apache.org by ma...@apache.org on 2006/07/24 16:58:51 UTC

svn commit: r425117 [11/14] - in /incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-javascript-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/javascript: ./ javascript20parser/ javascriptcompiler/ obfuscator/ obfuscato...

Added: incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-javascript-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/javascript/javascript20parser/js2.0.jjt
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-javascript-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/javascript/javascript20parser/js2.0.jjt?rev=425117&view=auto
==============================================================================
--- incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-javascript-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/javascript/javascript20parser/js2.0.jjt (added)
+++ incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-javascript-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/javascript/javascript20parser/js2.0.jjt Mon Jul 24 09:58:43 2006
@@ -0,0 +1,1501 @@
+options {
+    STATIC=false;
+    MULTI=true;
+    VISITOR=true;
+    NODE_USES_PARSER=true;
+    DEBUG_TOKEN_MANAGER=false;
+    DEBUG_PARSER=false;
+}
+
+PARSER_BEGIN(JSParser20)
+package org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser;
+import java.io.IOException;
+public class JSParser20 
+{
+    //
+    // This is the root node for the parse tree (root DOM node, tree of SimpleNode(s))
+    //
+    protected ASTProgram _jjtRoot;
+    
+    public ASTProgram getRootNode()
+    {
+    	return _jjtRoot;
+    }
+    
+}
+
+PARSER_END(JSParser20)
+
+
+
+/////////////////////////////////////////////////////
+// LEXICAL RULES Section
+/////////////////////////////////////////////////////
+TOKEN_MGR_DECLS :
+{
+    private boolean isRegValid = true;
+    public void setRegInvalid()
+    {
+        isRegValid = false;
+    }
+    public void setRegValid()
+    {
+        isRegValid = true;
+    }
+}
+
+/////////////////////////////////////////////////////
+// WHITE SPACE 
+/////////////////////////////////////////////////////
+SPECIAL_TOKEN :
+{
+        <EOL:   (["\n","\r"])+ >
+    |   <WS:    ([" ","\t"])+ >
+}
+/////////////////////////////////////////////////////
+// COMMENTS 
+/////////////////////////////////////////////////////
+MORE :
+{
+        "//" : IN_SINGLE_LINE_COMMENT
+    |   "/*" : IN_MULTI_LINE_COMMENT
+}
+
+<IN_SINGLE_LINE_COMMENT>
+SPECIAL_TOKEN :
+{
+        < SINGLE_LINE_COMMENT: (~["\n","\r"])* ("\n"|"\r"|"\r\n")? >  : DEFAULT
+}
+
+<IN_MULTI_LINE_COMMENT>
+SPECIAL_TOKEN :
+{
+        <MULTI_LINE_COMMENT: "*/" > : DEFAULT
+}
+
+<IN_SINGLE_LINE_COMMENT, IN_MULTI_LINE_COMMENT>
+MORE :
+{
+        < ~[] >
+}
+/////////////////////////////////////////////////////
+// RESERVED WORDS AND LITERALS
+/////////////////////////////////////////////////////
+TOKEN :
+{
+        < AS:           "as"         >
+    |   < BREAK:        "break"      >
+    |   < CASE:         "case"       >
+    |   < CATCH:        "catch"      >
+    |   < CLASS:        "class"      >
+    |   < CONST:        "const"      >
+    |   < CONTINUE:     "continue"   >
+    |   < _DEFAULT:     "default"    >
+    |   < DELETE:       "delete"     >
+    |   < DO:           "do"         >
+    |   < ELSE:         "else"       >
+    |   < EXTENDS:      "extends"    >
+    |   < FALSE:        "false"      >   
+    |   < FINALLY:      "finally"    >
+    |   < FOR:          "for"        >
+    |   < FUNCTION:     "function"   >
+    |   < FUNCTION_:    "Function"   >
+    |   < GET:          "get"        >
+    |   < IF:           "if"         >
+    |   < IN:           "in"         >
+    |   < INCLUDE:      "include"    >
+    |   < INSTANCEOF:   "instanceof" >
+    |   < IS:           "is"         >
+    |   < NAMESPACE:    "namespace"  >
+    |   < NEW:          "new"        >
+    |   < NULL:         "null"       >    
+    |   < PACKAGE:      "package"    > 
+    |   < PRIVATE:      "private"    >
+    |   < PUBLIC:       "public"     >
+    |   < RETURN:       "return"     >
+    |   < SET:          "set"        >
+    |   < SUPER:        "super"      >
+    |   < SWITCH:       "switch"     >
+    |   < THIS:         "this"       >
+    |   < THROW:        "throw"      >
+    |   < TRUE:         "true"       > 
+    |   < TRY:          "try"        >
+    |   < TYPEOF:       "typeof"     >
+    |   < USE:          "use"        >
+    |   < VAR:          "var"        >
+    |   < VOID:         "void"       >
+    |   < WHILE:        "while"      >
+    |   < WITH:         "with"       >
+}
+/////////////////////////////////////////////////////
+// FUTURE RESERVED WORDS
+/////////////////////////////////////////////////////
+TOKEN :
+{
+        < ABSTRACT:     "abstract"     >
+    |   < DEBUGGER:     "debugger"     >
+    |   < ENUM:         "enum"         >
+    |   < EXPORT:       "export"       >
+    |   < GOTO:         "goto"         >
+    |   < IMPLEMENTS:   "implements"   >
+    |   < INTERFACE:    "interface"    >
+    |   < NATIVE:       "native"       >
+    |   < PROTECTED:    "protected"    >
+    |   < SYNCHRONIZED: "synchronized" >
+    |   < THROWS:       "throws"       >
+    |   < TRANSIENT:    "transient"    >
+    |   < VOLATILE:     "volatile"     >
+    |   < IMPORT:       "import"       >
+}
+/////////////////////////////////////////////////////
+// LITERALS 
+/////////////////////////////////////////////////////
+TOKEN :
+{
+        < DECIMAL_LITERAL: ["1"-"9"] (["0"-"9"])* >
+    |   < HEX_LITERAL: "0" ["x","X"] (["0"-"9","a"-"f","A"-"F"])+ >
+    |   < OCTAL_LITERAL: "0" (["0"-"7"])* >
+    |   < FLOATING_POINT_LITERAL: (["0"-"9"])+ "." (["0"-"9"])* (<EXPONENT>)? 
+                                |   "." (["0"-"9"])+ (<EXPONENT>)? 
+                                |   (["0"-"9"])+ (<EXPONENT>)? 
+        >
+    |   < #EXPONENT: ["e","E"] (["+","-"])? (["0"-"9"])+ >
+    |   < STRING_LITERAL:   "\""  
+                            ( (~["\"","\\","\n","\r"]) | <ESCAPE_SEQUENCE> )* 
+                            "\""
+                        |   "\"" 
+                            ( (~["\"","\\"]) | "\\" ("\n" | "\r" | "\r\n") | <ESCAPE_SEQUENCE> )* 
+                            "\""  
+                        |   "'"
+                            ( (~["'","\\","\n","\r"]) | <ESCAPE_SEQUENCE> )*
+                            "'"
+        >
+    |   < #ESCAPE_SEQUENCE: 
+            "\\"
+            (       ["n","t","b","r","f","\\","'","\"","[","]"]
+                |   ["0"-"7"] ( ["0"-"7"] )?
+                |   ["0"-"3"] ["0"-"7"] ["0"-"7"]
+                |   ["x"] ["0"-"9","a"-"f","A"-"F"] ["0"-"9","a"-"f","A"-"F"]
+                |   ["u"] ["0"-"9","a"-"f","A"-"F"] ["0"-"9","a"-"f","A"-"F"] 
+                          ["0"-"9","a"-"f","A"-"F"] ["0"-"9","a"-"f","A"-"F"]
+            )
+        >
+    |   < UNTERMINATED_STRING_LITERAL:
+                "\"" ( (~["\"","\\","\n","\r"]) | <ESCAPE_SEQUENCE> )* ( ["\n","\r"] )?
+            |   "'"  ( (~["'","\\","\n","\r"])  | <ESCAPE_SEQUENCE> )* ( ["\n","\r"] )?
+        >
+}
+/////////////////////////////////////////////////////
+// REGULAR EXPRESSIONS 
+/////////////////////////////////////////////////////
+TOKEN :
+{ 
+        < #REGX_START_CHAR : ~["\r","\n","/","=","*"] | "\\/">
+    |   < #REGX_BODY_CHAR_EXCLUSION : ~["\r","\n","/"] >  
+    |   < #REGX_BODY_CHAR : ( <REGX_BODY_CHAR_EXCLUSION> | "\\/" ) >
+    |   < #REGEX_END_CHAR :     "i" 
+                            |   "g" 
+                            |   "m" 
+                            |   "ig" 
+                            |   "im" 
+                            |   "gi" 
+                            |   "gm" 
+                            |   "mi" 
+                            |   "mg" 
+                            |   "igm" 
+                            |   "img" 
+                            |   "gmi" 
+                            |   "gim" 
+                            |   "mig" 
+                            |   "mgi" 
+                            
+        >
+}
+
+TOKEN :
+{
+        <REGULAR_EXPRESSION : "/" <REGX_START_CHAR> (<REGX_BODY_CHAR>)* "/"  (<REGEX_END_CHAR>)? >
+        {
+           try {
+                // Peek at the next character.
+                char nextCh = input_stream.readChar();
+                input_stream.backup(1);
+                if (isRegValid == false || nextCh == '/' || nextCh == '*') {
+                    //
+                    // Lexecal analyser thinks it is a RE
+                    // operator such as /...../
+                    // Put the everything to the first "/" back on the input stream
+                    //
+                    input_stream.backup(lengthOfMatch-1);
+                    //
+                    // And remove it from the token
+                    //
+                    matchedToken.image = matchedToken.image.substring(0, 1);
+                    image.delete(0, image.length() - 1);
+                    image.append('/');
+                    matchedToken.kind=SLASH;
+                }
+               } catch (IOException e) {
+                    throw new Error(e.toString());
+               }
+       }        
+        
+}
+/////////////////////////////////////////////////////
+// IDENTIFIERS 
+/////////////////////////////////////////////////////
+TOKEN :
+{
+        < IDENTIFIER: <LETTER> (<LETTER>|<DIGIT>)* >
+    |   < #LETTER: ["a"-"z","A"-"Z","$","_"] >
+    |   < #DIGIT: ["0"-"9"]>
+}
+/////////////////////////////////////////////////////
+// SEPARATORS 
+/////////////////////////////////////////////////////
+TOKEN :
+{
+        < LPAREN:    "("   >
+    |   < RPAREN:    ")"   >
+    |   < LBRACE:    "{"   >
+    |   < RBRACE:    "}"   >
+    |   < LBRACKET:  "["   >
+    |   < RBRACKET:  "]"   >
+    |   < SEMICOLON: ";"   >
+    |   < COMMA:     ","   >
+    |   < DOT:       "."   >
+    |   < QUALIFIER: "::"  >
+    |   < ELIPSE:    "..." >
+}
+
+/////////////////////////////////////////////////////
+// OPERATORS 
+/////////////////////////////////////////////////////
+TOKEN :
+{
+        < ASSIGN:               "="    >
+    |   < GT:                   ">"    >
+    |   < LT:                   "<"    >
+    |   < BANG:                 "!"    >
+    |   < TILDE:                "~"    >
+    |   < HOOK:                 "?"    >
+    |   < COLON:                ":"    >
+    |   < EQ:                   "=="   >
+    |   < LE:                   "<="   >
+    |   < GE:                   ">="   >
+    |   < NE:                   "!="   >
+    |   < SC_OR:                "||"   >
+    |   < SC_AND:               "&&"   >
+    |   < SC_XOR:               "^^"   >
+    |   < INCR:                 "++"   >
+    |   < DECR:                 "--"   >
+    |   < PLUS:                 "+"    >
+    |   < MINUS:                "-"    >
+    |   < STAR:                 "*"    >
+    |   < SLASH:                "/"    >
+    |   < BIT_AND:              "&"    >
+    |   < BIT_OR:               "|"    >
+    |   < XOR:                  "^"    >
+    |   < REM:                  "%"    >
+    |   < LSHIFT:               "<<"   >
+    |   < RSIGNEDSHIFT:         ">>"   >
+    |   < RUNSIGNEDSHIFT:       ">>>"  >
+    |   < PLUSASSIGN:           "+="   >
+    |   < MINUSASSIGN:          "-="   >
+    |   < STARASSIGN:           "*="   >
+    |   < SLASHASSIGN:          "/="   >
+    |   < ANDASSIGN:            "&="   >
+    |   < ORASSIGN:             "|="   >
+    |   < XORASSIGN:            "^="   >
+    |   < REMASSIGN:            "%="   >
+    |   < LSHIFTASSIGN:         "<<="  >
+    |   < RSIGNEDSHIFTASSIGN:   ">>="  >
+    |   < RUNSIGNEDSHIFTASSIGN: ">>>=" >
+    |   < SC_ORASSIGN:          "||="  >
+    |   < SC_ANDASSIGN:         "&&="  >
+    |   < SC_XORASSIGN:         "^^="  >
+    |   < IDENTITYOPER:         "==="  >
+    |   < NOTIDENTITYOPER:      "!=="  >
+}
+///////////////////////////////////////////////////////////////////
+// GRAMMAR Section
+///////////////////////////////////////////////////////////////////
+
+Token Program():
+{
+        Token retval = getToken(1);
+}
+{
+        (PackageDefinition())* [Directives()] <EOF>
+        {
+            _jjtRoot = jjtThis;
+            return retval;
+        }
+}
+
+/////////////////////////////////////////////////////
+// Expressions 
+/////////////////////////////////////////////////////
+
+/////////////////////////////////////////////////////
+// Identifier 
+/////////////////////////////////////////////////////
+void Identifier():
+{}
+{
+        <IDENTIFIER>
+    |   <GET>
+    |   <SET>
+    |   <INCLUDE>
+//    |   <NAMESPACE>
+}
+
+/////////////////////////////////////////////////////
+// Qualified Identifier 
+/////////////////////////////////////////////////////
+void SimpleQualifiedIdentifier():
+{}
+{
+       Identifier() [<QUALIFIER> Identifier()]
+    |  ReservedNamespace() [<QUALIFIER> Identifier()] 
+}
+
+void ExpressionQualifiedIdentifier():
+{}
+{
+       <LPAREN> AssignmentExpression() <RPAREN> <QUALIFIER> Identifier()
+}
+
+void QualifiedIdentifier():
+{}
+{
+       SimpleQualifiedIdentifier()
+    |  ExpressionQualifiedIdentifier()
+}
+
+/////////////////////////////////////////////////////
+// Primary Expressions
+/////////////////////////////////////////////////////
+void PrimaryExpression ():
+{}
+{
+    (
+        <NULL>
+    |   <TRUE>
+    |   <FALSE>
+    |   <DECIMAL_LITERAL> 
+    |   <OCTAL_LITERAL>
+    |   <HEX_LITERAL>
+    |   <FLOATING_POINT_LITERAL> 
+    |   <STRING_LITERAL> 
+    |   <THIS>
+    |   <REGULAR_EXPRESSION>
+    |   <LPAREN> ListExpression() <RPAREN>
+    |   ArrayLiteral()
+    |   ObjectLiteral()
+    |   FunctionExpression()
+    )
+    {
+        token_source.setRegValid();
+    }
+}
+
+void ReservedNamespace ():
+{}
+{
+       <PUBLIC>
+    |  <PROTECTED>
+    |  <PRIVATE>
+}
+
+/////////////////////////////////////////////////////
+// Function Expression
+/////////////////////////////////////////////////////
+void  FunctionExpression ():
+{}
+{
+        LOOKAHEAD(2) <FUNCTION> FunctionCommon()
+    |                <FUNCTION> Identifier() FunctionCommon()
+}
+
+/////////////////////////////////////////////////////
+// Object Literals
+/////////////////////////////////////////////////////
+void ObjectLiteral ():
+{}
+{
+        <LBRACE> [FieldList()] <RBRACE>  
+}        
+
+void FieldList():
+{}
+{
+        LiteralField() (<COMMA> LiteralField())*
+}
+
+void LiteralField ():
+{}
+{
+        FieldName() <COLON> AssignmentExpression()
+}
+
+void FieldName ():
+{}
+{
+        <STRING_LITERAL>
+    |   <DECIMAL_LITERAL>
+    |   SimpleQualifiedIdentifier()
+    |   <LPAREN> AssignmentExpression() <RPAREN> [<QUALIFIER> Identifier()]
+}	
+
+/////////////////////////////////////////////////////
+// Array Literal
+/////////////////////////////////////////////////////
+void ArrayLiteral():
+{}
+{
+        <LBRACKET> [ElementList()] <RBRACKET>
+}
+
+void ElementList():
+{}
+{
+        LiteralElement() (<COMMA> LiteralElement())*
+}
+
+void LiteralElement():
+{}
+{
+        AssignmentExpression()
+}
+
+/////////////////////////////////////////////////////
+// Super Expression
+/////////////////////////////////////////////////////
+void SuperExpression ():
+{}
+{
+        <SUPER> [LOOKAHEAD(2) <LPAREN> AssignmentExpression() <RPAREN>]
+}
+
+/////////////////////////////////////////////////////
+// Postfix Expression
+/////////////////////////////////////////////////////
+void PostfixExpression ():
+{}
+{
+        AttributeExpression ()                            [PostfixOp()]
+    |   {token_source.setRegInvalid();} 
+        FullPostfixExpression () (PropertyOrArguments())* [PostfixOp()]
+    |   SuperExpression()         PropertyOperator()
+}    
+
+void AttributeExpression ():
+{}
+{
+        SimpleQualifiedIdentifier()  (PropertyOrArguments())*
+}
+
+void FullPostfixExpression ():
+{}
+{
+       LOOKAHEAD(<LPAREN> AssignmentExpression() <RPAREN> <QUALIFIER>) 
+       ExpressionQualifiedIdentifier()
+    |  PrimaryExpression() 
+    |  FullNewExpression()             
+}
+
+void FullNewExpression ():
+{}
+{
+        <NEW> FullNewSubexpression()  (LOOKAHEAD(2) PropertyOperator())* [LOOKAHEAD(2) Arguments()]
+}
+
+void FunctionConstructor():
+{}
+{    
+        <FUNCTION_> Arguments()
+}
+
+void FullNewSubexpression ():
+{}
+{
+        LOOKAHEAD(<LPAREN> AssignmentExpression() <RPAREN> <QUALIFIER>) 
+        ExpressionQualifiedIdentifier()        
+    |   PrimaryExpression() 
+    |   SimpleQualifiedIdentifier()
+    |   SuperExpression() 
+    |   FullNewExpression()
+    |   FunctionConstructor()
+}
+
+
+void PostfixOp():
+{}
+{
+        <INCR>
+    |   <DECR>
+}
+
+void PropertyOrArguments ():
+{}
+{
+        Arguments()        
+    |   PropertyOperator()
+}
+
+/////////////////////////////////////////////////////
+// Property Operators
+/////////////////////////////////////////////////////
+void PropertyOperator ():
+{}
+{          
+        <DOT>      QualifiedIdentifier()
+    |   LOOKAHEAD(2) <LBRACKET> <RBRACKET>
+    |   LOOKAHEAD(2) <LBRACKET> <ELIPSE> AssignmentExpression() <RBRACKET>
+    |                <LBRACKET> ListExpression() [<ELIPSE> AssignmentExpression()] <RBRACKET>
+}
+
+void Arguments ():
+{{token_source.setRegValid();}}
+{
+        LOOKAHEAD(2) <LPAREN> <RPAREN>
+    |   LOOKAHEAD(2) <LPAREN> <ELIPSE> AssignmentExpression() <RPAREN>
+    |                <LPAREN> ListExpression() [<ELIPSE> AssignmentExpression()] <RPAREN>
+}
+
+/////////////////////////////////////////////////////
+// Unary Operators 
+/////////////////////////////////////////////////////
+void UnaryExpression ():
+{}
+{
+                 PostfixExpression()
+    |   <DELETE> PostfixExpression()
+    |   <VOID>   UnaryExpression()
+    |   <TYPEOF> UnaryExpression()
+    |   <INCR>   PostfixExpression()
+    |   <DECR>   PostfixExpression()
+    |   <PLUS>   UnaryExpression()
+    |   <MINUS>  UnaryExpression()
+    |   <TILDE>  UnaryExpression()
+    |   <BANG>   UnaryExpression()
+}
+
+/////////////////////////////////////////////////////
+// Multiplicative Operators 
+/////////////////////////////////////////////////////
+void MulOp():
+{}
+{
+        <STAR>
+    |   <SLASH>
+    |   <REM> 
+}
+
+void MultiplicativeExpression():
+{}
+{
+        UnaryExpression() (MulOp() UnaryExpression())*
+
+}
+
+/////////////////////////////////////////////////////
+// Additive Operators 
+/////////////////////////////////////////////////////
+void AddOp():
+{}
+{
+        <PLUS>
+    |   <MINUS>
+}
+
+void AdditiveExpression():
+{}
+{
+        MultiplicativeExpression() (AddOp() MultiplicativeExpression())*
+} 
+
+/////////////////////////////////////////////////////
+// Bitwise Shift Operators 
+/////////////////////////////////////////////////////
+void ShiftOp():
+{}
+{
+        <LSHIFT>
+    |   <RSIGNEDSHIFT>
+    |   <RUNSIGNEDSHIFT>
+}
+
+void ShiftExpression():
+{}
+{
+        AdditiveExpression() (ShiftOp() AdditiveExpression())*
+}
+
+/////////////////////////////////////////////////////
+// Relational Operators 
+/////////////////////////////////////////////////////
+void RelOp():
+{}
+{
+        <LT>
+    |   <GT> 
+    |   <LE> 
+    |   <GE>
+    |   <IS>
+    |   <AS>
+}
+
+void RelationalExpression():
+{}
+{
+        ShiftExpression() 
+            (LOOKAHEAD(3)(RelOp() | <IN> | <INSTANCEOF> ) ShiftExpression())*
+}
+
+void RelationalExpressionNoIN():
+{}
+{
+        ShiftExpression() 
+            ((RelOp() | <INSTANCEOF>)  ShiftExpression())*
+}
+
+/////////////////////////////////////////////////////
+// Equality Operators 
+/////////////////////////////////////////////////////
+void EqualOp():
+{}
+{
+        <EQ> 
+    |   <NE> 
+    |   <IDENTITYOPER> 
+    |   <NOTIDENTITYOPER>
+}
+
+void EqualityExpression():
+{}
+{
+        RelationalExpression() (EqualOp() RelationalExpression())*
+}
+
+void EqualityExpressionNoIN():
+{}
+{
+        RelationalExpressionNoIN() (EqualOp() RelationalExpressionNoIN())*
+}
+
+/////////////////////////////////////////////////////
+// Binary Bitwise Operators 
+/////////////////////////////////////////////////////
+void BitwiseANDOp():
+{}
+{
+        <BIT_AND>
+}
+
+void BitwiseANDExpression():
+{}
+{
+        EqualityExpression() (BitwiseANDOp() EqualityExpression())*
+}
+
+void BitwiseANDExpressionNoIN():
+{}
+{
+        EqualityExpressionNoIN() (BitwiseANDOp() EqualityExpressionNoIN())*
+}
+
+
+void BitwiseXOROp():
+{}
+{
+        <XOR>
+}
+
+void BitwiseXORExpression():
+{}
+{
+        BitwiseANDExpression() (BitwiseXOROp() BitwiseANDExpression())*
+}
+
+void BitwiseXORExpressionNoIN():
+{}
+{
+        BitwiseANDExpressionNoIN() (BitwiseXOROp() BitwiseANDExpressionNoIN())*
+}
+
+void BitwiseOROp():
+{}
+{
+        <BIT_OR>
+}
+
+void BitwiseORExpression():
+{}
+{
+        BitwiseXORExpression() (BitwiseOROp() BitwiseXORExpression())*
+}
+
+void BitwiseORExpressionNoIN():
+{}
+{
+        BitwiseXORExpressionNoIN() (BitwiseOROp() BitwiseXORExpressionNoIN())*
+}
+
+/////////////////////////////////////////////////////
+// Binary Logical Operators 
+/////////////////////////////////////////////////////
+void LogicalANDExpression():
+{}
+{
+        BitwiseORExpression() (<SC_AND> BitwiseORExpression())*
+}
+
+void LogicalANDExpressionNoIN():
+{}
+{
+        BitwiseORExpressionNoIN() (<SC_AND> BitwiseORExpressionNoIN())*
+}
+
+void LogicalORExpression():
+{}
+{
+        LogicalANDExpression() (<SC_OR> LogicalANDExpression())*
+}
+
+void LogicalORExpressionNoIN():
+{}
+{
+        LogicalANDExpressionNoIN() (<SC_OR> LogicalANDExpressionNoIN())*
+}
+
+/////////////////////////////////////////////////////
+// Conditional Operators 
+/////////////////////////////////////////////////////
+void ConditionalExpression():
+{}
+{
+        LogicalORExpression() [<HOOK>  AssignmentExpression() 
+                               <COLON> AssignmentExpression()]
+}
+
+void ConditionalExpressionNoIN():
+{}
+{
+        LogicalORExpressionNoIN()  [<HOOK>  AssignmentExpressionNoIN() 
+                                    <COLON> AssignmentExpressionNoIN()]
+}
+
+void NonAssignmentExpression():
+{}
+{
+        LogicalORExpression() [<HOOK>  NonAssignmentExpression() 
+                               <COLON> NonAssignmentExpression()]
+}
+
+void NonAssignmentExpressionNoIN():
+{}
+{
+        LogicalORExpressionNoIN() [<HOOK>  NonAssignmentExpressionNoIN() 
+                                   <COLON> NonAssignmentExpressionNoIN()]
+}
+
+/////////////////////////////////////////////////////
+// Assignment Operators 
+/////////////////////////////////////////////////////
+void AssignementOperator():
+{}
+{
+        <ASSIGN>
+    |   <STARASSIGN>
+    |   <SLASHASSIGN> 
+    |   <REMASSIGN> 
+    |   <PLUSASSIGN>
+    |   <MINUSASSIGN> 
+    |   <LSHIFTASSIGN> 
+    |   <RSIGNEDSHIFTASSIGN>
+    |   <RUNSIGNEDSHIFTASSIGN>
+    |   <ANDASSIGN> 
+    |   <XORASSIGN> 
+    |   <ORASSIGN>
+    |   <SC_ANDASSIGN>
+    |   <SC_XORASSIGN>
+    |   <SC_ORASSIGN>
+ 
+}
+
+void AssignmentExpression():
+{}
+{
+        ConditionalExpression() [LOOKAHEAD(2) AssignementOperator() AssignmentExpression()]
+}
+
+void AssignmentExpressionNoIN():
+{}
+{
+        ConditionalExpressionNoIN() [LOOKAHEAD(2) AssignementOperator() AssignmentExpressionNoIN()]
+}
+
+/////////////////////////////////////////////////////
+// Comma Expressions
+/////////////////////////////////////////////////////
+void ListExpression ():
+{}
+{
+        AssignmentExpression() (<COMMA> AssignmentExpression())*
+}   
+
+void ListExpressionNoIN ():
+{}
+{
+        AssignmentExpressionNoIN() (<COMMA> AssignmentExpressionNoIN())*
+}   
+
+/////////////////////////////////////////////////////
+// Type Expressions
+/////////////////////////////////////////////////////
+void TypeExpression ():
+{}
+{
+        NonAssignmentExpression()
+}
+
+void TypeExpressionNoIN ():
+{}
+{
+        NonAssignmentExpressionNoIN()
+}
+
+void TypeExpressionList ():
+{}
+{
+        NonAssignmentExpression() (<COMMA> NonAssignmentExpression())*
+}
+/////////////////////////////////////////////////////
+// Staements (abbrev, noShortIf, full) 
+/////////////////////////////////////////////////////
+void Statement ():
+{}
+{
+        LOOKAHEAD(3) ExpressionStatement() Sc()
+    |                SuperStatement() Sc()
+    |                Block()
+    |                LabeledStatement()
+    |                IfStatement()
+    |                SwitchStatement()
+    |                DoStatement() Sc()
+    |                WhileStatement()
+    |                ForStatement()
+    |                WithStatement()
+    |                ContinueStatement() Sc()
+    |                BreakStatement() Sc()
+    |                ReturnStatement() Sc()
+    |                ThrowStatement() Sc()
+    |                TryStatement()
+}
+
+void Substatement ():
+{}
+{
+                     EmptyStatement()
+    |   LOOKAHEAD(2) Statement()
+    |                SimpleVariableDefinition() Sc()
+    |                Attributes()               <LBRACE> Substatements() <RBRACE>
+}
+
+void Substatements ():
+{}
+{
+        (Substatement())+
+}
+
+JAVACODE
+  void Sc() {
+    Token tok = getToken(1);
+    if (tok.kind == SEMICOLON) {
+       tok = getNextToken();
+    } else if (tok.specialToken != null) {
+       if (!EolCommentSkipWs(tok.specialToken) && (tok.kind != EOF)) {
+          throw generateParseException();
+       }
+    } else if ((tok.kind != EOF) && (tok.kind!=RBRACE)) {
+         throw generateParseException();
+    }
+  }
+ 
+JAVACODE
+  boolean EolCommentSkipWs(Token t) {
+    boolean retVal = false;
+    Token specialToken = t;
+    while(specialToken != null) {
+      if(specialToken.kind == WS) {
+        specialToken = specialToken.specialToken;
+        continue;
+      }
+      else if(specialToken.kind == EOL  ||
+              specialToken.kind == SINGLE_LINE_COMMENT) {
+        retVal = true;
+        break;
+      }
+      else {
+        break;
+      }
+    }
+    return retVal;
+  }
+ 
+/////////////////////////////////////////////////////
+// Empty Statement 
+/////////////////////////////////////////////////////
+void EmptyStatement():
+{}
+{
+        <SEMICOLON>
+}
+
+/////////////////////////////////////////////////////
+// Expresion Statement 
+/////////////////////////////////////////////////////
+void ExpressionStatement():
+{}
+{
+        ListExpression() 
+}
+
+/////////////////////////////////////////////////////
+// Super Statement 
+/////////////////////////////////////////////////////
+void SuperStatement ():
+{}
+{
+        <SUPER> Arguments()
+}
+
+/////////////////////////////////////////////////////
+// Block Statement 
+/////////////////////////////////////////////////////
+void Block ():
+{}
+{   
+        <LBRACE> [Directives()] <RBRACE>
+}
+
+/////////////////////////////////////////////////////
+// Labeled Statement (maps to literal field)
+/////////////////////////////////////////////////////
+void LabeledStatement ():
+{}
+{
+        Identifier() <COLON> Substatement()
+}
+
+/////////////////////////////////////////////////////
+// If Statement 
+/////////////////////////////////////////////////////
+void IfStatement():
+{}
+{
+        <IF> <LPAREN> ListExpression() <RPAREN> 
+            Substatement() 
+            [LOOKAHEAD(1) <ELSE> Substatement()]
+}
+
+/////////////////////////////////////////////////////
+// Switch Statement 
+/////////////////////////////////////////////////////
+void SwitchStatement ():
+{}
+{
+        <SWITCH> <LPAREN> ListExpression() <RPAREN>
+                 <LBRACE> [CaseElements()] <RBRACE>
+}
+
+void CaseElements ():
+{}
+{
+        CaseLabel() (CaseElement())*
+}
+
+void CaseElement ():
+{}
+{
+        Directive()
+    |   CaseLabel()
+}
+
+void CaseLabel ():
+{}
+{
+        <CASE> ListExpression() <COLON>
+    |   <_DEFAULT> <COLON>
+}
+
+/////////////////////////////////////////////////////
+// Do-While Statement 
+/////////////////////////////////////////////////////
+void DoStatement(): 
+{}
+{
+        <DO> Substatement() <WHILE> <LPAREN> ListExpression() <RPAREN>
+}
+
+/////////////////////////////////////////////////////
+// While Statement
+/////////////////////////////////////////////////////
+void WhileStatement ():
+{}
+{
+        <WHILE> <LPAREN> ListExpression() <RPAREN>
+           Substatement()
+}
+
+/////////////////////////////////////////////////////
+// For Statements 
+/////////////////////////////////////////////////////
+void ForStatement ():
+{}
+{
+         LOOKAHEAD(<FOR> <LPAREN> ForInBinding() <IN>)
+                   <FOR> <LPAREN> ForInBinding() <IN> ListExpression() <RPAREN>
+                      Substatement()
+    |              <FOR> <LPAREN> [ForInitializer()] <SEMICOLON> 
+                       [ListExpression()] <SEMICOLON> 
+                       [ListExpression()] <RPAREN> 
+                      Substatement()
+}
+
+void ForInitializer ():
+{}
+{
+        LOOKAHEAD(3) ListExpressionNoIN()
+    |                VariableDefinitionNoIN()
+    |                Attributes()             VariableDefinitionNoIN()
+}
+
+void ForInBinding ():
+{}
+{
+        LOOKAHEAD(3) PostfixExpression()
+    |                VariableDefinitionKind() VariableBindingNoIN()
+    |                Attributes()             VariableDefinitionKind() VariableBindingNoIN()
+}
+
+/////////////////////////////////////////////////////
+// With Statement 
+/////////////////////////////////////////////////////
+void WithStatement():
+{}
+{
+        <WITH> <LPAREN> ExpressionStatement() <RPAREN>
+            Substatement()
+}
+
+/////////////////////////////////////////////////////
+// Continue and Break Statement
+/////////////////////////////////////////////////////
+void ContinueStatement():
+{}
+{
+        <CONTINUE> [Identifier()]
+}
+
+void BreakStatement():
+{}
+{
+        <BREAK> [Identifier()]
+}
+ 
+
+/////////////////////////////////////////////////////
+// Return Statement
+/////////////////////////////////////////////////////
+void ReturnStatement():
+{}
+{
+        <RETURN> [ListExpression()]
+}
+
+/////////////////////////////////////////////////////
+// Throw Statement
+/////////////////////////////////////////////////////
+void ThrowStatement():
+{}
+{
+        <THROW> ListExpression()
+}
+
+/////////////////////////////////////////////////////
+// Try Statement
+/////////////////////////////////////////////////////
+void TryStatement():
+{}
+{
+        <TRY> Block()
+        (<CATCH> <LPAREN> Identifier() <RPAREN> Block())*
+        [<FINALLY> Block()]
+} 
+ 
+/////////////////////////////////////////////////////
+// Directives 
+/////////////////////////////////////////////////////
+void Directives ():
+{}
+{
+        (Directive())+
+}
+
+void Directive ():
+{}
+{
+                      EmptyStatement()
+     |   LOOKAHEAD(3) Statement()
+     |   LOOKAHEAD(2) AnnotatableDirective()
+     |   LOOKAHEAD(2) Attributes()            <LBRACE> Directives() <RBRACE>
+     |   LOOKAHEAD(2) Attributes()            AnnotatableDirective() 
+     |                IncludeDirective()      Sc()
+     |                Pragma()                Sc()
+}
+
+void AnnotatableDirective ():
+{}
+{
+         VariableDefinition() Sc()
+     |   FunctionDefinition()
+     |   ClassDefinition()
+     |   InterfaceDefinition()
+     |   NamespaceDefinition() Sc()
+     |   ImportDirective() Sc()
+     |   ExportDefinition() Sc()
+     |   UseDirective() Sc()
+}
+/////////////////////////////////////////////////////
+// Attributes
+/////////////////////////////////////////////////////
+void Attributes ():
+{}
+{
+        (Attribute ())+
+}
+
+void Attribute ():
+{}
+{
+                     AttributeExpression()
+    |                <TRUE>
+    |                <FALSE>
+}
+
+/////////////////////////////////////////////////////
+// Use Directive
+/////////////////////////////////////////////////////
+void UseDirective ():
+{}
+{ 
+        <USE> <NAMESPACE> <LPAREN> ListExpression() <RPAREN>
+}
+
+/////////////////////////////////////////////////////
+// Import Directive
+/////////////////////////////////////////////////////
+void ImportDirective ():
+{}
+{
+        LOOKAHEAD(3) <IMPORT> PackageName()
+    |                <IMPORT> Identifier() <ASSIGN> PackageName()
+}
+
+/////////////////////////////////////////////////////
+// Include Directive
+/////////////////////////////////////////////////////
+void IncludeDirective (): 
+{}
+{
+        <INCLUDE> <STRING_LITERAL>
+}
+
+/////////////////////////////////////////////////////
+// Pragma
+/////////////////////////////////////////////////////
+void Pragma ():
+{}
+{
+        <USE> PragmaItems()
+}
+
+void PragmaItems ():
+{}
+{
+        PragmaItem() (<COMMA> PragmaItem())
+}
+
+void PragmaItem ():
+{}
+{
+        PragmaExpr() [<HOOK>]
+}
+
+
+void PragmaExpr ():
+{}
+{
+        Identifier() [<LPAREN> PragmaArgument() <RPAREN>]
+}
+
+void PragmaArgument ():
+{}
+{
+        <TRUE>
+    |   <FALSE>
+    |   <DECIMAL_LITERAL> 
+    |   <OCTAL_LITERAL>
+    |   <HEX_LITERAL>
+    |   <FLOATING_POINT_LITERAL> 
+    |   <STRING_LITERAL> 
+}
+
+/////////////////////////////////////////////////////
+// Definitions 
+/////////////////////////////////////////////////////
+
+/////////////////////////////////////////////////////
+// Export Definition 
+/////////////////////////////////////////////////////
+void ExportDefinition ():
+{}
+{
+        <EXPORT> ExportBindingList ()
+}
+
+void ExportBindingList ():
+{}
+{
+        ExportBinding() (<COMMA> ExportBinding())*
+}
+
+void ExportBinding ():
+{}
+{
+        LOOKAHEAD(2) FunctionName ()
+    |                FunctionName () <ASSIGN> FunctionName ()
+}
+
+/////////////////////////////////////////////////////
+// Variable Definition (in, NoIN)
+/////////////////////////////////////////////////////
+void VariableDefinition ():
+{}
+{
+        VariableDefinitionKind() VariableBindingList()
+}
+
+void VariableDefinitionNoIN ():
+{}
+{
+        VariableDefinitionKind() VariableBindingListNoIN()
+}
+
+
+void VariableDefinitionKind ():
+{}
+{
+        <VAR>
+    |   <CONST>
+}
+
+void VariableBindingList ():
+{}
+{
+   VariableBinding() (<COMMA> VariableBinding ())*
+}
+
+void VariableBindingListNoIN ():
+{}
+{
+   VariableBindingNoIN() (<COMMA> VariableBindingNoIN())*
+}
+
+void VariableBinding ():
+{}
+{
+        TypedIdentifier() [VariableInitialisation()]
+}
+
+void VariableBindingNoIN ():
+{}
+{
+        TypedIdentifierNoIN() [VariableInitialisationNoIN()]
+}
+
+
+void VariableInitialisation ():
+{}
+{
+       <ASSIGN>  VariableInitializer ()
+}
+
+void VariableInitialisationNoIN ():
+{}
+{
+       <ASSIGN>  VariableInitializerNoIN ()
+}
+
+void VariableInitializer ():
+{}
+{
+        LOOKAHEAD(3) AssignmentExpression ()
+    |                Attributes ()
+}
+
+void VariableInitializerNoIN ():
+{}
+{
+        LOOKAHEAD(3) AssignmentExpressionNoIN ()
+    |                Attributes ()
+}
+
+
+void TypedIdentifier ():
+{}
+{
+        Identifier () [<COLON> TypeExpression()]
+}
+
+void TypedIdentifierNoIN ():
+{}
+{
+        Identifier () [<COLON> TypeExpressionNoIN()]
+}
+
+/////////////////////////////////////////////////////
+// Simple Variable Definition 
+/////////////////////////////////////////////////////
+void SimpleVariableDefinition ():
+{}
+{
+        <VAR> UntypedVariableBindingList()
+}
+
+void UntypedVariableBindingList ():
+{}
+{
+        UntypedVariableBinding() (<COMMA> UntypedVariableBinding())*
+}
+
+void UntypedVariableBinding ():
+{}
+{
+        Identifier() VariableInitialisation()
+}
+
+/////////////////////////////////////////////////////
+// Function Definition
+/////////////////////////////////////////////////////
+void FunctionDefinition ():
+{}
+{
+        <FUNCTION> FunctionName() FunctionCommon()
+}
+
+void FunctionName ():
+{}
+{
+        // no line break after get
+        LOOKAHEAD(2) <GET> Identifier()
+        // no line break after get
+    |   LOOKAHEAD(2) <SET> Identifier()
+    |                 Identifier()
+}
+
+void FunctionCommon ():
+{}
+{
+        <LPAREN> [Parameters()] <RPAREN> [Result()] Block()
+}
+
+void Parameters ():
+{}
+{
+        RestParameters()
+    |   ParameterInit() (<COMMA> ParameterInit())* [RestParameters()]
+}
+
+void Parameter ():
+{}
+{
+        [<CONST>] TypedIdentifier()
+}
+
+void ParameterInit ():
+{}
+{
+        Parameter() [<ASSIGN> AssignmentExpression()]
+}
+
+void RestParameters ():
+{}
+{
+        <ELIPSE> [<CONST> Identifier()]
+}
+
+void Result ():
+{}
+{
+        <COLON> TypeExpression()
+}
+
+/////////////////////////////////////////////////////
+// Class Definition
+/////////////////////////////////////////////////////
+void ClassDefinition ():
+{}
+{
+        <CLASS> Identifier() [Inheritance()] Block()
+}
+
+void InterfaceDefinition ():
+{}
+{
+        LOOKAHEAD(3) <INTERFACE> Identifier() Sc()
+    |                <INTERFACE> Identifier() 
+                                 [<EXTENDS> TypeExpressionList()] Block()
+}
+
+
+void Inheritance ():
+{}
+{ 
+        <EXTENDS> TypeExpression() [<IMPLEMENTS> TypeExpressionList()]
+    |   <IMPLEMENTS> TypeExpressionList()
+}
+
+/////////////////////////////////////////////////////
+// Namespace Definition 
+/////////////////////////////////////////////////////
+void NamespaceDefinition ():
+{}
+{
+        <NAMESPACE> Identifier()
+}
+
+/////////////////////////////////////////////////////
+// Package Definition 
+/////////////////////////////////////////////////////
+void PackageDefinition ():
+{}
+{
+        <PACKAGE> [PackageName()] Block()
+}
+
+void PackageName ():
+{}
+{
+        <STRING_LITERAL>
+    |   PackageIdentifiers()
+}
+
+void PackageIdentifiers ():
+{}
+{
+        Identifier() (<DOT> Identifier())*
+}

Added: incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-javascript-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/javascript/javascriptcompiler/DepthFirstTraversal.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-javascript-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/javascript/javascriptcompiler/DepthFirstTraversal.java?rev=425117&view=auto
==============================================================================
--- incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-javascript-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/javascript/javascriptcompiler/DepthFirstTraversal.java (added)
+++ incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-javascript-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/javascript/javascriptcompiler/DepthFirstTraversal.java Mon Jul 24 09:58:43 2006
@@ -0,0 +1,1350 @@
+/*
+* Copyright 2006 The Apache Software Foundation.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.myfaces.trinidadbuild.plugin.javascript.javascriptcompiler;
+
+import java.io.PrintStream;
+
+import java.util.HashMap;
+
+import java.util.StringTokenizer;
+
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTAddOp;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTAdditiveExpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTAnnotatableDirective;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTArguments;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTArrayLiteral;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTAssignementOperator;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTAssignmentExpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTAssignmentExpressionNoIN;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTAttribute;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTAttributeExpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTAttributes;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTBitwiseANDExpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTBitwiseANDExpressionNoIN;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTBitwiseANDOp;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTBitwiseORExpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTBitwiseORExpressionNoIN;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTBitwiseOROp;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTBitwiseXORExpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTBitwiseXORExpressionNoIN;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTBitwiseXOROp;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTBlock;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTBreakStatement;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTCaseElement;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTCaseElements;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTCaseLabel;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTClassDefinition;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTConditionalExpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTConditionalExpressionNoIN;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTContinueStatement;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTDirective;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTDirectives;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTDoStatement;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTElementList;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTEmptyStatement;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTEolCommentSkipWs;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTEqualOp;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTEqualityExpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTEqualityExpressionNoIN;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTExportBinding;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTExportBindingList;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTExportDefinition;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTExpressionQualifiedIdentifier;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTExpressionStatement;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTFieldList;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTFieldName;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTForInBinding;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTForInitializer;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTForStatement;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTFullNewExpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTFullNewSubexpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTFullPostfixExpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTFunctionCommon;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTFunctionConstructor;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTFunctionDefinition;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTFunctionExpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTFunctionName;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTIdentifier;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTIfStatement;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTImportDirective;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTIncludeDirective;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTInheritance;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTInterfaceDefinition;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTLabeledStatement;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTListExpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTListExpressionNoIN;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTLiteralElement;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTLiteralField;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTLogicalANDExpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTLogicalANDExpressionNoIN;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTLogicalORExpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTLogicalORExpressionNoIN;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTMulOp;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTMultiplicativeExpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTNamespaceDefinition;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTNonAssignmentExpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTNonAssignmentExpressionNoIN;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTObjectLiteral;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTPackageDefinition;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTPackageIdentifiers;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTPackageName;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTParameter;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTParameterInit;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTParameters;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTPostfixExpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTPostfixOp;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTPragma;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTPragmaArgument;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTPragmaExpr;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTPragmaItem;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTPragmaItems;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTPrimaryExpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTProgram;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTPropertyOperator;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTPropertyOrArguments;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTQualifiedIdentifier;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTRelOp;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTRelationalExpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTRelationalExpressionNoIN;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTReservedNamespace;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTRestParameters;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTResult;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTReturnStatement;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTSc;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTShiftExpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTShiftOp;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTSimpleQualifiedIdentifier;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTSimpleVariableDefinition;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTStatement;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTSubstatement;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTSubstatements;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTSuperExpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTSuperStatement;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTSwitchStatement;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTThrowStatement;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTTryStatement;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTTypeExpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTTypeExpressionList;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTTypeExpressionNoIN;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTTypedIdentifier;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTTypedIdentifierNoIN;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTUnaryExpression;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTUntypedVariableBinding;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTUntypedVariableBindingList;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTUseDirective;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTVariableBinding;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTVariableBindingList;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTVariableBindingListNoIN;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTVariableBindingNoIN;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTVariableDefinition;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTVariableDefinitionKind;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTVariableDefinitionNoIN;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTVariableInitialisation;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTVariableInitialisationNoIN;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTVariableInitializer;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTVariableInitializerNoIN;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTWhileStatement;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ASTWithStatement;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.JSParser20Visitor;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.SimpleNode;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.Token;
+
+public class DepthFirstTraversal implements JSParser20Visitor
+{
+  protected PrintStream out;
+  private boolean _debug;
+  private int depth;
+  private HashMap<String, String> nameTable;
+
+  public DepthFirstTraversal()
+  {
+    out = System.out;
+    _debug = true;
+    depth = 0;
+  }
+
+
+  public DepthFirstTraversal(PrintStream o)
+  {
+    out = o;
+    _debug = true;
+    depth = 0;
+  }
+
+  public DepthFirstTraversal(PrintStream o, HashMap<String, String> tMap)
+  {
+    out = o;
+    _debug = true;
+    depth = 0;
+    nameTable = tMap;
+  }
+
+
+  public Object depthFirstTraversal(SimpleNode node, Object data)
+  {
+    depth++;
+
+    Token t1 = node.getFirstToken();
+    Token t = new Token();
+    t.next = t1;
+
+    SimpleNode n;
+
+    for (int ord = 0; ord < node.jjtGetNumChildren(); ord++)
+    {
+      //
+      //  Get the next chid node in sequence.
+      //
+      n = (SimpleNode) node.jjtGetChild(ord);
+
+      //
+      // Loop through all the Tokens that are attached to this node.
+      //
+      if (_debug == true)
+      {
+        while (true)
+        {
+          t = t.next;
+
+          if (t == n.getFirstToken()) break;
+
+          print(t);
+        }
+      }
+
+      //
+      // Depth Fist search so visit this nodes children before siblings
+      //
+      n.jjtAccept(this, data);
+
+      t = n.getLastToken();
+    }
+
+    if (_debug == true)
+    {
+      while (t != node.getLastToken())
+      {
+        if (t.next == null) {
+            break;
+        }
+        t = t.next;
+        print(t);
+      }
+    }
+
+    depth--;
+
+    return data;
+  }
+
+  protected void printNode(SimpleNode node)
+  {
+    Token t = node.getFirstToken();
+
+    while (t != node.getLastToken())
+    {
+      print(t);
+      t = t.next;
+    }
+
+    print(node.getLastToken());
+  }
+
+  protected void print(Token t)
+  {
+    //
+    //  Hack Alert: Due to an error with the leaf node ASTEolWithComments
+    //  Wich only matches special and no regular tokens thus we get the next
+    //  valid leafs token stuck in here. Thus we get duplicate info in each file.
+    //  Fixed this with simple flag to recognizes if the token has already been 
+    //  written out.Need to refactor that terminal.
+    //
+    if (t.hasPrinted == true) return;
+    
+    Token tt = t.specialToken;
+
+    if (tt != null)
+    {
+      while (tt.specialToken != null)
+        tt = tt.specialToken;
+
+      while (tt != null)
+      {
+        out.print(addUnicodeEscapes(tt.image));
+        tt = tt.next;
+      }
+    }
+    //
+    //  Check to see if the Token is an identifier kind.
+    //
+    if (t.kind == 78) 
+    {
+      //
+      //  Potential item to swap out.
+      //
+      String temp = nameTable.get(t.image);
+      if (temp != null) 
+      {
+        t.image = temp;
+      }
+    } else if (t.kind == 70 || t.kind == 72 || t.kind == 77) 
+    {
+      //
+      //   Got string that could have a potential class in it (like Eval or 
+      //   RegExp so need to scan the string.
+      //
+      StringTokenizer st;
+      if (t.image.charAt(0) == '"' && t.image.length() > 2) 
+      {
+        st = new StringTokenizer(t.image.substring(1, (t.image.length()-1)));
+                                                  
+      } else 
+      {
+        st = new StringTokenizer(t.image);
+      }
+      StringBuilder replacementString = new StringBuilder(t.image);
+      boolean update = false;
+      while (st.hasMoreTokens()) {
+          String temp1 = st.nextToken();
+          String temp = nameTable.get(temp1);
+          if (temp != null) 
+          {
+            int start = replacementString.indexOf(temp1);
+            int end = start + temp1.length();
+            update = true;
+            replacementString.delete(start, end);
+            replacementString.insert(start, temp);
+          } 
+      }
+      if (update == true) 
+      {
+          System.out.println("Old String is:" + t.image);
+          t.image = replacementString.toString();
+          System.out.println("New String is:" + t.image);
+      }
+    }
+    out.print(addUnicodeEscapes(t.image));
+    t.hasPrinted = true;
+  }
+
+  private String addUnicodeEscapes(String str)
+  {
+    String retval = "";
+    char ch;
+
+    for (int i = 0; i < str.length(); i++)
+    {
+      ch = str.charAt(i);
+
+      if (((ch < 0x20) || (ch > 0x7e)) && (ch != '\t') && (ch != '\n') &&
+          (ch != '\r') && (ch != '\f'))
+      {
+        String s = "0000" + Integer.toString(ch, 16);
+        retval += ("\\u" + s.substring(s.length() - 4, s.length()));
+      }
+      else
+      {
+        retval += ch;
+      }
+    }
+
+    return retval;
+  }
+
+  private String buildPaddedString(String s)
+  {
+    StringBuffer sb = new StringBuffer();
+
+    for (int count = 0; count <= depth; count++)
+    {
+      sb = sb.append(" ");
+    }
+
+    sb = sb.append(s);
+
+    return sb.toString();
+  }
+
+  public Object visit(SimpleNode node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTProgram node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTIdentifier node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTSimpleQualifiedIdentifier node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTExpressionQualifiedIdentifier node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTQualifiedIdentifier node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTPrimaryExpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTReservedNamespace node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTFunctionExpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTObjectLiteral node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTFieldList node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTLiteralField node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+ }
+
+  public Object visit(ASTFieldName node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTArrayLiteral node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTElementList node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTLiteralElement node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTSuperExpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTPostfixExpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTAttributeExpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTFullPostfixExpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTFullNewExpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTFunctionConstructor node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTFullNewSubexpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTPostfixOp node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTPropertyOrArguments node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTPropertyOperator node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTArguments node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTUnaryExpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTMulOp node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTMultiplicativeExpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTAddOp node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTAdditiveExpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTShiftOp node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTShiftExpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTRelOp node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTRelationalExpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTRelationalExpressionNoIN node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTEqualOp node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTEqualityExpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTEqualityExpressionNoIN node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTBitwiseANDOp node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTBitwiseANDExpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTBitwiseANDExpressionNoIN node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTBitwiseXOROp node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTBitwiseXORExpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTBitwiseXORExpressionNoIN node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTBitwiseOROp node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTBitwiseORExpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTBitwiseORExpressionNoIN node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTLogicalANDExpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTLogicalANDExpressionNoIN node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTLogicalORExpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTLogicalORExpressionNoIN node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTConditionalExpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTConditionalExpressionNoIN node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTNonAssignmentExpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTNonAssignmentExpressionNoIN node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTAssignementOperator node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTAssignmentExpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTAssignmentExpressionNoIN node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTListExpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTListExpressionNoIN node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTTypeExpression node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTTypeExpressionNoIN node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+
+  }
+
+  public Object visit(ASTTypeExpressionList node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+
+  }
+
+  public Object visit(ASTStatement node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+
+  }
+
+  public Object visit(ASTSubstatement node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTSubstatements node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTSc node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTEolCommentSkipWs node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTEmptyStatement node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTExpressionStatement node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTSuperStatement node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTBlock node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTLabeledStatement node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTIfStatement node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTSwitchStatement node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTCaseElements node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTCaseElement node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTCaseLabel node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTDoStatement node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTWhileStatement node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTForStatement node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTForInitializer node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTForInBinding node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTWithStatement node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTContinueStatement node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTBreakStatement node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTReturnStatement node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTThrowStatement node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTTryStatement node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTDirectives node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTDirective node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTAnnotatableDirective node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTAttributes node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTAttribute node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTUseDirective node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTImportDirective node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTIncludeDirective node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTPragma node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTPragmaItems node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTPragmaItem node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTPragmaExpr node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTPragmaArgument node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTExportDefinition node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTExportBindingList node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTExportBinding node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTVariableDefinition node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTVariableDefinitionNoIN node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTVariableDefinitionKind node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTVariableBindingList node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTVariableBindingListNoIN node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTVariableBinding node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTVariableBindingNoIN node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTVariableInitialisation node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTVariableInitialisationNoIN node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTVariableInitializer node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTVariableInitializerNoIN node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTTypedIdentifier node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTTypedIdentifierNoIN node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTSimpleVariableDefinition node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTUntypedVariableBindingList node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTUntypedVariableBinding node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTFunctionDefinition node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTFunctionName node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTFunctionCommon node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTParameters node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTParameter node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTParameterInit node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTRestParameters node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTResult node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTClassDefinition node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTInterfaceDefinition node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTInheritance node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTNamespaceDefinition node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTPackageDefinition node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTPackageName node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+
+  public Object visit(ASTPackageIdentifiers node, Object data)
+  {
+    depthFirstTraversal(node, data);
+
+    return data;
+  }
+}
+

Propchange: incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-javascript-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/javascript/javascriptcompiler/DepthFirstTraversal.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-javascript-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/javascript/javascriptcompiler/DepthFirstTraversal.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-javascript-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/javascript/javascriptcompiler/JavascriptCompiler.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-javascript-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/javascript/javascriptcompiler/JavascriptCompiler.java?rev=425117&view=auto
==============================================================================
--- incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-javascript-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/javascript/javascriptcompiler/JavascriptCompiler.java (added)
+++ incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-javascript-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/javascript/javascriptcompiler/JavascriptCompiler.java Mon Jul 24 09:58:43 2006
@@ -0,0 +1,108 @@
+/*
+* Copyright 2006 The Apache Software Foundation.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.myfaces.trinidadbuild.plugin.javascript.javascriptcompiler;
+
+import java.io.BufferedOutputStream;
+
+import org.apache.myfaces.trinidadbuild.plugin.javascript.uixtools.FileProcessor;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.JSParser20;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.Token;
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascript20parser.ParseException;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStreamReader;
+import java.io.InputStream;
+import java.io.PrintStream;
+
+import java.util.HashMap;
+
+public class JavascriptCompiler extends FileProcessor
+{
+  private JSParser20        _jsParser;
+  public  HashMap<String, String>         fileTable;
+
+  public JavascriptCompiler()
+  {
+    super("js", false);
+    fileTable = new HashMap<String,String>();
+  }
+
+  private void init(InputStream in)
+  {
+    // apply overrides
+  }
+
+  protected void processFile(File in, File out)
+    throws Exception
+  {
+    String className, newClassName;
+    FileInputStream inStream = new FileInputStream(in);
+    //
+    //  Get the name of the file
+    //
+    className = in.getName();
+    className = className.substring(0, className.indexOf('.'));
+    //
+    //  Check to see if the name exists as we do not want to over write the four
+    //  special names we are using.
+    //
+    newClassName = fileTable.get(className);
+    if ( newClassName == null) 
+    {
+//       newClassName = "Adf" + className;
+//      fileTable.put(className, newClassName);
+      newClassName = className;
+    }
+    out = new File(out.getParentFile(), newClassName + ".js");
+    PrintStream outStream = new PrintStream(new BufferedOutputStream(new FileOutputStream(out)));
+    process(inStream, outStream);
+    inStream.close();
+    outStream.flush();
+    outStream.close();
+  }
+  private void initParser(InputStream in)
+  {
+
+    if (_jsParser == null)
+    {
+      _jsParser = new JSParser20(in);
+    }
+    else
+    {
+      _jsParser.ReInit(new InputStreamReader(in));
+    }
+  }
+  public void process(InputStream in, PrintStream o) throws ParseException
+  {
+    Token token = null;
+    DepthFirstTraversal vstr;
+    init(in);
+    token = tokenize(in);
+    //
+    //   Create an instance of DepthFirstTraversal
+    //
+    vstr = new DepthFirstTraversal(o, fileTable); 
+    _jsParser.getRootNode().jjtAccept(vstr, null);
+  }
+  private Token tokenize(InputStream in) throws ParseException
+  {
+    initParser(in);
+    return (Token) _jsParser.Program();
+  }
+
+}

Propchange: incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-javascript-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/javascript/javascriptcompiler/JavascriptCompiler.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Added: incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-javascript-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/javascript/javascriptcompiler/JavascriptCompilerMain.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-javascript-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/javascript/javascriptcompiler/JavascriptCompilerMain.java?rev=425117&view=auto
==============================================================================
--- incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-javascript-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/javascript/javascriptcompiler/JavascriptCompilerMain.java (added)
+++ incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-javascript-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/javascript/javascriptcompiler/JavascriptCompilerMain.java Mon Jul 24 09:58:43 2006
@@ -0,0 +1,120 @@
+/*
+* Copyright 2006 The Apache Software Foundation.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.myfaces.trinidadbuild.plugin.javascript.javascriptcompiler;
+
+import org.apache.myfaces.trinidadbuild.plugin.javascript.javascriptcompiler.JavascriptCompiler;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+import java.io.ObjectInputStream;
+
+import java.util.HashMap;
+
+
+public class JavascriptCompilerMain
+{
+  private JavascriptCompiler _javascriptCompiler;
+
+  public JavascriptCompilerMain()
+  {
+  }
+
+  public static void main(String[] args)
+  {
+    JavascriptCompilerMain _main = new JavascriptCompilerMain();
+    _main._javascriptCompiler = new JavascriptCompiler();
+    try
+    {
+      FileInputStream fis = new FileInputStream("D:\\Foo\\data1.txt");
+      ObjectInputStream ois = new ObjectInputStream(fis);
+      _main._javascriptCompiler.fileTable =  (HashMap<String, String>)ois.readObject(); // Read the object back in here
+      //
+      // 
+      _main._javascriptCompiler.fileTable.put("RichObject", "AdfObject");
+      _main._javascriptCompiler.fileTable.put("RichPage", "AdfPage");
+      _main._javascriptCompiler.fileTable.put("RichConverter", "AdfConverter");
+      _main._javascriptCompiler.fileTable.put("RichValidator", "AdfValidator");
+      _main._javascriptCompiler.fileTable.put("Bootstrap", "AdfBootstrap");
+      _main._javascriptCompiler.fileTable.put("BootstrapFaces", "AdfBootstrapFaces");
+      _main._javascriptCompiler.fileTable.put("XMLRequest", "AdfXMLRequest");
+      _main._javascriptCompiler.fileTable.put("MarshalingService", "AdfMarshalingService");
+      _main._javascriptCompiler.fileTable.put("MessagingService", "AdfMessagingService");
+      ois.close();
+      fis.close();
+    }
+    catch (FileNotFoundException e)
+    {
+      // TODO
+    }
+    catch (IOException e)
+    {
+      // TODO
+    }
+    catch (ClassNotFoundException e) 
+    {
+      // TODO
+    }
+    File in = 
+      new File("D:\\jdevrt\\adf-faces\\trunk\\adf-richclient-demo\\src\\main\\webapp\\jsLibs");
+    File out = new File("D:\\Foo\\Demo\\jsLibs");
+    _main._javascriptCompiler.process(in, out);
+    in = 
+      new File("D:\\jdevrt\\adf-faces\\trunk\\adf-richclient-demo-crm\\src\\main\\webapp\\jsLibs");
+    out = new File("D:\\Foo\\crm\\jsLibs");
+    _main._javascriptCompiler.process(in, out);
+
+    //
+    //  Transform the Api JavaScript files
+    //
+//    File in = 
+//      new File("D:\\jdevrt\\adf-faces\\trunk\\adf-richclient-api\\src\\main\\javascript\\oracle\\adf\\view");
+//    File out = new File("D:\\Foo\\api");
+//    _main._javascriptCompiler.process(in, out);
+    //
+    //  Transform the Impl JavaScript files
+    //
+//    in = 
+//       new File("D:\\jdevrt\\adf-faces\\trunk\\adf-richclient-impl\\src\\main\\javascript\\oracle\\adfinternal\\view\\");
+//    out = new File("D:\\Foo\\impl");
+//    _main._javascriptCompiler.process(in, out);
+    //
+    //  Uodate the serialized version of the HashMap
+    //
+    FileOutputStream fos;
+    ObjectOutputStream oos;
+    try
+    {
+
+      fos = new FileOutputStream("D:\\Foo\\data1.txt");
+      oos = new ObjectOutputStream(fos);
+      oos.writeObject(_main._javascriptCompiler.fileTable);
+      oos.flush();
+      oos.close();
+    }
+    catch (FileNotFoundException e)
+    {
+      // TODO
+    }
+    catch (IOException e)
+    {
+      // TODO
+    }
+  }
+}
\ No newline at end of file

Propchange: incubator/adffaces/branches/matzew-repackaging-trinidad/plugins/maven-javascript-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/javascript/javascriptcompiler/JavascriptCompilerMain.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL