Doctrine\ORM\Query\Parser::ArithmeticFactor PHP Method

ArithmeticFactor() public method

ArithmeticFactor ::= [("+" | "-")] ArithmeticPrimary
public ArithmeticFactor ( ) : Doctrine\ORM\Query\AST\ArithmeticFactor
return Doctrine\ORM\Query\AST\ArithmeticFactor
    public function ArithmeticFactor()
    {
        $sign = null;

        if (($isPlus = $this->_lexer->isNextToken(Lexer::T_PLUS)) || $this->_lexer->isNextToken(Lexer::T_MINUS)) {
            $this->match(($isPlus) ? Lexer::T_PLUS : Lexer::T_MINUS);
            $sign = $isPlus;
        }
        
        $primary = $this->ArithmeticPrimary();

        // Phase 1 AST optimization: Prevent AST\ArithmeticFactor
        // if only one AST\ArithmeticPrimary is defined
        if ($sign === null) {
            return $primary;
        }

        return new AST\ArithmeticFactor($primary, $sign);
    }

Usage Example

コード例 #1
0
 public function parse(Parser $parser)
 {
     $parser->match(Lexer::T_IDENTIFIER);
     $parser->match(Lexer::T_OPEN_PARENTHESIS);
     $this->expressions[] = $parser->ArithmeticFactor();
     $parser->match(Lexer::T_COMMA);
     $this->expressions[] = $parser->ArithmeticFactor();
     $parser->match(Lexer::T_CLOSE_PARENTHESIS);
 }
All Usage Examples Of Doctrine\ORM\Query\Parser::ArithmeticFactor
Parser