public function push(Node $item) { return parent::push($item); }
/** * Parse optional apply rule. * Rule: (APPLY WORD)? * @param TokenStream $tokens * @param Stack $stack * @return bool True */ protected function parseApply(TokenStream $tokens, Stack $stack) { if ($tokens->begin() && $stack->begin() && $this->consumeToken(Token::APPLY, $tokens, $stack) && $this->parseToken(Token::WORD, $tokens, $stack, self::CONTEXT_FUNC) && $tokens->commit() && $stack->commit() || $tokens->rollback() || $stack->rollback()) { // Basically this is a function operator. $operator = $stack->pop(); $operand = $stack->pop(); $stack->push(new UnaryNode($operator, $operand)); } // Always return true since this is an optional rule. return true; }