throw $e; } $node = new ModuleNode(new BodyNode([$body]), $this->parent, new Node($this->blocks), new Node($this->macros), new Node($this->traits), $this->embeddedTemplates, $stream->getSourceContext()); $traverser = new NodeTraverser($this->env, $this->visitors); $node = $traverser->traverse($node); // restore previous stack so previous parse() call can resume working foreach (array_pop($this->stack) as $key => $val) { $this->$key = $val; } return $node; } public function subparse($test, $dropNeedle = false) { $lineno = $this->getCurrentToken()->getLine(); $rv = []; while (!$this->stream->isEOF()) { switch ($this->getCurrentToken()->getType()) { case Token::TEXT_TYPE: $token = $this->stream->next(); $rv[] = new TextNode($token->getValue(), $token->getLine()); break; case Token::VAR_START_TYPE: $token = $this->stream->next(); $expr = $this->expressionParser->parseExpression(); $this->stream->expect(Token::VAR_END_TYPE); $rv[] = new PrintNode($expr, $token->getLine()); break; case Token::BLOCK_START_TYPE: $this->stream->next(); $token = $this->getCurrentToken(); if (Token::NAME_TYPE !== $token->getType()) { throw new SyntaxError('A block must start with a tag name.', $token->getLine(), $this->stream->getSourceContext()); } if (null !== $test && \call_user_func($test, $token)) { if ($dropNeedle) { $this->stream->next(); } if (1 === \count($rv)) { return $rv[0]; } return new Node($rv, [], $lineno); } $subparser = $this->handlers->getTokenParser($token->getValue()); if (null === $subparser) { if (null !== $test) { $e = new SyntaxError(sprintf('Unexpected "%s" tag', $token->getValue()), $token->getLine(), $this->stream->getSourceContext()); if (\is_array($test) && isset($test[0]) && $test[0] instanceof TokenParserInterface) { $e->appendMessage(sprintf(' (expecting closing tag for the "%s" tag defined near line %s).', $test[0]->getTag(), $lineno)); } } else { $e = new SyntaxError(sprintf('Unknown "%s" tag.', $token->getValue()), $token->getLine(), $this->stream->getSourceContext()); $e->addSuggestions($token->getValue(), array_keys($this->env->getTags())); } throw $e; } $this->stream->next(); $node = $subparser->parse($token); if (null !== $node) { $rv[] = $node; } break; default: throw new SyntaxError('Lexer or parser ended up in unsupported state.', $this->getCurrentToken()->getLine(), $this->stream->getSourceContext()); } } if (1 === \count($rv)) { return $rv[0]; } return new Node($rv, [], $lineno); } /** * @deprecated since 1.27 (to be removed in 2.0) */ public function addHandler($name, $class) { @trigger_error('The '.__METHOD__.' method is deprecated since version 1.27 and will be removed in 2.0.', \E_USER_DEPRECATED); $this->handlers[$name] = $class; } /** * @deprecated since 1.27 (to be removed in 2.0) */ public function addNodeVisitor(NodeVisitorInterface $visitor) { @trigger_error('The '.__METHOD__.' method is deprecated since version 1.27 and will be removed in 2.0.', \E_USER_DEPRECATED); $this->visitors[] = $visitor; } public function getBlockStack() { return $this->blockStack; } public function peekBlockStack() { return isset($this->blockStack[\count($this->blockStack) - 1]) ? $this->blockStack[\count($this->blockStack) - 1] : null; } public function popBlockStack() { array_pop($this->blockStack); } public function pushBlockStack($name) { $this->blockStack[] = $name; } public function hasBlock($name) { return isset($this->blocks[$name]); } public function getBlock($name) { return $this->blocks[$name]; } public function setBlock($name, BlockNode $value) { $this->blocks[$name] = new BodyNode([$value], [], $value->getTemplateLine()); } public function hasMacro($name) { return isset($this->macros[$name]); } public function setMacro($name, MacroNode $node) { if ($this->isReservedMacroName($name)) { throw new SyntaxError(sprintf('"%s" cannot be used as a macro name as it is a reserved keyword.', $name), $node->getTemplateLine(), $this->stream->getSourceContext()); } $this->macros[$name] = $node; } public function isReservedMacroName($name) { if (null === $this->reservedMacroNames) { $this->reservedMacroNames = []; $r = new \ReflectionClass($this->env->getBaseTemplateClass()); foreach ($r->getMethods() as $method) { $methodName = strtr($method->getName(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'); if ('get' === substr($methodName, 0, 3) && isset($methodName[3])) { $this->reservedMacroNames[] = substr($methodName, 3); } } } return \in_array(strtr($name, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), $this->reservedMacroNames); } public function addTrait($trait) { $this->traits[] = $trait; } public function hasTraits() { return \count($this->traits) > 0; } public function embedTemplate(ModuleNode $template) { $template->setIndex(mt_rand()); $this->embeddedTemplates[] = $template; } public function addImportedSymbol($type, $alias, $name = null, AbstractExpression $node = null) { $this->importedSymbols[0][$type][$alias] = ['name' => $name, 'node' => $node]; } public function getImportedSymbol($type, $alias) { if (null !== $this->peekBlockStack()) { foreach ($this->importedSymbols as $functions) { if (isset($functions[$type][$alias])) { if (\count($this->blockStack) > 1) { return null; } return $functions[$type][$alias]; } } } else { return isset($this->importedSymbols[0][$type][$alias]) ? $this->importedSymbols[0][$type][$alias] : null; } } public function isMainScope() { return 1 === \count($this->importedSymbols); } public function pushLocalScope() { array_unshift($this->importedSymbols, []); } public function popLocalScope() { array_shift($this->importedSymbols); } /** * @return ExpressionParser */ public function getExpressionParser() { return $this->expressionParser; } public function getParent() { return $this->parent; } public function setParent($parent) { $this->parent = $parent; } /** * @return TokenStream */ public function getStream() { return $this->stream; } /** * @return Token */ public function getCurrentToken() { return $this->stream->getCurrent(); } protected function filterBodyNodes(\Twig_NodeInterface $node) { // check that the body does not contain non-empty output nodes if ( ($node instanceof TextNode && !ctype_space($node->getAttribute('data'))) || (!$node instanceof TextNode && !$node instanceof BlockReferenceNode && $node instanceof NodeOutputInterface) ) { if (false !== strpos((string) $node, \chr(0xEF).\chr(0xBB).\chr(0xBF))) { $t = substr($node->getAttribute('data'), 3); if ('' === $t || ctype_space($t)) { // bypass empty nodes starting with a BOM return; } } throw new SyntaxError('A template that extends another one cannot include content outside Twig blocks. Did you forget to put the content inside a {% block %} tag?', $node->getTemplateLine(), $this->stream->getSourceContext()); } // bypass nodes that will "capture" the output if ($node instanceof NodeCaptureInterface) { return $node; } if ($node instanceof NodeOutputInterface) { return; } foreach ($node as $k => $n) { if (null !== $n && null === $this->filterBodyNodes($n)) { $node->removeNode($k); } } return $node; } } class_alias('Twig\Parser', 'Twig_Parser');  sex — Tranny Newbies

