in FlexPMD/flex-pmd-java/as3-parser/src/main/java/de/bokelberg/flex/parser/AS3Scanner.java [798:858]
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 );
}
}
}