PATH:
home
/
letacommog
/
letaweb
/
admin
/
classes
/
twig
/
lib
/
Twig
<?php /* * This file is part of Twig. * * (c) 2009 Fabien Potencier * (c) 2009 Armin Ronacher * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ /** * Represents a token stream. * * @author Fabien Potencier <fabien@symfony.com> */ class Twig_TokenStream { protected $tokens; protected $current = 0; protected $filename; /** * Constructor. * * @param array $tokens An array of tokens * @param string $filename The name of the filename which tokens are associated with */ public function __construct(array $tokens, $filename = null) { $this->tokens = $tokens; $this->filename = $filename; } /** * Returns a string representation of the token stream. * * @return string */ public function __toString() { return implode("\n", $this->tokens); } public function injectTokens(array $tokens) { $this->tokens = array_merge(array_slice($this->tokens, 0, $this->current), $tokens, array_slice($this->tokens, $this->current)); } /** * Sets the pointer to the next token and returns the old one. * * @return Twig_Token */ public function next() { if (!isset($this->tokens[++$this->current])) { throw new Twig_Error_Syntax('Unexpected end of template.', $this->tokens[$this->current - 1]->getLine(), $this->filename); } return $this->tokens[$this->current - 1]; } /** * Tests a token, sets the pointer to the next one and returns it or throws a syntax error. * * @return Twig_Token|null The next token if the condition is true, null otherwise */ public function nextIf($primary, $secondary = null) { if ($this->tokens[$this->current]->test($primary, $secondary)) { return $this->next(); } } /** * Tests a token and returns it or throws a syntax error. * * @return Twig_Token */ public function expect($type, $value = null, $message = null) { $token = $this->tokens[$this->current]; if (!$token->test($type, $value)) { $line = $token->getLine(); throw new Twig_Error_Syntax(sprintf('%sUnexpected token "%s" of value "%s" ("%s" expected%s).', $message ? $message.'. ' : '', Twig_Token::typeToEnglish($token->getType()), $token->getValue(), Twig_Token::typeToEnglish($type), $value ? sprintf(' with value "%s"', $value) : ''), $line, $this->filename ); } $this->next(); return $token; } /** * Looks at the next token. * * @param int $number * * @return Twig_Token */ public function look($number = 1) { if (!isset($this->tokens[$this->current + $number])) { throw new Twig_Error_Syntax('Unexpected end of template.', $this->tokens[$this->current + $number - 1]->getLine(), $this->filename); } return $this->tokens[$this->current + $number]; } /** * Tests the current token. * * @return bool */ public function test($primary, $secondary = null) { return $this->tokens[$this->current]->test($primary, $secondary); } /** * Checks if end of stream was reached. * * @return bool */ public function isEOF() { return $this->tokens[$this->current]->getType() === Twig_Token::EOF_TYPE; } /** * Gets the current token. * * @return Twig_Token */ public function getCurrent() { return $this->tokens[$this->current]; } /** * Gets the filename associated with this stream. * * @return string */ public function getFilename() { return $this->filename; } }
[+]
..
[+]
Cache
[-] TokenParserInterface.php
[edit]
[-] NodeTraverser.php
[edit]
[-] TokenParserBroker.php
[edit]
[-] TokenParser.php
[edit]
[-] Markup.php
[edit]
[-] Parser.php
[edit]
[-] TokenParserBrokerInterface.php
[edit]
[-] ParserInterface.php
[edit]
[-] FunctionInterface.php
[edit]
[-] NodeOutputInterface.php
[edit]
[-] NodeVisitorInterface.php
[edit]
[+]
Test
[-] TestCallableInterface.php
[edit]
[-] FunctionCallableInterface.php
[edit]
[-] TokenStream.php
[edit]
[-] Environment.php
[edit]
[-] Extension.php
[edit]
[+]
NodeVisitor
[-] Test.php
[edit]
[-] CacheInterface.php
[edit]
[+]
Loader
[-] ExpressionParser.php
[edit]
[-] Template.php
[edit]
[-] SimpleFilter.php
[edit]
[+]
Sandbox
[-] FileExtensionEscapingStrategy.php
[edit]
[-] BaseNodeVisitor.php
[edit]
[+]
Function
[+]
Node
[-] CompilerInterface.php
[edit]
[-] Lexer.php
[edit]
[-] Node.php
[edit]
[+]
Extension
[-] TestInterface.php
[edit]
[-] Filter.php
[edit]
[-] SimpleTest.php
[edit]
[-] LoaderInterface.php
[edit]
[+]
Error
[+]
Filter
[-] LexerInterface.php
[edit]
[-] NodeInterface.php
[edit]
[+]
Profiler
[+]
TokenParser
[+]
Util
[-] TemplateInterface.php
[edit]
[-] SimpleFunction.php
[edit]
[-] FilterCallableInterface.php
[edit]
[-] Token.php
[edit]
[-] Error.php
[edit]
[-] ExistsLoaderInterface.php
[edit]
[-] Function.php
[edit]
[-] FilterInterface.php
[edit]
[-] Compiler.php
[edit]
[-] Autoloader.php
[edit]
[-] ExtensionInterface.php
[edit]