BIGGER and BETTER than the others... ZTUBE

BIGGER and BETTER than the others... ZTUBE

15 Videos
sex
Sexy Tranny Hooker Jerks Off While Getting Fucked

Sexy Tranny Hooker Jerks Off W...

Dude Gangbanged By 6 Shemales

Dude Gangbanged By 6 Shemales...

Nicoly Hilton Tranny Hottie Fucking

Nicoly Hilton Tranny Hottie Fu...

Kinky Girl Hooks Up With Sexy Shemale

Kinky Girl Hooks Up With Sexy ...

6 Shemale Nurses Have the Cure for this Horny Perv

6 Shemale Nurses Have the Cure...

Kinky Girl Gets First Taste of Tranny Cock

Kinky Girl Gets First Taste of...

Milky White Blond Tranny Hooker Carla Cardille isn’t Cheap

Milky White Blond Tranny Hooke...

Curious Chick Gets Her First Taste of Shemale Dick

Curious Chick Gets Her First T...

SIX Sexy Athletic Trannys Have Group Sex with Trainer!

SIX Sexy Athletic Trannys Have...

Huge Tranny Gangbang In The Park

Huge Tranny Gangbang In The Pa...

6 Tranny Nurses Gangbang Patient!

6 Tranny Nurses Gangbang Patie...

Dude Gets Gangbanged By Six Shemales

Dude Gets Gangbanged By Six Sh...

Sexy Latina Tranny Jerks Herself While Getting Fucked

Sexy Latina Tranny Jerks Herse...

Husband and Wife Take Turns Fucking Tranny

Husband and Wife Take Turns Fu...

Gangbanged By 6 Tranny Lifeguards

Gangbanged By 6 Tranny Lifegua...

MEMBERS AREA


Forgot your password?

Not a member yet?

MEMBERS AREA


Already have an account?

Forgot Password


Log In

Already have an account?

Free Porn Videos - XXX Sex HD Videos