⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 compiler.php

📁 博客系统源码 博客系统源码 博客系统源码
💻 PHP
字号:
<?php/** * Twig::Compiler * ~~~~~~~~~~~~~~ * * This module implements the Twig compiler. * * :copyright: 2008 by Armin Ronacher. * :license: BSD. */// mark the compiler as being included.  This use used by the public// `twig_load_compiler` function that loads the compiler system.define('TWIG_COMPILER_INCLUDED', true);require TWIG_BASE . '/lexer.php';require TWIG_BASE . '/parser.php';require TWIG_BASE . '/ast.php';function twig_compile($node, $fp=null){    if (!is_null($fp))        $compiler = new Twig_FileCompiler($fp);    else        $compiler = new Twig_StringCompiler();    $node->compile($compiler);    if (is_null($fp))        return $compiler->getCode();}class Twig_Compiler{    private $last_lineno;    public function __construct()    {        $this->last_lineno = NULL;    }    public function format()    {        $arguments = func_get_args();        $this->raw(call_user_func_array('sprintf', $arguments));    }    public function string($value)    {        $this->format('"%s"', addcslashes($value, "\t\""));    }    public function repr($value)    {        if (is_int($value) || is_float($value))            $this->raw($value);        else if (is_null($value))            $this->raw('NULL');        else if (is_bool($value))            $this->raw($value ? 'true' : 'false');        else if (is_array($value)) {            $this->raw('array(');            $i = 0;            foreach ($value as $key => $value) {                if ($i++)                    $this->raw(', ');                $this->repr($key);                $this->raw(' => ');                $this->repr($value);            }            $this->raw(')');        }        else            $this->string($value);    }    public function pushContext()    {        $this->raw('$context[\'::parent\'] = $parent = $context;'. "\n");    }    public function popContext()    {        $this->raw('$context = $context[\'::parent\'];'. "\n");    }    public function addDebugInfo($node)    {        if ($node->lineno != $this->last_lineno) {            $this->last_lineno = $node->lineno;            $this->raw("/* LINE:$node->lineno */\n");        }    }}class Twig_FileCompiler extends Twig_Compiler{    private $fp;    public function __construct($fp)    {        parent::__construct();        $this->fp = $fp;    }    public function raw($string)    {        fwrite($this->fp, $string);    }}class Twig_StringCompiler extends Twig_Compiler{    private $source;    public function __construct()    {        parent::__construct();        $this->source = '';    }    public function raw($string)    {        $this->source .= $string;    }    public function getCode()    {        return $this->source;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -