http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/e43b7a87/FlexPMD/as3-parser/src/main/java/de/bokelberg/flex/parser/AS3Scanner.java
----------------------------------------------------------------------
diff --git 
a/FlexPMD/as3-parser/src/main/java/de/bokelberg/flex/parser/AS3Scanner.java 
b/FlexPMD/as3-parser/src/main/java/de/bokelberg/flex/parser/AS3Scanner.java
deleted file mode 100644
index cdd185f..0000000
--- a/FlexPMD/as3-parser/src/main/java/de/bokelberg/flex/parser/AS3Scanner.java
+++ /dev/null
@@ -1,898 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 de.bokelberg.flex.parser;
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.util.logging.Logger;
-import java.util.regex.Pattern;
-import java.util.regex.PatternSyntaxException;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-import com.adobe.ac.utils.StackTraceUtils;
-
-/**
- * convert a actionscript to a stream of tokens
- * 
- * @author rbokel
- * @author xagnetti
- */
-public class AS3Scanner
-{
-   /**
-    * @author xagnetti
-    */
-   public static final class Token
-   {
-      private static Token create( final String textContent,
-                                   final int tokenLine,
-                                   final int tokenColumn )
-      {
-         return new Token( textContent, tokenLine, tokenColumn );
-      }
-
-      private final int     column;
-      private final boolean isNumeric;
-      private final int     line;
-      private final String  text;
-
-      /**
-       * @param textContent
-       * @param tokenLine
-       * @param tokenColumn
-       */
-      protected Token( final String textContent,
-                       final int tokenLine,
-                       final int tokenColumn )
-      {
-         this( textContent, tokenLine, tokenColumn, false );
-      }
-
-      /**
-       * @param textContent
-       * @param tokenLine
-       * @param tokenColumn
-       * @param isNumToSet
-       */
-      protected Token( final String textContent,
-                       final int tokenLine,
-                       final int tokenColumn,
-                       final boolean isNumToSet )
-      {
-         text = textContent;
-         line = tokenLine + 1;
-         column = tokenColumn + 1;
-         isNumeric = isNumToSet;
-      }
-
-      /**
-       * @return
-       */
-      public int getColumn()
-      {
-         return column;
-      }
-
-      /**
-       * @return
-       */
-      public int getLine()
-      {
-         return line;
-      }
-
-      /**
-       * @return
-       */
-      public String getText()
-      {
-         return text;
-      }
-
-      /**
-       * @return
-       */
-      public boolean isNum()
-      {
-         return isNumeric;
-      }
-   }
-
-   private static class XMLVerifier
-   {
-      private static DefaultHandler handler;
-      private static SAXParser      saxParser;
-
-      static
-      {
-         final SAXParserFactory factory = SAXParserFactory.newInstance();
-
-         handler = new DefaultHandler();
-         factory.setNamespaceAware( false );
-
-         try
-         {
-            saxParser = factory.newSAXParser();
-         }
-         catch ( final ParserConfigurationException e )
-         {
-            LOGGER.warning( StackTraceUtils.print( e ) );
-         }
-         catch ( final SAXException e )
-         {
-         }
-      }
-
-      public static boolean verify( final String text )
-      {
-         try
-         {
-            saxParser.parse( new InputSource( new StringReader( text ) ),
-                             handler );
-            return true;
-         }
-         catch ( final SAXException e )
-         {
-            LOGGER.warning( StackTraceUtils.print( e ) );
-            return false;
-         }
-         catch ( final IOException e )
-         {
-            LOGGER.warning( StackTraceUtils.print( e ) );
-            return false;
-         }
-      }
-   }
-
-   private static final String END    = "__END__";
-   private static final Logger LOGGER = Logger.getLogger( 
AS3Scanner.class.getName() );
-
-   protected static boolean isDecimalChar( final char currentCharacter )
-   {
-      return currentCharacter >= '0'
-            && currentCharacter <= '9';
-   }
-
-   private int      column;
-   private boolean  inVector;
-   private int      line;
-   private String[] lines = null;
-
-   /**
-    * @return
-    */
-   public Token moveToNextToken()
-   {
-      return nextToken();
-   }
-
-   /**
-    * @param linesToBeSet
-    */
-   public void setLines( final String[] linesToBeSet )
-   {
-      lines = linesToBeSet;
-      line = 0;
-      column = -1;
-   }
-
-   boolean isHexChar( final char currentCharacter )
-   {
-      final boolean isNum = currentCharacter >= '0'
-            && currentCharacter <= '9';
-      final boolean isLower = currentCharacter >= 'A'
-            && currentCharacter <= 'Z';
-      final boolean isUpper = currentCharacter >= 'a'
-            && currentCharacter <= 'z';
-
-      return isNum
-            || isLower || isUpper;
-   }
-
-   /**
-    * @return
-    */
-   protected Token nextToken()
-   {
-      char currentCharacter;
-
-      if ( lines != null
-            && line < lines.length )
-      {
-         currentCharacter = nextNonWhitespaceCharacter();
-      }
-      else
-      {
-         return new Token( END, line, column );
-      }
-
-      if ( currentCharacter == '\n' )
-      {
-         return new Token( "\n", line, column );
-      }
-      if ( currentCharacter == '/' )
-      {
-         return scanCommentRegExpOrOperator();
-      }
-      if ( currentCharacter == '"' )
-      {
-         return scanString( currentCharacter );
-      }
-      if ( currentCharacter == '\'' )
-      {
-         return scanString( currentCharacter );
-      }
-      if ( currentCharacter == '<' )
-      {
-         return scanXMLOrOperator( currentCharacter );
-      }
-      if ( currentCharacter >= '0'
-            && currentCharacter <= '9' || currentCharacter == '.' )
-      {
-         return scanNumberOrDots( currentCharacter );
-      }
-      if ( currentCharacter == '{'
-            || currentCharacter == '}' || currentCharacter == '(' || 
currentCharacter == ')'
-            || currentCharacter == '[' || currentCharacter == ']' || 
currentCharacter == ';'
-            || currentCharacter == ',' || currentCharacter == '?' || 
currentCharacter == '~' )
-      {
-         return scanSingleCharacterToken( currentCharacter );
-      }
-      if ( currentCharacter == ':' )
-      {
-         return scanCharacterSequence( currentCharacter,
-                                       new String[]
-                                       { "::" } );
-      }
-      if ( currentCharacter == '*' )
-      {
-         return scanCharacterSequence( currentCharacter,
-                                       new String[]
-                                       {} );
-      }
-      if ( currentCharacter == '+' )
-      {
-         return scanCharacterSequence( currentCharacter,
-                                       new String[]
-                                       { "++",
-                                                   "+=" } );
-      }
-      if ( currentCharacter == '-' )
-      {
-         return scanCharacterSequence( currentCharacter,
-                                       new String[]
-                                       { "--",
-                                                   "-=" } );
-      }
-      if ( currentCharacter == '%' )
-      {
-         return scanCharacterSequence( currentCharacter,
-                                       new String[]
-                                       { "%=" } );
-      }
-      if ( currentCharacter == '&' )
-      {
-         return scanCharacterSequence( currentCharacter,
-                                       new String[]
-                                       { "&&",
-                                                   "&=" } );
-      }
-      if ( currentCharacter == '|' )
-      {
-         return scanCharacterSequence( currentCharacter,
-                                       new String[]
-                                       { "||",
-                                                   "|=" } );
-      }
-      if ( currentCharacter == '^' )
-      {
-         return scanCharacterSequence( currentCharacter,
-                                       new String[]
-                                       { "^=" } );
-      }
-      if ( currentCharacter == '>' )
-      {
-         if ( inVector )
-         {
-            inVector = false;
-         }
-         else
-         {
-            return scanCharacterSequence( currentCharacter,
-                                          new String[]
-                                          { ">>>=",
-                                                      ">>>",
-                                                      ">>=",
-                                                      ">>",
-                                                      ">=" } );
-         }
-      }
-      if ( currentCharacter == '=' )
-      {
-         return scanCharacterSequence( currentCharacter,
-                                       new String[]
-                                       { "===",
-                                                   "==" } );
-      }
-      if ( currentCharacter == '!' )
-      {
-         return scanCharacterSequence( currentCharacter,
-                                       new String[]
-                                       { "!==",
-                                                   "!=" } );
-      }
-
-      return scanWord( currentCharacter );
-   }
-
-   private int computePossibleMatchesMaxLength( final String[] possibleMatches 
)
-   {
-      int max = 0;
-
-      for ( final String possibleMatch : possibleMatches )
-      {
-         max = Math.max( max,
-                         possibleMatch.length() );
-      }
-      return max;
-   }
-
-   private char getPreviousCharacter()
-   {
-      int currentIndex = -1;
-      char currentChar;
-      do
-      {
-         currentChar = peekChar( currentIndex-- );
-      }
-      while ( currentChar == ' ' );
-      return currentChar;
-   }
-
-   private boolean isIdentifierCharacter( final char currentCharacter )
-   {
-      return currentCharacter >= 'A'
-            && currentCharacter <= 'Z' || currentCharacter >= 'a' && 
currentCharacter <= 'z'
-            || currentCharacter >= '0' && currentCharacter <= '9' || 
currentCharacter == '_'
-            || currentCharacter == '$';
-   }
-
-   private boolean isProcessingInstruction( final String text )
-   {
-      return text.startsWith( "<?" );
-   }
-
-   private boolean isValidRegExp( final String pattern )
-   {
-      try
-      {
-         Pattern.compile( pattern );
-      }
-      catch ( final PatternSyntaxException t )
-      {
-         return false;
-      }
-      return true;
-   }
-
-   private boolean isValidXML( final String text )
-   {
-      return XMLVerifier.verify( text );
-   }
-
-   private char nextChar()
-   {
-      final String currentLine = lines[ line ];
-
-      column++;
-      if ( currentLine.length() <= column )
-      {
-         column = -1;
-         line++;
-         return '\n';
-      }
-
-      char currentChar = currentLine.charAt( column );
-
-      while ( currentChar == '\uFEFF' )
-      {
-         column++;
-         currentChar = currentLine.charAt( column );
-      }
-      return currentChar;
-   }
-
-   private char nextNonWhitespaceCharacter()
-   {
-      char result;
-      do
-      {
-         result = nextChar();
-      }
-      while ( result == ' '
-            || result == '\t' );
-      return result;
-   }
-
-   private char peekChar( final int offset )
-   {
-      final String currentLine = lines[ line ];
-      final int index = column
-            + offset;
-      if ( index == -1 )
-      {
-         return '\0';
-      }
-      if ( index >= currentLine.length() )
-      {
-         return '\n';
-      }
-
-      return currentLine.charAt( index );
-   }
-
-   /**
-    * find the longest matching sequence
-    * 
-    * @param currentCharacter
-    * @param possibleMatches
-    * @param maxLength
-    * @return
-    */
-   private Token scanCharacterSequence( final char currentCharacter,
-                                        final String[] possibleMatches )
-   {
-      int peekPos = 1;
-      final StringBuffer buffer = new StringBuffer();
-      final int maxLength = computePossibleMatchesMaxLength( possibleMatches );
-
-      buffer.append( currentCharacter );
-      String found = buffer.toString();
-      while ( peekPos < maxLength )
-      {
-         buffer.append( peekChar( peekPos ) );
-         peekPos++;
-         for ( final String possibleMatche : possibleMatches )
-         {
-            if ( buffer.toString().equals( possibleMatche ) )
-            {
-               found = buffer.toString();
-            }
-         }
-      }
-      final Token result = new Token( found, line, column );
-      skipChars( found.length() - 1 );
-      return result;
-   }
-
-   /**
-    * Something started with a slash This might be a comment, a regexp or a
-    * operator
-    * 
-    * @param currentCharacter
-    * @return
-    */
-   private Token scanCommentRegExpOrOperator()
-   {
-      final char firstCharacter = peekChar( 1 );
-
-      if ( firstCharacter == '/' )
-      {
-         return scanSingleLineComment();
-      }
-      if ( firstCharacter == '*' )
-      {
-         return scanMultiLineComment();
-      }
-
-      Token result;
-
-      if ( getPreviousCharacter() == '='
-            || getPreviousCharacter() == '(' || getPreviousCharacter() == ',' )
-      {
-         result = scanRegExp();
-
-         if ( result != null )
-         {
-            return result;
-         }
-      }
-
-      if ( firstCharacter == '=' )
-      {
-         result = new Token( "/=", line, column );
-         skipChars( 1 );
-         return result;
-      }
-      result = new Token( "/", line, column );
-      return result;
-   }
-
-   /**
-    * c is either a dot or a number
-    * 
-    * @return
-    */
-   private Token scanDecimal( final char currentCharacter )
-   {
-      char currentChar = currentCharacter;
-      final StringBuffer buffer = new StringBuffer();
-      int peekPos = 1;
-
-      while ( isDecimalChar( currentChar ) )
-      {
-         buffer.append( currentChar );
-         currentChar = peekChar( peekPos++ );
-      }
-
-      if ( currentChar == '.' )
-      {
-         buffer.append( currentChar );
-         currentChar = peekChar( peekPos++ );
-
-         while ( isDecimalChar( currentChar ) )
-         {
-            buffer.append( currentChar );
-            currentChar = peekChar( peekPos++ );
-         }
-
-         if ( currentChar == 'E' )
-         {
-            buffer.append( currentChar );
-            currentChar = peekChar( peekPos++ );
-            while ( isDecimalChar( currentChar ) )
-            {
-               buffer.append( currentChar );
-               currentChar = peekChar( peekPos++ );
-            }
-         }
-      }
-      final Token result = new Token( buffer.toString(), line, column, true );
-      skipChars( result.text.length() - 1 );
-      return result;
-   }
-
-   /**
-    * The first dot has been scanned Are the next chars dots as well?
-    * 
-    * @return
-    */
-   private Token scanDots()
-   {
-      final char secondCharacter = peekChar( 1 );
-
-      if ( secondCharacter == '.' )
-      {
-         final char thirdCharacter = peekChar( 2 );
-         final String text = thirdCharacter == '.' ? "..."
-                                                  : "..";
-         final Token result = new Token( text, line, column );
-
-         skipChars( text.length() - 1 );
-
-         return result;
-      }
-      else if ( secondCharacter == '<' )
-      {
-         final Token result = new Token( ".<", line, column );
-
-         skipChars( 1 );
-
-         inVector = true;
-         return result;
-      }
-      return null;
-   }
-
-   /**
-    * we have seen the 0x prefix
-    * 
-    * @return
-    */
-   private Token scanHex()
-   {
-      final StringBuffer buffer = new StringBuffer();
-
-      buffer.append( "0x" );
-      int peekPos = 2;
-      for ( ;; )
-      {
-         final char character = peekChar( peekPos++ );
-
-         if ( !isHexChar( character ) )
-         {
-            break;
-         }
-         buffer.append( character );
-      }
-      final Token result = new Token( buffer.toString(), line, column, true );
-      skipChars( result.text.length() - 1 );
-      return result;
-   }
-
-   /**
-    * the current char is the first slash plus we know, that a * is following
-    * 
-    * @return
-    */
-   private Token scanMultiLineComment()
-   {
-      final StringBuffer buffer = new StringBuffer();
-      char currentCharacter = ' ';
-      char previousCharacter = ' ';
-
-      buffer.append( "/*" );
-      skipChar();
-      do
-      {
-         previousCharacter = currentCharacter;
-         currentCharacter = nextChar();
-         buffer.append( currentCharacter );
-      }
-      while ( currentCharacter != 0
-            && !( currentCharacter == '/' && previousCharacter == '*' ) );
-
-      return new Token( buffer.toString(), line, column );
-   }
-
-   /**
-    * Something started with a number or a dot.
-    * 
-    * @param characterToBeScanned
-    * @return
-    */
-   private Token scanNumberOrDots( final char characterToBeScanned )
-   {
-      if ( characterToBeScanned == '.' )
-      {
-         final Token result = scanDots();
-         if ( result != null )
-         {
-            return result;
-         }
-
-         final char firstCharacter = peekChar( 1 );
-         if ( !isDecimalChar( firstCharacter ) )
-         {
-            return new Token( ".", line, column );
-         }
-      }
-      if ( characterToBeScanned == '0' )
-      {
-         final char firstCharacter = peekChar( 1 );
-         if ( firstCharacter == 'x' )
-         {
-            return scanHex();
-         }
-      }
-      return scanDecimal( characterToBeScanned );
-   }
-
-   private Token scanRegExp()
-   {
-      final Token token = scanUntilDelimiter( '/' );
-      if ( token != null
-            && isValidRegExp( token.text ) )
-      {
-         return token;
-      }
-      return null;
-   }
-
-   private Token scanSingleCharacterToken( final char character )
-   {
-      return new Token( String.valueOf( character ), line, column );
-   }
-
-   /**
-    * the current char is the first slash plus we know, that another slash is
-    * following
-    * 
-    * @return
-    */
-   private Token scanSingleLineComment()
-   {
-      final Token result = new Token( lines[ line ].substring( column ), line, 
column );
-      skipChars( result.text.length() - 1 );
-      return result;
-   }
-
-   /**
-    * Something started with a quote or double quote consume characters until
-    * the quote/double quote shows up again and is not escaped
-    * 
-    * @param startingCharacter
-    * @return
-    */
-   private Token scanString( final char startingCharacter )
-   {
-      return scanUntilDelimiter( startingCharacter );
-   }
-
-   private Token scanUntilDelimiter( final char delimiter )
-   {
-      return scanUntilDelimiter( delimiter,
-                                 delimiter );
-
-   }
-
-   private Token scanUntilDelimiter( final char start,
-                                     final char delimiter )
-   {
-      final StringBuffer buffer = new StringBuffer();
-      int peekPos = 1;
-      int numberOfBackslashes = 0;
-
-      buffer.append( start );
-
-      for ( ;; )
-      {
-         final char currentCharacter = peekChar( peekPos++ );
-         if ( currentCharacter == '\n' )
-         {
-            return null;
-         }
-         buffer.append( currentCharacter );
-         if ( currentCharacter == delimiter
-               && numberOfBackslashes == 0 )
-         {
-            final Token result = Token.create( buffer.toString(),
-                                               line,
-                                               column );
-            skipChars( buffer.toString().length() - 1 );
-            return result;
-         }
-         numberOfBackslashes = currentCharacter == '\\' ? ( 
numberOfBackslashes + 1 ) % 2
-                                                       : 0;
-      }
-   }
-
-   private Token scanWord( final char startingCharacter )
-   {
-      char currentChar = startingCharacter;
-      final StringBuffer buffer = new StringBuffer();
-
-      buffer.append( currentChar );
-      int peekPos = 1;
-      for ( ;; )
-      {
-         currentChar = peekChar( peekPos++ );
-         if ( !isIdentifierCharacter( currentChar ) )
-         {
-            break;
-         }
-
-         buffer.append( currentChar );
-      }
-      final Token result = new Token( buffer.toString(), line, column );
-      skipChars( buffer.toString().length() - 1 );
-      return result;
-   }
-
-   /**
-    * Try to parse a XML document
-    * 
-    * @return
-    */
-   private Token scanXML()
-   {
-      final int currentLine = line;
-      final int currentColumn = column;
-      int level = 0;
-      final StringBuffer buffer = new StringBuffer();
-      char currentCharacter = '<';
-
-      for ( ;; )
-      {
-         Token currentToken = null;
-         do
-         {
-            currentToken = scanUntilDelimiter( '<',
-                                               '>' );
-            if ( currentToken == null )
-            {
-               line = currentLine;
-               column = currentColumn;
-               return null;
-            }
-            buffer.append( currentToken.text );
-            if ( isProcessingInstruction( currentToken.text ) )
-            {
-               currentCharacter = nextChar();
-               if ( currentCharacter == '\n' )
-               {
-                  buffer.append( '\n' );
-                  skipChar();
-               }
-               currentToken = null;
-            }
-         }
-         while ( currentToken == null );
-
-         if ( currentToken.text.startsWith( "</" ) )
-         {
-            level--;
-         }
-         else if ( !currentToken.text.endsWith( "/>" )
-               && !currentToken.text.equals( "<>" ) ) // NOT operator in AS2
-         {
-            level++;
-         }
-
-         if ( level <= 0 )
-         {
-            return new Token( buffer.toString(), line, column );
-         }
-
-         for ( ;; )
-         {
-            currentCharacter = nextChar();
-            if ( currentCharacter == '<' )
-            {
-               break;
-            }
-            buffer.append( currentCharacter );
-         }
-      }
-   }
-
-   /**
-    * Something started with a lower sign <
-    * 
-    * @param startingCharacterc
-    * @return
-    */
-   private Token scanXMLOrOperator( final char startingCharacterc )
-   {
-      final Token xmlToken = scanXML();
-
-      if ( xmlToken != null
-            && isValidXML( xmlToken.text ) )
-      {
-         return xmlToken;
-      }
-      return scanCharacterSequence( startingCharacterc,
-                                    new String[]
-                                    { "<<<=",
-                                                "<<<",
-                                                "<<=",
-                                                "<<",
-                                                "<=" } );
-   }
-
-   private void skipChar()
-   {
-      nextChar();
-   }
-
-   private void skipChars( final int count )
-   {
-      int decrementCount = count;
-
-      while ( decrementCount-- > 0 )
-      {
-         nextChar();
-      }
-   }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/e43b7a87/FlexPMD/as3-parser/src/main/java/de/bokelberg/flex/parser/NestedNode.java
----------------------------------------------------------------------
diff --git 
a/FlexPMD/as3-parser/src/main/java/de/bokelberg/flex/parser/NestedNode.java 
b/FlexPMD/as3-parser/src/main/java/de/bokelberg/flex/parser/NestedNode.java
deleted file mode 100644
index 27affb2..0000000
--- a/FlexPMD/as3-parser/src/main/java/de/bokelberg/flex/parser/NestedNode.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 de.bokelberg.flex.parser;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.adobe.ac.pmd.parser.IParserNode;
-import com.adobe.ac.pmd.parser.NodeKind;
-
-/**
- * @author xagnetti
- */
-class NestedNode
-{
-   private List< IParserNode > children;
-   private NodeKind            nodeId;
-
-   /**
-    * @param idToBeSet
-    */
-   protected NestedNode( final NodeKind idToBeSet )
-   {
-      nodeId = idToBeSet;
-   }
-
-   /**
-    * @param idToBeSet
-    * @param childToBeSet
-    */
-   protected NestedNode( final NodeKind idToBeSet,
-                         final IParserNode childToBeSet )
-   {
-      this( idToBeSet );
-      addChild( childToBeSet );
-   }
-
-   /**
-    * @return
-    */
-   public final int computeCyclomaticComplexity()
-   {
-      int cyclomaticComplexity = 0;
-
-      if ( is( NodeKind.FOREACH )
-            || is( NodeKind.FORIN ) || is( NodeKind.CASE ) || is( 
NodeKind.DEFAULT ) )
-      {
-         cyclomaticComplexity++;
-      }
-      else if ( is( NodeKind.IF )
-            || is( NodeKind.WHILE ) || is( NodeKind.FOR ) )
-      {
-         cyclomaticComplexity++;
-         cyclomaticComplexity += getChild( 0 ).countNodeFromType( NodeKind.AND 
);
-         cyclomaticComplexity += getChild( 0 ).countNodeFromType( NodeKind.OR 
);
-      }
-
-      if ( numChildren() > 0 )
-      {
-         for ( final IParserNode child : getChildren() )
-         {
-            cyclomaticComplexity += child.computeCyclomaticComplexity();
-         }
-      }
-
-      return cyclomaticComplexity;
-   }
-
-   /**
-    * @param type
-    * @return
-    */
-   public final int countNodeFromType( final NodeKind type )
-   {
-      int count = 0;
-
-      if ( is( type ) )
-      {
-         count++;
-      }
-      if ( numChildren() > 0 )
-      {
-         for ( final IParserNode child : getChildren() )
-         {
-            count += child.countNodeFromType( type );
-         }
-      }
-      return count;
-   }
-
-   /**
-    * @param index
-    * @return
-    */
-   public final IParserNode getChild( final int index )
-   {
-      return getChildren() == null
-            || getChildren().size() <= index ? null
-                                            : getChildren().get( index );
-   }
-
-   /**
-    * @return
-    */
-   public List< IParserNode > getChildren()
-   {
-      return children;
-   }
-
-   /**
-    * @return
-    */
-   public NodeKind getId()
-   {
-      return nodeId;
-   }
-
-   /**
-    * @return
-    */
-   public IParserNode getLastChild()
-   {
-      final IParserNode lastChild = getChild( numChildren() - 1 );
-
-      return lastChild != null
-            && lastChild.numChildren() > 0 ? lastChild.getLastChild()
-                                          : lastChild;
-   }
-
-   /**
-    * @param expectedType
-    * @return
-    */
-   public final boolean is( final NodeKind expectedType ) // NOPMD
-   {
-      return getId().equals( expectedType );
-   }
-
-   /**
-    * @return
-    */
-   public final int numChildren()
-   {
-      return getChildren() == null ? 0
-                                  : getChildren().size();
-   }
-
-   /**
-    * @param child
-    * @return
-    */
-   final IParserNode addChild( final IParserNode child )
-   {
-      if ( child == null )
-      {
-         return child; // skip optional children
-      }
-
-      if ( children == null )
-      {
-         children = new ArrayList< IParserNode >();
-      }
-      children.add( child );
-      return child;
-   }
-
-   /**
-    * @param childId
-    * @param childLine
-    * @param childColumn
-    * @param nephew
-    * @return
-    */
-   final IParserNode addChild( final NodeKind childId,
-                               final int childLine,
-                               final int childColumn,
-                               final IParserNode nephew )
-   {
-      return addChild( Node.create( childId,
-                                    childLine,
-                                    childColumn,
-                                    nephew ) );
-   }
-
-   /**
-    * @param childId
-    * @param childLine
-    * @param childColumn
-    * @param value
-    * @return
-    */
-   final IParserNode addChild( final NodeKind childId,
-                               final int childLine,
-                               final int childColumn,
-                               final String value )
-   {
-      return addChild( Node.create( childId,
-                                    childLine,
-                                    childColumn,
-                                    value ) );
-   }
-
-   /**
-    * @param idToBeSet
-    */
-   final void setId( final NodeKind idToBeSet )
-   {
-      nodeId = idToBeSet;
-   }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/e43b7a87/FlexPMD/as3-parser/src/main/java/de/bokelberg/flex/parser/Node.java
----------------------------------------------------------------------
diff --git 
a/FlexPMD/as3-parser/src/main/java/de/bokelberg/flex/parser/Node.java 
b/FlexPMD/as3-parser/src/main/java/de/bokelberg/flex/parser/Node.java
deleted file mode 100644
index a044881..0000000
--- a/FlexPMD/as3-parser/src/main/java/de/bokelberg/flex/parser/Node.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 de.bokelberg.flex.parser;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.adobe.ac.pmd.parser.IParserNode;
-import com.adobe.ac.pmd.parser.NodeKind;
-
-/**
- * A single node of the ast
- * 
- * @author rbokel
- */
-final class Node extends NestedNode implements IParserNode
-{
-   protected static Node create( final NodeKind idToBeSet,
-                                 final int lineToBeSet,
-                                 final int columnToBeSet )
-   {
-      return new Node( idToBeSet, lineToBeSet, columnToBeSet );
-   }
-
-   protected static Node create( final NodeKind idToBeSet,
-                                 final int lineToBeSet,
-                                 final int columnToBeSet,
-                                 final IParserNode childToBeSet )
-   {
-      return new Node( idToBeSet, lineToBeSet, columnToBeSet, childToBeSet );
-   }
-
-   protected static Node create( final NodeKind idToBeSet,
-                                 final int lineToBeSet,
-                                 final int columnToBeSet,
-                                 final String valueToBeSet )
-   {
-      return new Node( idToBeSet, lineToBeSet, columnToBeSet, valueToBeSet );
-   }
-
-   private static boolean isNameInArray( final String[] strings,
-                                         final String string )
-   {
-      for ( final String currentName : strings )
-      {
-         if ( currentName.equals( string ) )
-         {
-            return true;
-         }
-      }
-      return false;
-   }
-
-   private final int    column;
-   private final int    line;
-   private final String stringValue;
-
-   private Node( final NodeKind idToBeSet,
-                 final int lineToBeSet,
-                 final int columnToBeSet )
-   {
-      super( idToBeSet );
-
-      line = lineToBeSet;
-      column = columnToBeSet;
-      stringValue = null;
-   }
-
-   private Node( final NodeKind idToBeSet,
-                 final int lineToBeSet,
-                 final int columnToBeSet,
-                 final IParserNode childToBeSet )
-   {
-      super( idToBeSet, childToBeSet );
-
-      line = lineToBeSet;
-      column = columnToBeSet;
-      stringValue = null;
-   }
-
-   private Node( final NodeKind idToBeSet,
-                 final int lineToBeSet,
-                 final int columnToBeSet,
-                 final String valueToBeSet )
-   {
-      super( idToBeSet );
-
-      line = lineToBeSet;
-      column = columnToBeSet;
-      stringValue = valueToBeSet;
-   }
-
-   public List< IParserNode > findPrimaryStatementsFromNameInChildren( final 
String[] names )
-   {
-      final List< IParserNode > foundNode = new ArrayList< IParserNode >();
-
-      if ( getStringValue() != null
-            && isNameInArray( names,
-                              getStringValue() ) )
-      {
-         foundNode.add( this );
-      }
-      else if ( numChildren() != 0 )
-      {
-         for ( final IParserNode child : getChildren() )
-         {
-            foundNode.addAll( child.findPrimaryStatementsFromNameInChildren( 
names ) );
-         }
-      }
-      return foundNode;
-   }
-
-   public int getColumn()
-   {
-      return column;
-   }
-
-   public int getLine()
-   {
-      return line;
-   }
-
-   public String getStringValue()
-   {
-      return stringValue;
-   }
-
-   @Override
-   public String toString()
-   {
-      final StringBuffer buffer = new StringBuffer();
-
-      if ( getStringValue() == null )
-      {
-         buffer.append( getId() );
-      }
-      else
-      {
-         buffer.append( getStringValue() );
-      }
-
-      buffer.append( ' ' );
-
-      if ( getChildren() != null )
-      {
-         for ( final IParserNode child : getChildren() )
-         {
-            buffer.append( child.toString() );
-            buffer.append( ' ' );
-         }
-      }
-      return buffer.toString();
-   }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/e43b7a87/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/AbstractAs3ParserTest.java
----------------------------------------------------------------------
diff --git 
a/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/AbstractAs3ParserTest.java
 
b/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/AbstractAs3ParserTest.java
deleted file mode 100644
index ff9b895..0000000
--- 
a/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/AbstractAs3ParserTest.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 de.bokelberg.flex.parser;
-
-import junit.framework.TestCase;
-
-import org.junit.Before;
-
-import com.adobe.ac.pmd.parser.IParserNode;
-
-public abstract class AbstractAs3ParserTest extends TestCase
-{
-   protected final class ASTToXMLConverter
-   {
-      public String convert( final IParserNode ast )
-      {
-         final StringBuffer result = new StringBuffer();
-         visitNodes( ast,
-                     result,
-                     0 );
-         return result.toString();
-      }
-   }
-
-   private static String escapeEntities( final String stringToEscape )
-   {
-      final StringBuffer buffer = new StringBuffer();
-
-      for ( int i = 0; i < stringToEscape.length(); i++ )
-      {
-         final char currentCharacter = stringToEscape.charAt( i );
-
-         if ( currentCharacter == '<' )
-         {
-            buffer.append( "&lt;" );
-         }
-         else if ( currentCharacter == '>' )
-         {
-            buffer.append( "&gt;" );
-         }
-         else
-         {
-            buffer.append( currentCharacter );
-         }
-      }
-      return buffer.toString();
-   }
-
-   private static void visitNodes( final IParserNode ast,
-                                   final StringBuffer result,
-                                   final int level )
-   {
-      result.append( "<"
-            + ast.getId() + " line=\"" + ast.getLine() + "\">" );
-
-      final int numChildren = ast.numChildren();
-      if ( numChildren > 0 )
-      {
-         for ( int i = 0; i < numChildren; i++ )
-         {
-            visitNodes( ast.getChild( i ),
-                        result,
-                        level + 1 );
-         }
-      }
-      else if ( ast.getStringValue() != null )
-      {
-         result.append( escapeEntities( ast.getStringValue() ) );
-      }
-      result.append( "</"
-            + ast.getId() + ">" );
-   }
-
-   protected AS3Parser  asp;
-   protected AS3Scanner scn;
-
-   @Override
-   @Before
-   public void setUp()
-   {
-      asp = new AS3Parser();
-      scn = asp.getScn();
-   }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/e43b7a87/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/AbstractStatementTest.java
----------------------------------------------------------------------
diff --git 
a/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/AbstractStatementTest.java
 
b/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/AbstractStatementTest.java
deleted file mode 100644
index b437833..0000000
--- 
a/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/AbstractStatementTest.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 de.bokelberg.flex.parser;
-
-import com.adobe.ac.pmd.parser.exceptions.TokenException;
-
-public abstract class AbstractStatementTest extends AbstractAs3ParserTest
-{
-   protected void assertStatement( final String message,
-                                   final String input,
-                                   final String expected ) throws 
TokenException
-   {
-      scn.setLines( new String[]
-      { input,
-                  "__END__" } );
-      asp.nextToken();
-      final String result = new ASTToXMLConverter().convert( 
asp.parseStatement() );
-      assertEquals( message,
-                    expected,
-                    result );
-   }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/e43b7a87/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/NestedNodeTest.java
----------------------------------------------------------------------
diff --git 
a/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/NestedNodeTest.java 
b/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/NestedNodeTest.java
deleted file mode 100644
index 7d547ef..0000000
--- 
a/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/NestedNodeTest.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 de.bokelberg.flex.parser;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import com.adobe.ac.pmd.parser.NodeKind;
-import com.adobe.ac.pmd.parser.exceptions.TokenException;
-
-public class NestedNodeTest extends AbstractAs3ParserTest
-{
-   private NestedNode function;
-
-   @Override
-   @Before
-   public void setUp()
-   {
-      super.setUp();
-
-      final String code = "public function foo() : void     {"
-            + "while(i>0){" + "while(true){" + "switch(a){" + "case 
1:break;default:return;" + "}" + "}"
-            + "}" + "}";
-      final Node classNode = parseClass( code );
-
-      function = ( Node ) classNode.getChild( 0 );
-   }
-
-   @Test
-   public void testComputeCyclomaticComplexity()
-   {
-      assertEquals( 5,
-                    function.computeCyclomaticComplexity() );
-   }
-
-   @Test
-   public void testCountNodeFromType()
-   {
-      assertEquals( 2,
-                    function.countNodeFromType( NodeKind.WHILE ) );
-   }
-
-   @Test
-   public void testGetLastChild()
-   {
-      assertEquals( NodeKind.RETURN,
-                    function.getLastChild().getId() );
-
-      assertNull( function.getChild( Integer.MAX_VALUE ) );
-   }
-
-   @Test
-   public void testIs()
-   {
-      assertFalse( function.is( null ) );
-   }
-
-   private Node parseClass( final String input )
-   {
-      scn.setLines( new String[]
-      { "{",
-                  input,
-                  "}",
-                  "__END__" } );
-      try
-      {
-         asp.nextToken();
-         asp.nextToken(); // skip {
-         return asp.parseClassContent();
-      }
-      catch ( final TokenException e )
-      {
-         e.printStackTrace();
-      }
-      return null;
-   }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/e43b7a87/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/NodeTest.java
----------------------------------------------------------------------
diff --git 
a/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/NodeTest.java 
b/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/NodeTest.java
deleted file mode 100644
index cf7dae1..0000000
--- a/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/NodeTest.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 de.bokelberg.flex.parser;
-
-import org.junit.Test;
-
-import com.adobe.ac.pmd.parser.exceptions.TokenException;
-
-public class NodeTest extends AbstractAs3ParserTest
-{
-   @Test
-   public void testFindPrimaryStatementsFromNameInChildren() throws 
TokenException
-   {
-      final Node ast = parseFunction( "function set a( value : int ) : void { 
trace(\"lala\")}" );
-
-      assertEquals( 2,
-                    ast.findPrimaryStatementsFromNameInChildren( new String[]
-                    { "trace",
-                                "\"lala\"" } ).size() );
-   }
-
-   @Test
-   public void testToString() throws TokenException
-   {
-      final Node ast = parseFunction( "function set a( value : int ) : void { 
trace(\"lala\")}" );
-
-      assertEquals( "content set mod-list  a  parameter-list parameter 
name-type-init "
-                          + "value  int     void  block call trace  arguments 
\"lala\"      ",
-                    ast.toString() );
-   }
-
-   private Node parseFunction( final String input ) throws TokenException
-   {
-      scn.setLines( new String[]
-      { "{",
-                  input,
-                  "}",
-                  "__END__" } );
-      asp.nextToken(); // first call
-      asp.nextToken(); // skip {
-      return asp.parseClassContent();
-   }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/e43b7a87/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/TestAS3Parser.java
----------------------------------------------------------------------
diff --git 
a/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/TestAS3Parser.java 
b/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/TestAS3Parser.java
deleted file mode 100644
index 44738f1..0000000
--- 
a/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/TestAS3Parser.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 de.bokelberg.flex.parser;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URISyntaxException;
-
-import org.junit.Test;
-
-import com.adobe.ac.pmd.files.impl.FileUtils;
-import com.adobe.ac.pmd.parser.IParserNode;
-import com.adobe.ac.pmd.parser.exceptions.TokenException;
-
-public class TestAS3Parser extends AbstractAs3ParserTest
-{
-   @Test
-   public void testBuildAst() throws IOException,
-                             URISyntaxException,
-                             TokenException
-   {
-      asp.buildAst( getClass().getResource( 
"/examples/unformatted/IContext.as" ).toURI().getPath() );
-      asp.buildAst( getClass().getResource( "/examples/FlexPMD115.as" 
).toURI().getPath() );
-      asp.buildAst( getClass().getResource( "/examples/JPEGEncoder.as" 
).toURI().getPath() );
-      asp.buildAst( getClass().getResource( "/examples/JPEGEncoder2.as" 
).toURI().getPath() );
-      asp.buildAst( getClass().getResource( "/examples/FisheyeBase.as" 
).toURI().getPath() );
-      asp.buildAst( getClass().getResource( "/examples/FlexPMD98.as" 
).toURI().getPath() );
-      asp.buildAst( getClass().getResource( "/examples/FlexPMD195.as" 
).toURI().getPath() );
-      final String titlePath = getClass().getResource( 
"/examples/unformatted/Title.as" ).toURI().getPath();
-
-      asp.buildAst( titlePath );
-      asp.buildAst( titlePath,
-                    FileUtils.readLines( new File( titlePath ) ) );
-   }
-
-   @Test
-   public void testBuildAst_AS2() throws IOException,
-                                 URISyntaxException,
-                                 TokenException
-   {
-      asp.buildAst( getClass().getResource( 
"/examples/toAS2/src/fw/data/request/ResultListener.as" )
-                              .toURI()
-                              .getPath() );
-
-      asp.buildAst( getClass().getResource( 
"/examples/toAS2/src/epg/StateExit_AS2.as" ).toURI().getPath() );
-   }
-
-   @Test
-   public void testBuildAst2() throws IOException,
-                              TokenException,
-                              URISyntaxException
-   {
-      final IParserNode flexPmd62 = asp.buildAst( getClass().getResource( 
"/examples/FlexPMD62.as" )
-                                                            .toURI()
-                                                            .getPath() );
-
-      assertEquals( "com.test.testy.ui.components",
-                    flexPmd62.getChild( 0 ).getChild( 0 ).getStringValue() );
-
-   }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/e43b7a87/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/TestAS3Scanner.java
----------------------------------------------------------------------
diff --git 
a/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/TestAS3Scanner.java 
b/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/TestAS3Scanner.java
deleted file mode 100644
index 240b354..0000000
--- 
a/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/TestAS3Scanner.java
+++ /dev/null
@@ -1,362 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 de.bokelberg.flex.parser;
-
-import org.junit.Test;
-
-import de.bokelberg.flex.parser.AS3Scanner.Token;
-
-public class TestAS3Scanner extends AbstractAs3ParserTest
-{
-   @Test
-   public void testAssignments()
-   {
-      final String[] lines = new String[]
-      { "=",
-                  "+=",
-                  "-=",
-                  "%=",
-                  "^=",
-                  "&=",
-                  "|=",
-                  "/=" };
-      scn.setLines( lines );
-
-      for ( int i = 0; i < lines.length; i++ )
-      {
-         assertText( Integer.toString( i ),
-                     lines[ i ] );
-         assertText( "\n" );
-      }
-   }
-
-   @Test
-   public void testBooleanOperators()
-   {
-      final String[] lines = new String[]
-      { "&&",
-                  "&=",
-                  "||",
-                  "|=" };
-      scn.setLines( lines );
-
-      for ( int i = 0; i < lines.length; i++ )
-      {
-         assertText( Integer.toString( i ),
-                     lines[ i ] );
-         assertText( "\n" );
-      }
-   }
-
-   @Test
-   public void testComparisonOperators()
-   {
-      final String[] lines = new String[]
-      { ">",
-                  ">>>=",
-                  ">>>",
-                  ">>=",
-                  ">>",
-                  ">=",
-                  "===",
-                  "==",
-                  "!==",
-                  "!=" };
-      scn.setLines( lines );
-
-      for ( int i = 0; i < lines.length; i++ )
-      {
-         assertText( Integer.toString( i ),
-                     lines[ i ] );
-         assertText( "\n" );
-      }
-   }
-
-   @Test
-   public void testIdentifiers()
-   {
-      final String[] lines = new String[]
-      { "a",
-                  "a.b.*",
-                  "a.b::c",
-                  "a.E" };
-      scn.setLines( lines );
-
-      assertText( "1",
-                  lines[ 0 ] );
-      assertText( "\n" );
-
-      assertText( "2",
-                  "a" );
-      assertText( "2",
-                  "." );
-      assertText( "2",
-                  "b" );
-      assertText( "2",
-                  "." );
-      assertText( "2",
-                  "*" );
-      assertText( "\n" );
-
-      assertText( "3",
-                  "a" );
-      assertText( "3",
-                  "." );
-      assertText( "3",
-                  "b" );
-      assertText( "3",
-                  "::" );
-      assertText( "3",
-                  "c" );
-      assertText( "\n" );
-
-      assertText( "4",
-                  "a" );
-      assertText( "4",
-                  "." );
-      assertText( "4",
-                  "E" );
-   }
-
-   @Test
-   public void testIsDecimalChar()
-   {
-      final String decimalString = "0123456789";
-      for ( int i = 0; i < decimalString.length(); i++ )
-      {
-         assertTrue( "",
-                     AS3Scanner.isDecimalChar( decimalString.charAt( i ) ) );
-      }
-      assertFalse( "",
-                   AS3Scanner.isDecimalChar( ( char ) 0 ) );
-
-   }
-
-   @Test
-   public void testIsHex()
-   {
-      assertTrue( "",
-                  scn.isHexChar( '0' ) );
-      assertTrue( "",
-                  scn.isHexChar( '9' ) );
-      assertTrue( "",
-                  scn.isHexChar( 'A' ) );
-      assertTrue( "",
-                  scn.isHexChar( 'a' ) );
-      assertTrue( "",
-                  scn.isHexChar( 'F' ) );
-      assertTrue( "",
-                  scn.isHexChar( 'f' ) );
-      assertFalse( "",
-                   scn.isHexChar( ';' ) );
-      assertFalse( "",
-                   scn.isHexChar( ']' ) );
-      assertFalse( "",
-                   scn.isHexChar( ' ' ) );
-   }
-
-   @Test
-   public void testMultiLineComment()
-   {
-      final String[] lines = new String[]
-      { "/* this is a multi line comment, not really */",
-                  "/** now for real",
-                  "/* now for real",
-                  "*/" };
-      scn.setLines( lines );
-
-      assertText( lines[ 0 ] );
-      assertText( "\n" );
-      assertText( "/** now for real\n/* now for real\n*/" );
-   }
-
-   @Test
-   public void testMultilineXML()
-   {
-      final String[] lines = new String[]
-      { "<?xml version=\"1.0\"?>",
-                  "<a>",
-                  "<b>test</b>",
-                  "</a>" };
-      scn.setLines( lines );
-      assertText( join( lines,
-                        "\n" ) );
-   }
-
-   @Test
-   public void testMultipleWords()
-   {
-      final String[] lines = new String[]
-      { "word1 word2 word3",
-                  "word4",
-                  "word5 word6" };
-      scn.setLines( lines );
-
-      assertText( "word1" );
-      assertText( "word2" );
-      assertText( "word3" );
-      assertText( "\n" );
-      assertText( "word4" );
-      assertText( "\n" );
-      assertText( "word5" );
-      assertText( "word6" );
-   }
-
-   @Test
-   public void testNumbers()
-   {
-      final String[] lines = new String[]
-      { "0",
-                  "1.2",
-                  "1.2E5",
-                  "0xffgg" };
-      scn.setLines( lines );
-
-      assertText( lines[ 0 ] );
-      assertText( "\n" );
-      assertText( lines[ 1 ] );
-      assertText( "\n" );
-      assertText( lines[ 2 ] );
-      assertText( "\n" );
-      assertText( lines[ 3 ] );
-   }
-
-   @Test
-   public void testPlusSymbols()
-   {
-      final String[] lines = new String[]
-      { "++",
-                  "+=",
-                  "+",
-                  "--",
-                  "-=",
-                  "-" };
-      scn.setLines( lines );
-
-      for ( int i = 0; i < lines.length; i++ )
-      {
-         assertText( Integer.toString( i ),
-                     lines[ i ] );
-         assertText( "\n" );
-      }
-   }
-
-   @Test
-   public void testSingleCharacterSymbols()
-   {
-      final String[] lines = "{}()[]:;,?~".split( "" );
-      scn.setLines( lines );
-
-      // the first entry is empty, so we skip it
-      for ( int i = 1; i < lines.length; i++ )
-      {
-         assertText( "\n" );
-         assertText( Integer.toString( i ),
-                     lines[ i ] );
-      }
-   }
-
-   @Test
-   public void testSingleLineComment()
-   {
-      final String[] lines = new String[]
-      { "//this is a single line comment",
-                  "word //another single line comment" };
-      scn.setLines( lines );
-
-      assertText( lines[ 0 ] );
-      assertText( "\n" );
-      assertText( "word" );
-      assertText( "//another single line comment" );
-   }
-
-   @Test
-   public void testSingleWord()
-   {
-      final String[] lines = new String[]
-      { "word" };
-      scn.setLines( lines );
-
-      assertText( lines[ 0 ] );
-   }
-
-   @Test
-   public void testStrings()
-   {
-      final String[] lines = new String[]
-      { "\"string\"",
-                  "\'string\'",
-                  "\"string\\\"\"" };
-      scn.setLines( lines );
-
-      assertText( "1",
-                  lines[ 0 ] );
-      assertText( "\n" );
-      assertText( "2",
-                  lines[ 1 ] );
-      assertText( "\n" );
-      assertText( "3",
-                  lines[ 2 ] );
-   }
-
-   @Test
-   public void testXML()
-   {
-      final String[] lines = new String[]
-      { "<root/>",
-                  "<root>test</root>",
-                  "<?xml version=\"1.0\"?><root>test</root>" };
-      scn.setLines( lines );
-      for ( int i = 0; i < lines.length; i++ )
-      {
-         assertText( Integer.toString( i ),
-                     lines[ i ] );
-         assertText( "\n" );
-      }
-   }
-
-   private void assertText( final String text )
-   {
-      assertText( "",
-                  text );
-   }
-
-   private void assertText( final String message,
-                            final String text )
-   {
-      Token tokent = null;
-      tokent = scn.nextToken();
-      assertEquals( message,
-                    text,
-                    tokent.getText() );
-   }
-
-   private String join( final String[] lines,
-                        final String delimiter )
-   {
-      final StringBuffer result = new StringBuffer();
-      for ( int i = 0; i < lines.length; i++ )
-      {
-         if ( i > 0 )
-         {
-            result.append( delimiter );
-         }
-         result.append( lines[ i ] );
-      }
-      return result.toString();
-   }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/e43b7a87/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/TestAS3ScannerWithFiles.java
----------------------------------------------------------------------
diff --git 
a/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/TestAS3ScannerWithFiles.java
 
b/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/TestAS3ScannerWithFiles.java
deleted file mode 100644
index d101579..0000000
--- 
a/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/TestAS3ScannerWithFiles.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 de.bokelberg.flex.parser;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URISyntaxException;
-
-import org.junit.Test;
-
-import com.adobe.ac.pmd.files.impl.FileUtils;
-
-import de.bokelberg.flex.parser.AS3Scanner.Token;
-
-public class TestAS3ScannerWithFiles extends AbstractAs3ParserTest
-{
-   @Test
-   public void testSimple() throws IOException,
-                           URISyntaxException
-   {
-      final String[] expected = new String[]
-      { "package",
-                  "simple",
-                  "{",
-                  "public",
-                  "class",
-                  "Simple",
-                  "{",
-                  "public",
-                  "function",
-                  "Simple",
-                  "(",
-                  ")",
-                  "{",
-                  "trace",
-                  "(",
-                  "\"Simple\"",
-                  ")",
-                  ";",
-                  "}",
-                  "}" };
-      assertFile( expected,
-                  "Simple.as" );
-   }
-
-   private void assertFile( final String[] expected,
-                            final String fileName ) throws IOException,
-                                                   URISyntaxException
-   {
-      final String[] lines = FileUtils.readLines( new File( 
getClass().getResource( "/examples/unformatted/" )
-                                                                       .toURI()
-                                                                       
.getPath()
-            + fileName ) );
-      assertLines( expected,
-                   lines );
-   }
-
-   private void assertLines( final String[] expected,
-                             final String[] lines )
-   {
-      scn.setLines( lines );
-      for ( int i = 0; i < expected.length; i++ )
-      {
-         assertText( Integer.toString( i ),
-                     expected[ i ] );
-      }
-   }
-
-   private void assertText( final String message,
-                            final String text )
-   {
-      Token token = null;
-      token = scn.nextToken();
-      assertEquals( message,
-                    text,
-                    token.getText() );
-   }
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/e43b7a87/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/TestClass.java
----------------------------------------------------------------------
diff --git 
a/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/TestClass.java 
b/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/TestClass.java
deleted file mode 100644
index 54235ef..0000000
--- a/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/TestClass.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 de.bokelberg.flex.parser;
-
-import org.junit.Test;
-
-import com.adobe.ac.pmd.parser.exceptions.TokenException;
-
-public class TestClass extends AbstractAs3ParserTest
-{
-   @Test
-   public void testExtends() throws TokenException
-   {
-      assertPackageContent( "1",
-                            "public class A extends B { } ",
-                            "<content line=\"2\">"
-                                  + "<class line=\"2\">" + "<name 
line=\"2\">A</name><mod-list line=\"2\">"
-                                  + "<mod 
line=\"2\">public</mod></mod-list><extends line=\"2\""
-                                  + ">B</extends><content 
line=\"2\"></content>" + "</class></content>" );
-
-      assertPackageContent( "1",
-                            "public class A extends com.adobe::B { } ",
-                            "<content line=\"2\"><class line=\"2\"><name 
line=\"2\""
-                                  + ">A</name><mod-list line=\"2\"><mod 
line=\"2\""
-                                  + ">public</mod></mod-list><extends 
line=\"2\""
-                                  + ">com.adobe::B</extends><content 
line=\"2\"></content>"
-                                  + "</class></content>" );
-   }
-
-   @Test
-   public void testFinalClass() throws TokenException
-   {
-      assertPackageContent( "",
-                            "public final class Title{ }",
-                            "<content line=\"2\">"
-                                  + "<class line=\"2\">" + "<name 
line=\"2\">Title</name>"
-                                  + "<mod-list line=\"2\">" + "<mod 
line=\"2\">public</mod>"
-                                  + "<mod line=\"2\">final</mod></mod-list>" + 
"<content line=\"2\""
-                                  + "></content>" + "</class>" + "</content>" 
);
-   }
-
-   @Test
-   public void testFullFeatured() throws TokenException
-   {
-      // assertPackageContent( "",
-      // "public class A { public static const RULE_REMOVED : String = 
\"ruleRemoved\";}",
-      // "" );
-
-      assertPackageContent( "1",
-                            "public class A extends B implements C,D { } ",
-                            "<content line=\"2\"><class line=\"2\">"
-                                  + "<name line=\"2\">A</name><mod-list 
line=\"2\">"
-                                  + "<mod 
line=\"2\">public</mod></mod-list><extends line=\"2\""
-                                  + ">B</extends><implements-list line=\"2\">"
-                                  + "<implements 
line=\"2\">C</implements><implements line=\"2\""
-                                  + ">D</implements></implements-list><content 
line=\"2\">"
-                                  + "</content></class></content>" );
-   }
-
-   @Test
-   public void testImplementsList() throws TokenException
-   {
-      assertPackageContent( "1",
-                            "public class A implements B,C { } ",
-                            "<content line=\"2\"><class line=\"2\">"
-                                  + "<name line=\"2\">A</name><mod-list 
line=\"2\""
-                                  + "><mod line=\"2\">public</mod></mod-list>"
-                                  + "<implements-list line=\"2\"><implements 
line=\"2\""
-                                  + ">B</implements><implements line=\"2\">"
-                                  + "C</implements></implements-list><content 
line=\"2\">"
-                                  + "</content></class></content>" );
-   }
-
-   @Test
-   public void testImplementsSingle() throws TokenException
-   {
-      assertPackageContent( "1",
-                            "public class A implements B { } ",
-                            "<content line=\"2\"><class line=\"2\">"
-                                  + "<name line=\"2\">A</name><mod-list 
line=\"2\""
-                                  + "><mod line=\"2\">public</mod></mod-list>"
-                                  + "<implements-list line=\"2\"><implements 
line=\"2\""
-                                  + ">B</implements></implements-list><content 
line=\"2\""
-                                  + "></content></class></content>" );
-   }
-
-   @Test
-   public void testImportInsideClass() throws TokenException
-   {
-      assertPackageContent( "",
-                            "public final class Title{ import lala.lala; }",
-                            "<content line=\"2\">"
-                                  + "<class line=\"2\"><name 
line=\"2\">Title</name>"
-                                  + "<mod-list line=\"2\"><mod 
line=\"2\">public</mod>"
-                                  + "<mod line=\"2\">final</mod></mod-list>"
-                                  + "<content line=\"2\"><import line=\"2\""
-                                  + 
">lala.lala</import></content></class></content>" );
-
-   }
-
-   @Test
-   public void testInclude() throws TokenException
-   {
-      assertPackageContent( "1",
-                            "public class A extends B { include 
\"ITextFieldInterface.asz\" } ",
-                            "<content line=\"2\"><class line=\"2\">"
-                                  + "<name line=\"2\">A</name><mod-list 
line=\"2\">"
-                                  + "<mod line=\"2\">public</mod></mod-list>"
-                                  + "<extends line=\"2\">B</extends>"
-                                  + "<content 
line=\"2\"></content></class></content>" );
-   }
-
-   private void assertPackageContent( final String message,
-                                      final String input,
-                                      final String expected ) throws 
TokenException
-   {
-      scn.setLines( new String[]
-      { "{",
-                  input,
-                  "}",
-                  "__END__" } );
-      asp.nextToken(); // first call
-      asp.nextToken(); // skip {
-      final String result = new ASTToXMLConverter().convert( 
asp.parsePackageContent() );
-      assertEquals( message,
-                    expected,
-                    result );
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/e43b7a87/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/TestClassContent.java
----------------------------------------------------------------------
diff --git 
a/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/TestClassContent.java
 
b/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/TestClassContent.java
deleted file mode 100644
index 79b767d..0000000
--- 
a/FlexPMD/as3-parser/src/test/java/de/bokelberg/flex/parser/TestClassContent.java
+++ /dev/null
@@ -1,307 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 de.bokelberg.flex.parser;
-
-import org.junit.Test;
-
-import com.adobe.ac.pmd.parser.exceptions.TokenException;
-
-public class TestClassContent extends AbstractAs3ParserTest
-{
-   @Test
-   public void testCommentInMethod() throws TokenException
-   {
-      assertClassContent( "",
-                          "public function log():void{/* comment */}",
-                          "<function line=\"2\"><mod-list line=\"2\"><mod "
-                                + "line=\"2\">public</mod></mod-list><name 
line=\"2\">log</name>"
-                                + "<parameter-list 
line=\"2\"></parameter-list><type line=\"2\">"
-                                + "void</type><block 
line=\"2\"><multi-line-comment line=\"2\">"
-                                + "/* comment 
*/</multi-line-comment></block></function>" );
-
-      assertClassContent( "",
-                          new String[]
-                          { "{",
-                                      "public function log():void{// comment ",
-                                      "}",
-                                      "}",
-                                      "__END__" },
-                          "<function line=\"2\"><mod-list line=\"2\"><mod 
line=\"2\""
-                                + ">public</mod></mod-list><name 
line=\"2\">log</name>"
-                                + "<parameter-list 
line=\"2\"></parameter-list><type line=\"2\""
-                                + ">void</type><block 
line=\"2\"></block></function>" );
-   }
-
-   @Test
-   public void testConstDeclarations() throws TokenException
-   {
-      assertClassContent( "1",
-                          "const a",
-                          "<const-list line=\"2\"><mod-list line=\"2\">"
-                                + "</mod-list><name-type-init line=\"2\"><name 
line=\"2\">a"
-                                + "</name><type 
line=\"3\"></type></name-type-init></const-list>" );
-
-      assertClassContent( "2",
-                          "public const a",
-                          "<const-list line=\"2\"><mod-list line=\"2\">"
-                                + "<mod 
line=\"2\">public</mod></mod-list><name-type-init line=\"2\""
-                                + "><name line=\"2\">a</name><type line=\"3\">"
-                                + "</type></name-type-init></const-list>" );
-
-      assertClassContent( "3",
-                          "public static const a : int = 0",
-                          "<const-list line=\"2\"><mod-list line=\"2\">"
-                                + "<mod line=\"2\">public</mod><mod 
line=\"2\">"
-                                + "static</mod></mod-list><name-type-init 
line=\"2\"><name "
-                                + "line=\"2\">a</name><type 
line=\"2\">int</type>"
-                                + "<init line=\"2\"><primary 
line=\"2\">0</primary>"
-                                + "</init></name-type-init></const-list>" );
-
-      assertClassContent( "4",
-                          "[Bindable] const a",
-                          "<const-list line=\"2\"><meta-list line=\"2\">"
-                                + "<meta 
line=\"2\">Bindable</meta></meta-list><mod-list line=\"2\""
-                                + "></mod-list><name-type-init line=\"2\">"
-                                + "<name line=\"2\">a</name><type line=\"3\">"
-                                + "</type></name-type-init></const-list>" );
-   }
-
-   @Test
-   public void testFlexPMD211() throws TokenException
-   {
-      assertClassContent( "",
-                          "private function foo(sf:int):void{"
-                                + "var a:Vector.<String> = new 
Vector.<String>()}",
-                          "<function line=\"2\"><mod-list line=\"2\"><mod 
line=\"2\">private</mod>"
-                                + "</mod-list><name 
line=\"2\">foo</name><parameter-list line=\"2\">"
-                                + "<parameter line=\"2\"><name-type-init 
line=\"2\"><name line=\"2\">sf</name>"
-                                + "<type 
line=\"2\">int</type></name-type-init></parameter></parameter-list>"
-                                + "<type line=\"2\">void</type><block 
line=\"2\"><var-list line=\"2\">"
-                                + "<name-type-init line=\"2\"><name 
line=\"2\">a</name><vector line=\"2\">"
-                                + "<type 
line=\"2\">String</type></vector><init line=\"2\"><new line=\"2\">"
-                                + "<primary line=\"2\">Vector</primary><vector 
line=\"2\"><vector line=\"2\">"
-                                + "<type 
line=\"2\">String</type></vector></vector><arguments line=\"2\">"
-                                + 
"</arguments></new></init></name-type-init></var-list></block></function>" );
-      assertClassContent( "",
-                          "private function foo(sf:int):void{"
-                                + "var a:Vector.<String> = new 
Vector.<String>();}",
-                          "<function line=\"2\"><mod-list line=\"2\"><mod 
line=\"2\">private</mod></mod-list>"
-                                + "<name line=\"2\">foo</name><parameter-list 
line=\"2\"><parameter line=\"2\">"
-                                + "<name-type-init line=\"2\"><name 
line=\"2\">sf</name><type line=\"2\">int</type>"
-                                + 
"</name-type-init></parameter></parameter-list><type line=\"2\">void</type>"
-                                + "<block line=\"2\"><var-list 
line=\"2\"><name-type-init line=\"2\">"
-                                + "<name line=\"2\">a</name><vector 
line=\"2\"><type line=\"2\">String</type>"
-                                + "</vector><init line=\"2\"><new 
line=\"2\"><primary line=\"2\">Vector</primary>"
-                                + "<vector line=\"2\"><vector line=\"2\"><type 
line=\"2\">String</type></vector>"
-                                + "</vector><arguments 
line=\"2\"></arguments></new></init></name-type-init>"
-                                + "</var-list></block></function>" );
-   }
-
-   @Test
-   public void testImports() throws TokenException
-   {
-      assertClassContent( "1",
-                          "import a.b.c;",
-                          "<import line=\"2\">a.b.c</import>" );
-      assertClassContent( "2",
-                          "import a.b.c import x.y.z",
-                          "<import line=\"2\">a.b.c</import>"
-                                + "<import line=\"2\">x.y.z</import>" );
-   }
-
-   @Test
-   public void testMethods() throws TokenException
-   {
-      assertClassContent( "1",
-                          "function a(){}",
-                          "<function line=\"2\"><mod-list line=\"2\">"
-                                + "</mod-list><name 
line=\"2\">a</name><parameter-list line=\"2\""
-                                + "></parameter-list><type 
line=\"2\"></type><block "
-                                + "line=\"2\"></block></function>" );
-
-      assertClassContent( "2",
-                          "function set a( value : int ) : void {}",
-                          "<set line=\"2\"><mod-list line=\"2\">"
-                                + "</mod-list><name line=\"2\">a</name>"
-                                + "<parameter-list line=\"2\"><parameter 
line=\"2\">"
-                                + "<name-type-init line=\"2\"><name 
line=\"2\">value"
-                                + "</name><type 
line=\"2\">int</type></name-type-init></parameter>"
-                                + "</parameter-list><type 
line=\"2\">void</type><block line=\"2\""
-                                + "></block></set>" );
-
-      assertClassContent( "3",
-                          "function get a() : int {}",
-                          "<get line=\"2\"><mod-list line=\"2\">"
-                                + "</mod-list><name 
line=\"2\">a</name><parameter-list line=\"2\""
-                                + "></parameter-list><type line=\"2\">int"
-                                + "</type><block line=\"2\"></block></get>" );
-
-      assertClassContent( "function with default parameter",
-                          "public function newLine ( height:*='' ):void{}",
-                          "<function line=\"2\"><mod-list line=\"2\"><mod 
line=\"2\""
-                                + ">public</mod></mod-list><name 
line=\"2\">newLine"
-                                + "</name><parameter-list 
line=\"2\"><parameter line=\"2\""
-                                + "><name-type-init line=\"2\"><name 
line=\"2\""
-                                + ">height</name><type line=\"2\">*</type>"
-                                + "<init line=\"2\"><primary line=\"2\">''"
-                                + 
"</primary></init></name-type-init></parameter></parameter-list>"
-                                + "<type line=\"2\">void</type><block 
line=\"2\">" + "</block></function>" );
-   }
-
-   @Test
-   public void testMethodsWithAsDoc() throws TokenException
-   {
-      scn.setLines( new String[]
-      { "{",
-                  "/** AsDoc */public function a(){}",
-                  "}",
-                  "__END__" } );
-      asp.nextToken(); // first call
-      asp.nextToken(); // skip {
-
-      assertEquals( "<content line=\"2\"><function line=\"2\">"
-                          + "<as-doc line=\"2\">/** AsDoc */</as-doc><mod-list 
"
-                          + "line=\"2\"><mod line=\"2\">public</mod>"
-                          + "</mod-list><name 
line=\"2\">a</name><parameter-list "
-                          + "line=\"2\"></parameter-list><type line=\"2\">"
-                          + "</type><block 
line=\"2\"></block></function></content>",
-                    new ASTToXMLConverter().convert( asp.parseClassContent() ) 
);
-   }
-
-   @Test
-   public void testMethodsWithMultiLineComments() throws TokenException
-   {
-      scn.setLines( new String[]
-      { "{",
-                  "/* Commented */public function a(){}",
-                  "}",
-                  "__END__" } );
-      asp.nextToken(); // first call
-      asp.nextToken(); // skip {
-
-      assertEquals( "<content line=\"2\"><multi-line-comment line=\"2\">"
-                          + "/* Commented */</multi-line-comment><function 
line=\"2\">"
-                          + "<mod-list line=\"2\"><mod line=\"2\">public"
-                          + "</mod></mod-list><name 
line=\"2\">a</name><parameter-list "
-                          + "line=\"2\"></parameter-list><type line=\"2\">"
-                          + "</type><block 
line=\"2\"></block></function></content>",
-                    new ASTToXMLConverter().convert( asp.parseClassContent() ) 
);
-   }
-
-   @Test
-   public void testMethodWithMetadataComment() throws TokenException
-   {
-      scn.setLines( new String[]
-      { "{",
-                  "/* Comment */ [Bindable] public function a () : void { }",
-                  "}",
-                  "__END__" } );
-      asp.nextToken(); // first call
-      asp.nextToken(); // skip {
-
-      assertEquals( "1",
-                    "<content line=\"2\"><multi-line-comment line=\"2\">"
-                          + "/* Comment */</multi-line-comment><function 
line=\"2\">"
-                          + "<meta-list line=\"2\"><meta line=\"2\">Bindable"
-                          + "</meta></meta-list><mod-list line=\"2\"><mod 
line=\"2\""
-                          + ">public</mod></mod-list><name line=\"2\">a</name>"
-                          + "<parameter-list line=\"2\"></parameter-list><type 
line=\"2\""
-                          + ">void</type><block 
line=\"2\"></block></function>" + "</content>",
-                    new ASTToXMLConverter().convert( asp.parseClassContent() ) 
);
-   }
-
-   @Test
-   public void testRestParameter() throws TokenException
-   {
-      assertClassContent( "",
-                          "public function log(message:String, ... 
rest):void{}",
-                          "<function line=\"2\"><mod-list line=\"2\">"
-                                + "<mod 
line=\"2\">public</mod></mod-list><name line=\"2\">"
-                                + "log</name><parameter-list line=\"2\">"
-                                + "<parameter line=\"2\"><name-type-init 
line=\"2\">"
-                                + "<name line=\"2\">message</name><type 
line=\"2\">String"
-                                + 
"</type></name-type-init></parameter><parameter line=\"2\">"
-                                + "<rest 
line=\"2\">rest</rest></parameter></parameter-list>"
-                                + "<type line=\"2\">void</type><block 
line=\"2\">" + "</block></function>" );
-   }
-
-   @Test
-   public void testVarDeclarations() throws TokenException
-   {
-      assertClassContent( "1",
-                          "var a",
-                          "<var-list line=\"2\"><mod-list line=\"2\">"
-                                + "</mod-list><name-type-init line=\"2\"><name 
line=\"2\">a"
-                                + "</name><type 
line=\"3\"></type></name-type-init></var-list>" );
-
-      assertClassContent( "2",
-                          "public var a;",
-                          "<var-list line=\"2\"><mod-list line=\"2\">"
-                                + "<mod 
line=\"2\">public</mod></mod-list><name-type-init line=\"2\""
-                                + "><name line=\"2\">a</name><type line=\"2\""
-                                + "></type></name-type-init></var-list>" );
-
-      assertClassContent( "3",
-                          "public static var a : int = 0",
-                          "<var-list line=\"2\"><mod-list line=\"2\">"
-                                + "<mod line=\"2\">public</mod><mod 
line=\"2\">"
-                                + "static</mod></mod-list><name-type-init 
line=\"2\">"
-                                + "<name line=\"2\">a</name><type 
line=\"2\">int</type>"
-                                + "<init line=\"2\"><primary 
line=\"2\">0</primary>"
-                                + "</init></name-type-init></var-list>" );
-
-      assertClassContent( "4",
-                          "[Bindable] var a",
-                          "<var-list line=\"2\"><meta-list line=\"2\">"
-                                + "<meta 
line=\"2\">Bindable</meta></meta-list>"
-                                + "<mod-list line=\"2\"></mod-list>" + 
"<name-type-init line=\"2\">"
-                                + "<name line=\"2\">a</name><type line=\"3\">"
-                                + "</type></name-type-init></var-list>" );
-   }
-
-   private void assertClassContent( final String message,
-                                    final String input,
-                                    final String expected ) throws 
TokenException
-   {
-      scn.setLines( new String[]
-      { "{",
-                  input,
-                  "}",
-                  "__END__" } );
-      asp.nextToken(); // first call
-      asp.nextToken(); // skip {
-      final String result = new ASTToXMLConverter().convert( 
asp.parseClassContent() );
-      assertEquals( message,
-                    "<content line=\"2\">"
-                          + expected + "</content>",
-                    result );
-   }
-
-   private void assertClassContent( final String message,
-                                    final String[] input,
-                                    final String expected ) throws 
TokenException
-   {
-      scn.setLines( input );
-      asp.nextToken(); // first call
-      asp.nextToken(); // skip {
-      final String result = new ASTToXMLConverter().convert( 
asp.parseClassContent() );
-      assertEquals( message,
-                    "<content line=\"2\">"
-                          + expected + "</content>",
-                    result );
-   }
-}

Reply via email to