|  | @@ 2195-2213 (lines=19) @@ | 
                                                            
                                    | 2192 |  |      * | 
                                                            
                                    | 2193 |  |      * @return \Doctrine\ORM\Query\AST\SimpleArithmeticExpression | 
                                                            
                                    | 2194 |  |      */ | 
                                                            
                                    | 2195 |  |     public function SimpleArithmeticExpression() { | 
                                                            
                                    | 2196 |  |         $terms = array(); | 
                                                            
                                    | 2197 |  |         $terms[] = $this->ArithmeticTerm(); | 
                                                            
                                    | 2198 |  |  | 
                                                            
                                    | 2199 |  |         while (($isPlus = $this->lexer->isNextToken(Lexer::T_PLUS)) || $this->lexer->isNextToken(Lexer::T_MINUS)) { | 
                                                            
                                    | 2200 |  |             $this->match(($isPlus) ? Lexer::T_PLUS : Lexer::T_MINUS); | 
                                                            
                                    | 2201 |  |  | 
                                                            
                                    | 2202 |  |             $terms[] = $this->lexer->token['value']; | 
                                                            
                                    | 2203 |  |             $terms[] = $this->ArithmeticTerm(); | 
                                                            
                                    | 2204 |  |         } | 
                                                            
                                    | 2205 |  |  | 
                                                            
                                    | 2206 |  |         // Phase 1 AST optimization: Prevent AST\SimpleArithmeticExpression | 
                                                            
                                    | 2207 |  |         // if only one AST\ArithmeticTerm is defined | 
                                                            
                                    | 2208 |  |         if (count($terms) == 1) { | 
                                                            
                                    | 2209 |  |             return $terms[0]; | 
                                                            
                                    | 2210 |  |         } | 
                                                            
                                    | 2211 |  |  | 
                                                            
                                    | 2212 |  |         return new AST\SimpleArithmeticExpression($terms); | 
                                                            
                                    | 2213 |  |     } | 
                                                            
                                    | 2214 |  |  | 
                                                            
                                    | 2215 |  |     /** | 
                                                            
                                    | 2216 |  |      * ArithmeticTerm ::= ArithmeticFactor {("*" | "/") ArithmeticFactor}* | 
                                                                                
                                |  | @@ 2220-2238 (lines=19) @@ | 
                                                            
                                    | 2217 |  |      * | 
                                                            
                                    | 2218 |  |      * @return \Doctrine\ORM\Query\AST\ArithmeticTerm | 
                                                            
                                    | 2219 |  |      */ | 
                                                            
                                    | 2220 |  |     public function ArithmeticTerm() { | 
                                                            
                                    | 2221 |  |         $factors = array(); | 
                                                            
                                    | 2222 |  |         $factors[] = $this->ArithmeticFactor(); | 
                                                            
                                    | 2223 |  |  | 
                                                            
                                    | 2224 |  |         while (($isMult = $this->lexer->isNextToken(Lexer::T_MULTIPLY)) || $this->lexer->isNextToken(Lexer::T_DIVIDE)) { | 
                                                            
                                    | 2225 |  |             $this->match(($isMult) ? Lexer::T_MULTIPLY : Lexer::T_DIVIDE); | 
                                                            
                                    | 2226 |  |  | 
                                                            
                                    | 2227 |  |             $factors[] = $this->lexer->token['value']; | 
                                                            
                                    | 2228 |  |             $factors[] = $this->ArithmeticFactor(); | 
                                                            
                                    | 2229 |  |         } | 
                                                            
                                    | 2230 |  |  | 
                                                            
                                    | 2231 |  |         // Phase 1 AST optimization: Prevent AST\ArithmeticTerm | 
                                                            
                                    | 2232 |  |         // if only one AST\ArithmeticFactor is defined | 
                                                            
                                    | 2233 |  |         if (count($factors) == 1) { | 
                                                            
                                    | 2234 |  |             return $factors[0]; | 
                                                            
                                    | 2235 |  |         } | 
                                                            
                                    | 2236 |  |  | 
                                                            
                                    | 2237 |  |         return new AST\ArithmeticTerm($factors); | 
                                                            
                                    | 2238 |  |     } | 
                                                            
                                    | 2239 |  |  | 
                                                            
                                    | 2240 |  |     /** | 
                                                            
                                    | 2241 |  |      * ArithmeticFactor ::= [("+" | "-")] ArithmeticPrimary |