private Node parseClass()

in FlexPMD/flex-pmd-java/as3-parser/src/main/java/de/bokelberg/flex/parser/AS3Parser.java [900:950]


   private Node parseClass( final List< Node > meta,
                            final List< Token > modifier ) throws TokenException
   {
      consume( KeyWords.CLASS );

      final Node result = Node.create( NodeKind.CLASS,
                                       tok.getLine(),
                                       tok.getColumn() );

      if ( currentAsDoc != null )
      {
         result.addChild( currentAsDoc );
         currentAsDoc = null;
      }
      if ( currentMultiLineComment != null )
      {
         result.addChild( currentMultiLineComment );
         currentMultiLineComment = null;
      }

      result.addChild( NodeKind.NAME,
                       tok.getLine(),
                       tok.getColumn(),
                       parseQualifiedName( true ) );

      result.addChild( convertMeta( meta ) );
      result.addChild( convertModifiers( modifier ) );

      // nextToken( true ); // name

      do
      {
         if ( tokIs( KeyWords.EXTENDS ) )
         {
            nextToken( true ); // extends
            result.addChild( NodeKind.EXTENDS,
                             tok.getLine(),
                             tok.getColumn(),
                             parseQualifiedName( false ) );
         }
         else if ( tokIs( KeyWords.IMPLEMENTS ) )
         {
            result.addChild( parseImplementsList() );
         }
      }
      while ( !tokIs( Operators.LEFT_CURLY_BRACKET ) );
      consume( Operators.LEFT_CURLY_BRACKET );
      result.addChild( parseClassContent() );
      consume( Operators.RIGHT_CURLY_BRACKET );
      return result;
   }