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;
}