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