in FlexPMD/flex-pmd-java/as3-parser/src/main/java/de/bokelberg/flex/parser/AS3Parser.java [1881:1913]
private IParserNode parseRelationalExpression() throws TokenException
{
final Node result = Node.create( NodeKind.RELATION,
tok.getLine(),
tok.getColumn(),
parseShiftExpression() );
while ( tokIs( Operators.INFERIOR )
|| tokIs( Operators.INFERIOR_AS2 ) || tokIs( Operators.INFERIOR_OR_EQUAL )
|| tokIs( Operators.INFERIOR_OR_EQUAL_AS2 ) || tokIs( Operators.SUPERIOR )
|| tokIs( Operators.SUPERIOR_AS2 ) || tokIs( Operators.SUPERIOR_OR_EQUAL )
|| tokIs( Operators.SUPERIOR_OR_EQUAL_AS2 ) || tokIs( KeyWords.IS ) || tokIs( KeyWords.IN )
&& !isInFor || tokIs( KeyWords.AS ) || tokIs( KeyWords.INSTANCE_OF ) )
{
if ( !tokIs( KeyWords.AS ) )
{
result.addChild( Node.create( NodeKind.OP,
tok.getLine(),
tok.getColumn(),
tok.getText() ) );
}
else
{
result.addChild( Node.create( NodeKind.AS,
tok.getLine(),
tok.getColumn(),
tok.getText() ) );
}
nextToken( true );
result.addChild( parseShiftExpression() );
}
return result.numChildren() > 1 ? result
: result.getChild( 0 );
}