[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

/vendor/geshi/geshi/src/geshi/ -> twig.php (source)

   1  <?php
   2  /*************************************************************************************
   3   * twig.php
   4   * ----------
   5   * Author: Keyvan Akbary (keyvan@kiwwito.com)
   6   * Copyright: (c) 2011 Keyvan Akbary (http://www.kiwwito.com/)
   7   * Release Version: 1.0.9.1
   8   * Date Started: 2011/12/05
   9   *
  10   * Twig template language file for GeSHi.
  11   *
  12   * CHANGES
  13   * -------
  14   * 2012/09/28 (1.9.0 by José Andrés Puertas y Javier Eguiluz)
  15   *   - Added new tags, filters and functions
  16   *   - Added regexps for variables, objects and properties
  17   *   - Lots of other minor tweaks (delimites, comments, ...)
  18   *
  19   * 2011/12/05 (1.0.0 by Keyvan Akbary)
  20   *   -  Initial Release
  21   *
  22   * TODO
  23   * ----
  24   *
  25   *************************************************************************************
  26   *
  27   *   This file is part of GeSHi.
  28   *
  29   *   GeSHi is free software; you can redistribute it and/or modify
  30   *   it under the terms of the GNU General Public License as published by
  31   *   the Free Software Foundation; either version 2 of the License, or
  32   *   (at your option) any later version.
  33   *
  34   *   GeSHi is distributed in the hope that it will be useful,
  35   *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  36   *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  37   *   GNU General Public License for more details.
  38   *
  39   *   You should have received a copy of the GNU General Public License
  40   *   along with GeSHi; if not, write to the Free Software
  41   *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  42   *
  43   ************************************************************************************/
  44  
  45  $language_data = array(
  46      'LANG_NAME' => 'Twig',
  47      'COMMENT_SINGLE' => array(),
  48      'COMMENT_MULTI' => array('{#' => '#}'),
  49      'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
  50      'QUOTEMARKS' => array("'", '"'),
  51      'ESCAPE_CHAR' => '',
  52      'KEYWORDS' => array(
  53          //TWIG
  54          //Tags
  55          1 => array(
  56              'autoescape',
  57              'endautoescape',
  58              'block',
  59              'endblock',
  60              'do',
  61              'embed',
  62              'endembed',
  63              'extends',
  64              'filter',
  65              'endfilter',
  66              'for',
  67              'endfor',
  68              'from',
  69              'if',
  70              'else',
  71              'elseif',
  72              'endif',
  73              'import',
  74              'include',
  75              'macro',
  76              'endmacro',
  77              'raw',
  78              'endraw',
  79              'sandbox',
  80              'set',
  81              'endset',
  82              'spaceless',
  83              'endspaceless',
  84              'use',
  85              'verbatim',
  86              'endverbatim',
  87              'trans',
  88              'endtrans',
  89              'transchoice',
  90              'endtranschoice'
  91          ),
  92          //Filters
  93          2 => array(
  94              'abs',
  95              'batch',
  96              'capitalize',
  97              'convert_encoding',
  98              'date',
  99              'date_modify',
 100              'default',
 101              'escape',
 102              'first',
 103              'format',
 104              'join',
 105              'json_encode',
 106              'keys',
 107              'last',
 108              'length',
 109              'lower',
 110              'merge',
 111              'nl2br',
 112              'number_format',
 113              'replace',
 114              'reverse',
 115              'slice',
 116              'sort',
 117              'split',
 118              'striptags',
 119              'title',
 120              'trim',
 121              'upper',
 122              'url_encode'
 123          ),
 124          //Functions
 125          3 => array(
 126              'attribute',
 127              'cycle',
 128              'dump',
 129              'parent',
 130              'random',
 131              'range',
 132              'source',
 133              'template_from_string'
 134          ),
 135          //Tests
 136          4 => array(
 137              'constant',
 138              'defined',
 139              'divisibleby',
 140              'empty',
 141              'even',
 142              'iterable',
 143              'null',
 144              'odd',
 145              'sameas'
 146          ),
 147          //Operators
 148          5 => array(
 149              'in',
 150              'is',
 151              'and',
 152              'b-and',
 153              'or',
 154              'b-or',
 155              'b-xor',
 156              'not',
 157              'into',
 158              'starts with',
 159              'ends with',
 160              'matches'
 161          )
 162      ),
 163      'SYMBOLS' => array(
 164          '{{',
 165          '}}',
 166          '{%',
 167          '%}',
 168          '+',
 169          '-',
 170          '/',
 171          '/',
 172          '*',
 173          '**', //Math operators
 174          '==',
 175          '!=',
 176          '<',
 177          '>',
 178          '>=',
 179          '<=',
 180          '===', //Logic operators
 181          '..',
 182          '|',
 183          '~',
 184          '[',
 185          ']',
 186          '.',
 187          '?',
 188          ':',
 189          '(',
 190          ')', //Other
 191          '=' //HTML (attributes)
 192      ),
 193      'CASE_SENSITIVE' => array(
 194          GESHI_COMMENTS => false,
 195          //Twig
 196          1 => true,
 197          2 => true,
 198          3 => true,
 199          4 => true,
 200          5 => true
 201      ),
 202      'STYLES' => array(
 203          'KEYWORDS' => array(
 204              1 => 'color: #0600FF;', //Tags
 205              2 => 'color: #008000;', //Filters
 206              3 => 'color: #0600FF;', //Functions
 207              4 => 'color: #804040;', //Tests
 208              5 => 'color: #008000;'
 209          ),
 210          'COMMENTS' => array(
 211              'MULTI' => 'color: #008080; font-style: italic;'
 212          ),
 213          'ESCAPE_CHAR' => array(
 214              0 => 'color: #000099; font-weight: bold;'
 215          ),
 216          'BRACKETS' => array(
 217              0 => 'color: #D36900;'
 218          ),
 219          'STRINGS' => array(
 220              0 => 'color: #ff0000;'
 221          ),
 222          'NUMBERS' => array(
 223              0 => 'color: #cc66cc;'
 224          ),
 225          'METHODS' => array(
 226              1 => 'color: #006600;'
 227          ),
 228          'SYMBOLS' => array(
 229              0 => 'color: #D36900;'
 230          ),
 231          'SCRIPT' => array(
 232              0 => '',
 233              1 => 'color: #808080; font-style: italic;',
 234              2 => 'color: #009000;'
 235          ),
 236          'REGEXPS' => array(
 237              0 => 'color: #00aaff;',
 238              1 => 'color: #00aaff;'
 239          )
 240      ),
 241      'URLS' => array(
 242          1 => 'http://twig.sensiolabs.org/doc/tags/{FNAMEL}.html',
 243          2 => 'http://twig.sensiolabs.org/doc/filters/{FNAMEL}.html',
 244          3 => 'http://twig.sensiolabs.org/doc/functions/{FNAMEL}.html',
 245          4 => 'http://twig.sensiolabs.org/doc/tests/{FNAMEL}.html',
 246          5 => '',
 247      ),
 248      'OOLANG' => false,
 249      'OBJECT_SPLITTERS' => array(
 250          1 => '.',
 251      ),
 252      'REGEXPS' => array(
 253          0 => array(
 254              GESHI_SEARCH => "([[:space:]])([a-zA-Z_][a-zA-Z0-9_]*)",
 255              GESHI_REPLACE => '\\2',
 256              GESHI_MODIFIERS => '',
 257              GESHI_BEFORE => '\\1',
 258              GESHI_AFTER => ''
 259          ),
 260          1 => array(
 261              GESHI_SEARCH => "\.([a-zA-Z_][a-zA-Z0-9_]*)",
 262              GESHI_REPLACE => '.\\1',
 263              GESHI_MODIFIERS => '',
 264              GESHI_BEFORE => '',
 265              GESHI_AFTER => ''
 266          ),
 267      ),
 268      'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
 269      'SCRIPT_DELIMITERS' => array(
 270          0 => array(
 271              '{{' => '}}',
 272              '{%' => '%}'
 273          ),
 274          1 => array(
 275              '{#' => '#}',
 276          )
 277      ),
 278      'HIGHLIGHT_STRICT_BLOCK' => array(
 279          0 => true,
 280          1 => true,
 281          2 => true
 282      ),
 283      'PARSER_CONTROL' => array(
 284          'KEYWORDS' => array()
 285      )
 286  );