op.putChild( lhn ); //left-hand node
if( ! unit() )
{
Token t = lexer.take();
throw new UnexpectedTokenError( t );
}
op.putChild( consumedNode ); //right-hand node
if( ! binOp( op ) )
{
consumedNode = op;
}
return true;
}
if( lookAhead( 0, T_INFIX_WORD.class ) )
{
T_INFIX_WORD op_token = (T_INFIX_WORD)lexer.take();
FunctionCall op = new FunctionCall( op_token.text );
op.putChild( lhn ); //left-hand node
if( ! unit() )
{
Token t = lexer.take();
throw new UnexpectedTokenError( t );
}
op.putChild( consumedNode ); //right-hand node
if( ! binOp( op ) )