[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

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

   1  <?php
   2  /*************************************************************************************
   3   * mmix.php
   4   * -------
   5   * Author: Benny Baumann (BenBE@geshi.org)
   6   * Copyright: (c) 2009 Benny Baumann (http://qbnz.com/highlighter/)
   7   * Release Version: 1.0.9.1
   8   * Date Started: 2009/10/16
   9   *
  10   * MMIX Assembler language file for GeSHi.
  11   *
  12   * This is an implementation of the MMIX language as designed by Donald E. Knuth
  13   *
  14   * CHANGES
  15   * -------
  16   * 2004/08/05 (1.0.8.6)
  17   *   -  First Release
  18   *
  19   * TODO (updated 2009/10/16)
  20   * -------------------------
  21   *
  22   *************************************************************************************
  23   *
  24   *     This file is part of GeSHi.
  25   *
  26   *   GeSHi is free software; you can redistribute it and/or modify
  27   *   it under the terms of the GNU General Public License as published by
  28   *   the Free Software Foundation; either version 2 of the License, or
  29   *   (at your option) any later version.
  30   *
  31   *   GeSHi is distributed in the hope that it will be useful,
  32   *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  33   *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  34   *   GNU General Public License for more details.
  35   *
  36   *   You should have received a copy of the GNU General Public License
  37   *   along with GeSHi; if not, write to the Free Software
  38   *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  39   *
  40   ************************************************************************************/
  41  
  42  $language_data = array (
  43      'LANG_NAME' => 'MMIX',
  44      'COMMENT_SINGLE' => array(1 => ';', 2 => '%'),
  45      'COMMENT_MULTI' => array(),
  46      //Line address prefix suppression
  47      'COMMENT_REGEXP' => array(
  48          3 => "/^\s*(?!\s)[^\w].*$/m",
  49          4 => "/^\s*[0-9a-f]{12,16}+(?:\s+[0-9a-f]+(?:\.{3}[0-9a-f]{2,})?)?:/mi"
  50          ),
  51      'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
  52      'QUOTEMARKS' => array("'", '"'),
  53      'ESCAPE_CHAR' => '',
  54      'NUMBERS' => array(
  55          1 => '(?<![\d\$#\w])[\da-fA-F]+(?!\w)',
  56          2 => '#[\da-fA-F]+',
  57          3 => '\$\d+'
  58          ),
  59      'KEYWORDS' => array(
  60          /*CPU*/
  61          1 => array(
  62              '16ADDU','2ADDU','4ADDU','8ADDU','ADD','ADDU','AND','ANDN','ANDNH',
  63              'ANDNL','ANDNMH','ANDNML','BDIF','BEV','BN','BNN','BNP','BNZ','BOD',
  64              'BP','BZ','CMP','CMPU','CSEV','CSN','CSNN','CSNP','CSNZ','CSOD',
  65              'CSP','CSWAP','CSZ','DIV','DIVU','FADD','FCMP','FCMPE','FDIV',
  66              'FEQL','FEQLE','FINT','FIX','FIXU','FLOT','FLOTU','FMUL','FREM',
  67              'FSQRT','FSUB','FUN','FUNE','GET','GETA','GO','INCH','INCL','INCMH',
  68              'INCML','JMP','LDA','LDB','LDBU','LDHT','LDO','LDOU','LDSF','LDT',
  69              'LDTU','LDUNC','LDVTS','LDW','LDWU','MOR','MUL','MULU','MUX','MXOR',
  70              'NAND','NEG','NEGU','NOR','NXOR','ODIF','OR','ORH','ORL','ORMH',
  71              'ORML','ORN','PBEV','PBN','PBNN','PBNP','PBNZ','PBOD','PBP','PBZ',
  72              'POP','PREGO','PRELD','PREST','PUSHGO','PUSHJ','PUT','RESUME','SADD',
  73              'SAVE','SETH','SETL','SETMH','SETML','SFLOT','SFLOTU','SL','SLU',
  74              'SR','SRU','STB','STBU','STCO','STHT','STO','STOU','STSF','STT',
  75              'STTU','STUNC','STW','STWU','SUB','SUBU','SWYM','SYNC','SYNCD',
  76              'SYNCID','TDIF','TRAP','TRIP','UNSAVE','WDIF','XOR','ZSEV','ZSN',
  77              'ZSNN','ZSNP','ZSNZ','ZSOD','ZSP','ZSZ'
  78              ),
  79          2 => array(
  80              'BSPEC','BYTE','ESPEC','GREG','IS','LOC','LOCAL','OCTA',
  81              'PREFIX','SET','TETRA','WYDE'
  82              ),
  83          /*registers*/
  84          3 => array(
  85              'rA','rB','rC','rD','rE','rF','rG','rH','rI','rJ','rK','rL','rM',
  86              'rN','rO','rP','rQ','rR','rS','rT','rU','rV','rW','rX','rY','rZ',
  87              'rBB','rTT','rWW','rXX','rYY','rZZ'
  88              ),
  89  //        /*Directive*/
  90  //        4 => array(
  91  //            ),
  92  //        /*Operands*/
  93  //        5 => array(
  94  //            )
  95          ),
  96      'SYMBOLS' => array(
  97          '[', ']', '(', ')',
  98          '+', '-', '*', '/', '%',
  99          '.', ',', ';', ':',
 100          '<<','>>'
 101          ),
 102      'CASE_SENSITIVE' => array(
 103          GESHI_COMMENTS => false,
 104          1 => true,
 105          2 => false,
 106          3 => true,
 107  //        4 => false,
 108  //        5 => false
 109          ),
 110      'STYLES' => array(
 111          'KEYWORDS' => array(
 112              1 => 'color: #00007f; font-weight: bold;',
 113              2 => 'color: #0000ff; font-weight: bold;',
 114              3 => 'color: #00007f;',
 115  //            4 => 'color: #000000; font-weight: bold;',
 116  //            5 => 'color: #000000; font-weight: bold;'
 117              ),
 118          'COMMENTS' => array(
 119              1 => 'color: #666666; font-style: italic;',
 120              2 => 'color: #666666; font-style: italic;',
 121              3 => 'color: #666666; font-style: italic;',
 122              4 => 'color: #adadad; font-style: italic;',
 123              ),
 124          'ESCAPE_CHAR' => array(
 125              0 => 'color: #000099; font-weight: bold;'
 126              ),
 127          'BRACKETS' => array(
 128              0 => 'color: #009900; font-weight: bold;'
 129              ),
 130          'STRINGS' => array(
 131              0 => 'color: #7f007f;'
 132              ),
 133          'NUMBERS' => array(
 134              0 => 'color: #0000ff;',
 135              1 => 'color: #0000ff;',
 136              2 => 'color: #0000ff;',
 137              3 => 'color: #00007f;'
 138              ),
 139          'METHODS' => array(
 140              ),
 141          'SYMBOLS' => array(
 142              0 => 'color: #339933;'
 143              ),
 144          'REGEXPS' => array(
 145  //            0 => 'color: #0000ff;',
 146  //            1 => 'color: #0000ff;'
 147              ),
 148          'SCRIPT' => array(
 149              )
 150          ),
 151      'URLS' => array(
 152          1 => '',
 153          2 => '',
 154          3 => '',
 155  //        4 => '',
 156  //        5 => ''
 157          ),
 158  /*
 159      'NUMBERS' =>
 160          GESHI_NUMBER_BIN_PREFIX_PERCENT |
 161          GESHI_NUMBER_BIN_SUFFIX |
 162          GESHI_NUMBER_HEX_PREFIX |
 163          GESHI_NUMBER_HEX_SUFFIX |
 164          GESHI_NUMBER_OCT_SUFFIX |
 165          GESHI_NUMBER_INT_BASIC |
 166          GESHI_NUMBER_FLT_NONSCI |
 167          GESHI_NUMBER_FLT_NONSCI_F |
 168          GESHI_NUMBER_FLT_SCI_ZERO,
 169  */
 170      'OOLANG' => false,
 171      'OBJECT_SPLITTERS' => array(
 172          ),
 173      'REGEXPS' => array(
 174          //Hex numbers
 175  //        0 => /*  */ "(?<=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))(?:[0-9][0-9a-fA-F]{0,31}[hH]|0x[0-9a-fA-F]{1,32})(?=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))",
 176          //Binary numbers
 177  //        1 => "(?<=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))[01]{1,64}[bB](?=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))"
 178          ),
 179      'STRICT_MODE_APPLIES' => GESHI_NEVER,
 180      'SCRIPT_DELIMITERS' => array(
 181          ),
 182      'HIGHLIGHT_STRICT_BLOCK' => array(
 183          ),
 184      'TAB_WIDTH' => 8,
 185      'PARSER_CONTROL' => array(
 186          'KEYWORDS' => array(
 187              'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#>|^])",
 188              'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%])"
 189          )
 190      )
 191  );