1<?php
2/*************************************************************************************
3 * pic16.php
4 * -------
5 * Author: Phil Mattison (mattison@ohmikron.com)
6 * Copyright: (c) 2008 Ohmikron Corp. (http://www.ohmikron.com/)
7 * Release Version: 1.0.9.1
8 * Date Started: 2008/07/30
9 *
10 * PIC16 Assembler language file for GeSHi.
11 *
12 * CHANGES
13 * -------
14 * 2008/07/30 (1.0.8)
15 *   -  First Release
16 *
17 * TODO (updated 2008/07/30)
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' => 'PIC16',
42    'COMMENT_SINGLE' => array(1 => ';'),
43    'COMMENT_MULTI' => array(),
44    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
45    'QUOTEMARKS' => array("'", '"'),
46    'ESCAPE_CHAR' => '\\',
47    'KEYWORDS' => array(
48        /*Instructions*/
49        1 => array(
50            'addcf','adddcf','addlw','addwf','andlw','andwf','bc','bcf','bdc',
51            'bnc','bndc','bnz','bsf','btfsc','btfss','bz','call','clrc','clrdc',
52            'clrf','clrw','clrwdt','clrz','comf','decf','goto','incf','incfsz',
53            'iorlw','iorwf','lcall','lgoto','movf','movfw','movlw','movwf',
54            'option','negf','nop','retfie','retlw','return','rlf','rrf','setc',
55            'setdc','setz','skpc','skpdc','skpnc','skpndc','skpnz','skpz',
56            'sleep','subcf','subdcf','sublw','subwf','swapf','tris','tstf',
57            'xorlw','xorwf'
58            ),
59        /*Registers*/
60        2 => array(
61            'INDF','TMR0','OPTION','PCL','STATUS','FSR','PORTA','PORTB','PORTC',
62            'PORTD','PORTE','PORTF','TRISA','TRISB','TRISC','TRISD','TRISE',
63            'TRISF','PCLATH','INTCON','PIR1','PIE1','PCON','CMCON','VRCON',
64            'F','W'
65            ),
66        /*Directives*/
67        3 => array(
68            '_BADRAM','BANKISEL','BANKSEL','CBLOCK','CODE','_CONFIG','CONSTANT',
69            'DA','DATA','DB','DE','#DEFINE','DT','DW','ELSE','END','ENDC',
70            'ENDIF','ENDM','ENDW','EQU','ERROR','ERRORLEVEL','EXITM','EXPAND',
71            'EXTERN','FILL','GLOBAL','IDATA','_IDLOCS','IF','IFDEF','IFNDEF',
72            'INCLUDE','#INCLUDE','LIST','LOCAL','MACRO','_MAXRAM','MESSG',
73            'NOEXPAND','NOLIST','ORG','PAGE','PAGESEL','PROCESSOR','RADIX',
74            'RES','SET','SPACE','SUBTITLE','TITLE','UDATA','UDATA_ACS',
75            'UDATA_OVR','UDATA_SHR','#UNDEFINE','VARIABLE','WHILE',
76            'D','H','O','B','A'
77            ),
78        ),
79    'SYMBOLS' => array('=','.',',',':'),
80    'CASE_SENSITIVE' => array(
81        GESHI_COMMENTS => false,
82        1 => false,
83        2 => false,
84        3 => false
85        ),
86    'STYLES' => array(
87        'KEYWORDS' => array(
88            1 => 'color: #0000a0; font-weight: bold;',
89            2 => 'color: #aa3300; font-weight: bold;',
90            3 => 'color: #0000ff;',
91            ),
92        'COMMENTS' => array(
93            1 => 'color: #00a000;'
94            ),
95        'ESCAPE_CHAR' => array(
96            0 => 'color: #ff0000;'
97            ),
98        'BRACKETS' => array(
99            0 => 'color: #0000ff;'
100            ),
101        'STRINGS' => array(
102            0 => 'color: #ff7700;'
103            ),
104        'NUMBERS' => array(
105            0 => 'color: #ff7700;'
106            ),
107        'METHODS' => array(
108            ),
109        'SYMBOLS' => array(
110            0 => 'color: #7777ff;'
111            ),
112        'REGEXPS' => array(),
113        'SCRIPT' => array()
114        ),
115    'URLS' => array(
116        1 => '',
117        2 => '',
118        3 => ''
119        ),
120    'OOLANG' => false,
121    'OBJECT_SPLITTERS' => array(),
122    'NUMBERS' =>
123        GESHI_NUMBER_INT_BASIC |
124        GESHI_NUMBER_BIN_SUFFIX |
125        GESHI_NUMBER_HEX_PREFIX |
126        GESHI_NUMBER_HEX_SUFFIX,
127    'REGEXPS' => array(
128        ),
129    'STRICT_MODE_APPLIES' => GESHI_NEVER,
130    'SCRIPT_DELIMITERS' => array(),
131    'HIGHLIGHT_STRICT_BLOCK' => array(),
132    'TAB_WIDTH' => 4,
133    'PARSER_CONTROL' => array(
134        'KEYWORDS' => array(
135            'DISALLOWED_BEFORE' => "a-zA-Z0-9\$_\|\#>|^",
136            'DISALLOWED_AFTER' => "a-zA-Z0-9_<\|%"
137            )
138        )
139);
140