1<?php
2/*************************************************************************************
3 * cil.php
4 * --------
5 * Author: Marcus Griep (neoeinstein+GeSHi@gmail.com)
6 * Copyright: (c) 2007 Marcus Griep (http://www.xpdm.us)
7 * Release Version: 1.0.9.1
8 * Date Started: 2007/10/24
9 *
10 * CIL (Common Intermediate Language) language file for GeSHi.
11 *
12 * CHANGES
13 * -------
14 * 2004/10/24 (1.0.8)
15 *  -  First Release
16 *
17 * TODO (updated 2007/10/24)
18 * -------------------------
19 *
20 *************************************************************************************
21 *
22 *     This file is part of GeSHi.
23 *
24 *   GeSHi is free software; you can redistribute it and/or modify
25 *   it under the terms of the GNU General Public License as published by
26 *   the Free Software Foundation; either version 2 of the License, or
27 *   (at your option) any later version.
28 *
29 *   GeSHi is distributed in the hope that it will be useful,
30 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
31 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
32 *   GNU General Public License for more details.
33 *
34 *   You should have received a copy of the GNU General Public License
35 *   along with GeSHi; if not, write to the Free Software
36 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
37 *
38 ************************************************************************************/
39
40$language_data = array (
41    'LANG_NAME' => 'CIL',
42    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
43    'COMMENT_SINGLE' => array('//'),
44    'COMMENT_MULTI' => array(),
45    'QUOTEMARKS' => array('"'),
46    'ESCAPE_CHAR' => '\\',
47    'KEYWORDS' => array(
48        1 => array(//Dotted
49            '.zeroinit', '.vtfixup', '.vtentry', '.vtable', '.ver', '.try', '.subsystem', '.size', '.set', '.removeon',
50            '.publickeytoken', '.publickey', '.property', '.permissionset', '.permission', '.pdirect', '.param', '.pack',
51            '.override', '.other', '.namespace', '.mresource', '.module', '.method', '.maxstack', '.manifestres', '.locals',
52            '.localized', '.locale', '.line', '.language', '.import', '.imagebase', '.hash', '.get', '.fire', '.file', '.field',
53            '.export', '.event', '.entrypoint', '.emitbyte', '.data', '.custom', '.culture', '.ctor', '.corflags', '.class',
54            '.cctor', '.assembly', '.addon'
55            ),
56        2 => array(//Attributes
57            'wrapper', 'with', 'winapi', 'virtual', 'vector', 'vararg', 'value', 'userdefined', 'unused', 'unmanagedexp',
58            'unmanaged', 'unicode', 'to', 'tls', 'thiscall', 'synchronized', 'struct', 'strict', 'storage', 'stdcall',
59            'static', 'specialname', 'special', 'serializable', 'sequential', 'sealed', 'runtime', 'rtspecialname', 'request',
60            'reqsecobj', 'reqrefuse', 'reqopt', 'reqmin', 'record', 'public', 'privatescope', 'private', 'preservesig',
61            'prejitgrant', 'prejitdeny', 'platformapi', 'pinvokeimpl', 'pinned', 'permitonly', 'out', 'optil', 'opt',
62            'notserialized', 'notremotable', 'not_in_gc_heap', 'noprocess', 'noncaslinkdemand', 'noncasinheritance',
63            'noncasdemand', 'nometadata', 'nomangle', 'nomachine', 'noinlining', 'noappdomain', 'newslot', 'nested', 'native',
64            'modreq', 'modopt', 'marshal', 'managed', 'literal', 'linkcheck', 'lcid', 'lasterr', 'internalcall', 'interface',
65            'instance', 'initonly', 'init', 'inheritcheck', 'in', 'import', 'implicitres', 'implicitcom', 'implements',
66            'illegal', 'il', 'hidebysig', 'handler', 'fromunmanaged', 'forwardref', 'fixed', 'finally', 'final', 'filter',
67            'filetime', 'field', 'fault', 'fastcall', 'famorassem', 'family', 'famandassem', 'extern', 'extends', 'explicit',
68            'error', 'enum', 'endmac', 'deny', 'demand', 'default', 'custom', 'compilercontrolled', 'clsid', 'class', 'cil',
69            'cf', 'cdecl', 'catch', 'beforefieldinit', 'autochar', 'auto', 'at', 'assert', 'assembly', 'as', 'any', 'ansi',
70            'alignment', 'algorithm', 'abstract'
71            ),
72        3 => array(//Types
73            'wchar', 'void', 'variant', 'unsigned', 'valuetype', 'typedref', 'tbstr', 'sysstring', 'syschar', 'string',
74            'streamed_object', 'stream', 'stored_object', 'safearray', 'objectref', 'object', 'nullref', 'method', 'lpwstr',
75            'lpvoid', 'lptstr', 'lpstruct', 'lpstr', 'iunknown', 'int64', 'int32', 'int16', 'int8', 'int', 'idispatch',
76            'hresult', 'float64', 'float32', 'float', 'decimal', 'date', 'currency', 'char', 'carray', 'byvalstr',
77            'bytearray', 'boxed', 'bool', 'blob_object', 'blob', 'array'
78            ),
79        4 => array(//Prefix
80            'volatile', 'unaligned', 'tail', 'readonly', 'no', 'constrained'
81            ),
82        5 => array(//Suffix
83            'un', 'u8', 'u4', 'u2', 'u1', 'u', 's', 'ref', 'r8', 'r4', 'm1', 'i8', 'i4', 'i2', 'i1', 'i'#, '.8', '.7', '.6', '.5', '.4', '.3', '.2', '.1', '.0'
84            ),
85        6 => array(//Base
86            'xor', 'switch', 'sub', 'stloc',
87            'stind', 'starg',
88            'shr', 'shl', 'ret', 'rem', 'pop', 'or', 'not', 'nop', 'neg', 'mul',
89            'localloc', 'leave', 'ldnull', 'ldloca',
90            'ldloc', 'ldind', 'ldftn', 'ldc', 'ldarga',
91            'ldarg', 'jmp', 'initblk', 'endfinally', 'endfilter',
92            'endfault', 'dup', 'div', 'cpblk', 'conv', 'clt', 'ckfinite', 'cgt', 'ceq', 'calli',
93            'call', 'brzero', 'brtrue', 'brnull', 'brinst',
94            'brfalse', 'break', 'br', 'bne', 'blt', 'ble', 'bgt', 'bge', 'beq', 'arglist',
95            'and', 'add'
96            ),
97        7 => array(//Object
98            'unbox.any', 'unbox', 'throw', 'stsfld', 'stobj', 'stfld', 'stelem', 'sizeof', 'rethrow', 'refanyval', 'refanytype', 'newobj',
99            'newarr', 'mkrefany', 'ldvirtftn', 'ldtoken', 'ldstr', 'ldsflda', 'ldsfld', 'ldobj', 'ldlen', 'ldflda', 'ldfld',
100            'ldelema', 'ldelem', 'isinst', 'initobj', 'cpobj', 'castclass',
101            'callvirt', 'callmostderived', 'box'
102            ),
103        8 => array(//Other
104            'prefixref', 'prefix7', 'prefix6', 'prefix5', 'prefix4', 'prefix3', 'prefix2', 'prefix1', 'prefix0'
105            ),
106        9 => array(//Literal
107            'true', 'null', 'false'
108            ),
109        10 => array(//Comment-like
110            '#line', '^THE_END^'
111            )
112        ),
113    'SYMBOLS' => array(
114        '(', ')', '[', ']', '{', '}', '!', '!!'
115        ),
116    'CASE_SENSITIVE' => array(
117        GESHI_COMMENTS => false,
118        1 => true,
119        2 => true,
120        3 => true,
121        4 => true,
122        5 => true,
123        6 => true,
124        7 => true,
125        8 => true,
126        9 => true,
127        10 => true
128        ),
129    'STYLES' => array(
130        'KEYWORDS' => array(
131            1 => 'color:maroon;font-weight:bold;',
132            2 => 'color:blue;font-weight:bold;',
133            3 => 'color:purple;font-weight:bold;',
134            4 => 'color:teal;',
135            5 => 'color:blue;',
136            6 => 'color:blue;',
137            7 => 'color:blue;',
138            8 => 'color:blue;',
139            9 => 'color:00008B',
140            10 => 'color:gray'
141            ),
142        'COMMENTS' => array(
143            0 => 'color:gray;font-style:italic;'
144            ),
145        'ESCAPE_CHAR' => array(
146            0 => 'color: #008000; font-weight: bold;'
147            ),
148        'BRACKETS' => array(
149            0 => 'color: #006400;'
150            ),
151        'STRINGS' => array(
152            0 => 'color: #008000;'
153            ),
154        'NUMBERS' => array(
155            0 => 'color: #00008B;'
156            ),
157        'METHODS' => array(
158            1 => 'color: #000033;'
159            ),
160        'SYMBOLS' => array(
161            0 => 'color: #006400;'
162            ),
163        'REGEXPS' => array(
164            0 => 'color:blue;'
165            ),
166        'SCRIPT' => array(
167            )
168        ),
169    'URLS' => array(
170        1 => '',
171        2 => '',
172        3 => '',
173        4 => '',
174        5 => '',
175        6 => '',
176        7 => '',
177        8 => '',
178        9 => '',
179        10 => ''
180        ),
181    'OOLANG' => true,
182    'OBJECT_SPLITTERS' => array(
183        1 => '::'
184        ),
185    'REGEXPS' => array(
186        0 => '(?<=ldc\\.i4\\.)[0-8]|(?<=(?:ldarg|ldloc|stloc)\\.)[0-3]' # Pickup the opcodes that end with integers
187        ),
188    'STRICT_MODE_APPLIES' => GESHI_NEVER,
189    'SCRIPT_DELIMITERS' => array(
190        ),
191    'HIGHLIGHT_STRICT_BLOCK' => array(
192        ),
193    'TAB_WIDTH' => 4
194);
195