1<?php
2/*************************************************************************************
3 * xpp.php
4 * -------
5 * Author: Simon Butcher (simon@butcher.name)
6 * Copyright: (c) 2007 Simon Butcher (http://simon.butcher.name/)
7 * Release Version: 1.0.9.1
8 * Date Started: 2007/02/27
9 *
10 * Axapta/Dynamics Ax X++ language file for GeSHi.
11 * For details, see <http://msdn.microsoft.com/en-us/library/aa867122.aspx>
12 *
13 * CHANGES
14 * -------
15 * 2007/02/28 (1.0.0)
16 *  -  First Release
17 *
18 * TODO (updated 2007/02/27)
19 * -------------------------
20 *
21 *************************************************************************************
22 *
23 *     This file is part of GeSHi.
24 *
25 *   GeSHi is free software; you can redistribute it and/or modify
26 *   it under the terms of the GNU General Public License as published by
27 *   the Free Software Foundation; either version 2 of the License, or
28 *   (at your option) any later version.
29 *
30 *   GeSHi is distributed in the hope that it will be useful,
31 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
32 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
33 *   GNU General Public License for more details.
34 *
35 *   You should have received a copy of the GNU General Public License
36 *   along with GeSHi; if not, write to the Free Software
37 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
38 *
39 ************************************************************************************/
40
41$language_data = array (
42    'LANG_NAME' => 'X++',
43    'COMMENT_SINGLE' => array(1 => '//'),
44    'COMMENT_MULTI' => array('/*' => '*/'),
45    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
46    'QUOTEMARKS' => array("'", '"'),
47    'ESCAPE_CHAR' => '\\',
48    'KEYWORDS' => array(
49        1 => array( // Primitive types
50            'void',
51            'str',
52            'real',
53            'int64',
54            'int',
55            'date',
56            'container',
57            'boolean',
58            'anytype'
59            ),
60        2 => array( // Keywords
61            'window',
62            'while',
63            'try',
64            'true',
65            'throw',
66            'switch',
67            'super',
68            'static',
69            'server',
70            'right',
71            'return',
72            'retry',
73            'public',
74            'protected',
75            'private',
76            'print',
77            'pause',
78            'null',
79            'new',
80            'mod',
81            'left',
82            'interface',
83            'implements',
84            'if',
85            'for',
86            'final',
87            'false',
88            'extends',
89            'else',
90            'edit',
91            'do',
92            'div',
93            'display',
94            'default',
95            'continue',
96            'client',
97            'class',
98            'changeCompany',
99            'case',
100            'breakpoint',
101            'break',
102            'at',
103            'abstract'
104            ),
105        3 => array( // Functions within the Axapta kernel
106            'year',
107            'wkofyr',
108            'webwebpartstr',
109            'webstaticfilestr',
110            'websitetempstr',
111            'websitedefstr',
112            'webreportstr',
113            'webpagedefstr',
114            'weboutputcontentitemstr',
115            'webmenustr',
116            'webletitemstr',
117            'webformstr',
118            'webdisplaycontentitemstr',
119            'webactionitemstr',
120            'varstr',
121            'utilmoyr',
122            'uint2str',
123            'typeof',
124            'typeid',
125            'trunc',
126            'today',
127            'timenow',
128            'time2str',
129            'term',
130            'tanh',
131            'tan',
132            'tablestr',
133            'tablestaticmethodstr',
134            'tablepname',
135            'tablenum',
136            'tablename2id',
137            'tablemethodstr',
138            'tableid2pname',
139            'tableid2name',
140            'tablefieldgroupstr',
141            'tablecollectionstr',
142            'systemdateset',
143            'systemdateget',
144            'syd',
145            'substr',
146            'strupr',
147            'strscan',
148            'strrtrim',
149            'strrep',
150            'strrem',
151            'strprompt',
152            'strpoke',
153            'strnfind',
154            'strlwr',
155            'strltrim',
156            'strline',
157            'strlen',
158            'strkeep',
159            'strins',
160            'strfmt',
161            'strfind',
162            'strdel',
163            'strcolseq',
164            'strcmp',
165            'stralpha',
166            'str2time',
167            'str2num',
168            'str2int64',
169            'str2int',
170            'str2guid',
171            'str2enum',
172            'str2date',
173            'staticmethodstr',
174            'sln',
175            'sleep',
176            'sinh',
177            'sin',
178            'setprefix',
179            'sessionid',
180            'securitykeystr',
181            'securitykeynum',
182            'runbuf',
183            'runas',
184            'round',
185            'resourcestr',
186            'reportstr',
187            'refprintall',
188            'rate',
189            'querystr',
190            'pv',
191            'pt',
192            'prmisdefault',
193            'primoyr',
194            'prevyr',
195            'prevqtr',
196            'prevmth',
197            'power',
198            'pmt',
199            'num2str',
200            'num2date',
201            'num2char',
202            'nextyr',
203            'nextqtr',
204            'nextmth',
205            'newguid',
206            'mthofyr',
207            'mthname',
208            'mkdate',
209            'minint',
210            'min',
211            'methodstr',
212            'menustr',
213            'menuitemoutputstr',
214            'menuitemdisplaystr',
215            'menuitemactionstr',
216            'maxint',
217            'maxdate',
218            'max',
219            'match',
220            'logn',
221            'log10',
222            'literalstr',
223            'licensecodestr',
224            'licensecodenum',
225            'intvnorm',
226            'intvno',
227            'intvname',
228            'intvmax',
229            'int64str',
230            'indexstr',
231            'indexnum',
232            'indexname2id',
233            'indexid2name',
234            'idg',
235            'identifierstr',
236            'helpfilestr',
237            'helpdevstr',
238            'helpapplstr',
239            'guid2str',
240            'getprefix',
241            'getCurrentUTCTime',
242            'fv',
243            'funcname',
244            'frac',
245            'formstr',
246            'fieldstr',
247            'fieldpname',
248            'fieldnum',
249            'fieldname2id',
250            'fieldid2pname',
251            'fieldid2name',
252            'extendedTypeStr',
253            'extendedTypeNum',
254            'exp10',
255            'exp',
256            'evalbuf',
257            'enumstr',
258            'enumnum',
259            'enumcnt',
260            'enum2str',
261            'endmth',
262            'dimof',
263            'dg',
264            'decround',
265            'ddb',
266            'dayofyr',
267            'dayofwk',
268            'dayofmth',
269            'dayname',
270            'date2str',
271            'date2num',
272            'curuserid',
273            'curext',
274            'cterm',
275            'cosh',
276            'cos',
277            'corrflagset',
278            'corrflagget',
279            'convertUTCTimeToLocalTime',
280            'convertUTCDateToLocalDate',
281            'conpoke',
282            'conpeek',
283            'connull',
284            'conlen',
285            'conins',
286            'confind',
287            'configurationkeystr',
288            'configurationkeynum',
289            'condel',
290            'classstr',
291            'classnum',
292            'classidget',
293            'char2num',
294            'beep',
295            'atan',
296            'asin',
297            'ascii2ansi',
298            'any2str',
299            'any2real',
300            'any2int64',
301            'any2int',
302            'any2guid',
303            'any2enum',
304            'any2date',
305            'ansi2ascii',
306            'acos',
307            'abs'
308            ),
309        4 => array( // X++ SQL stuff
310            'where',
311            'update_recordset',
312            'ttsCommit',
313            'ttsBegin',
314            'ttsAbort',
315            'sum',
316            'setting',
317            'select',
318            'reverse',
319            'pessimisticLock',
320            'outer',
321            'order by',
322            'optimisticLock',
323            'notExists',
324            'noFetch',
325            'next',
326            'minof',
327            'maxof',
328            'like',
329            'join',
330            'insert_recordset',
331            'index hint',
332            'index',
333            'group by',
334            'from',
335            'forUpdate',
336            'forceSelectOrder',
337            'forcePlaceholders',
338            'forceNestedLoop',
339            'forceLiterals',
340            'flush',
341            'firstOnly',
342            'firstFast',
343            'exists',
344            'desc',
345            'delete_from',
346            'count',
347            'avg',
348            'asc'
349            )
350        ),
351    'SYMBOLS' => array( // X++ symbols
352        '!',
353        '&',
354        '(',
355        ')',
356        '*',
357        '^',
358        '|',
359        '~',
360        '+',
361        ',',
362        '-',
363        '/',
364        ':',
365        '<',
366        '=',
367        '>',
368        '?',
369        '[',
370        ']',
371        '{',
372        '}'
373        ),
374    'CASE_SENSITIVE' => array(
375        GESHI_COMMENTS => false,
376        1 => false,
377        2 => false,
378        3 => false,
379        4 => false
380        ),
381    'STYLES' => array(
382        'KEYWORDS' => array(
383            1 => 'color: #0000ff;',
384            2 => 'color: #0000ff;',
385            3 => 'color: #0000ff;',
386            4 => 'color: #0000ff;'
387            ),
388        'COMMENTS' => array(
389            1 => 'color: #007f00;',
390            'MULTI' => 'color: #007f00; font-style: italic;'
391            ),
392        'ESCAPE_CHAR' => array(
393            0 => 'color: #000000;'
394            ),
395        'BRACKETS' => array(
396            0 => 'color: #000000;'
397            ),
398        'STRINGS' => array(
399            0 => 'color: #ff0000;'
400            ),
401        'NUMBERS' => array(
402            0 => 'color: #000000;'
403            ),
404        'METHODS' => array(
405            1 => 'color: #000000;',
406            2 => 'color: #000000;'
407            ),
408        'SYMBOLS' => array(
409            0 => 'color: #00007f;'
410            ),
411        'REGEXPS' => array(
412            ),
413        'SCRIPT' => array(
414            )
415        ),
416    'URLS' => array(
417        1 => '',
418        2 => '',
419        3 => '',
420        4 => ''
421        ),
422    'OOLANG' => true,
423    'OBJECT_SPLITTERS' => array(
424        1 => '.',
425        2 => '::'
426        ),
427    'REGEXPS' => array(
428        ),
429    'STRICT_MODE_APPLIES' => GESHI_NEVER,
430    'SCRIPT_DELIMITERS' => array(
431        ),
432    'HIGHLIGHT_STRICT_BLOCK' => array(
433        )
434);
435