Install vim73
[msysgit/mtrensch.git] / share / vim / vim73 / syntax / jal.vim
blobd0ba6728510fa976ae05a3e969ec3e817a7c74fd
1 " Vim syntax file
2 " Language:     JAL
3 " Version: 0.1
4 " Last Change:  2003 May 11
5 " Maintainer:  Mark Gross <mark@thegnar.org>
6 " This is a syntax definition for the JAL language.
7 " It is based on the Source Forge compiler source code.
8 " https://sourceforge.net/projects/jal/
10 " TODO test.
12 " For version 5.x: Clear all syntax items
13 " For version 6.x: Quit when a syntax file was already loaded
14 if version < 600
15   syntax clear
16 elseif exists("b:current_syntax")
17   finish
18 endif
20 syn case ignore
21 syn sync lines=250
23 syn keyword picTodo NOTE TODO XXX contained
25 syn match picIdentifier "[a-z_$][a-z0-9_$]*"
26 syn match picLabel      "^[A-Z_$][A-Z0-9_$]*"
27 syn match picLabel      "^[A-Z_$][A-Z0-9_$]*:"me=e-1
29 syn match picASCII      "A\='.'"
30 syn match picBinary     "B'[0-1]\+'"
31 syn match picDecimal    "D'\d\+'"
32 syn match picDecimal    "\d\+"
33 syn match picHexadecimal "0x\x\+"
34 syn match picHexadecimal "H'\x\+'"
35 syn match picHexadecimal "[0-9]\x*h"
36 syn match picOctal      "O'[0-7]\o*'"
38 syn match picComment    ";.*" contains=picTodo
40 syn region picString    start=+"+ end=+"+
42 syn keyword picRegister indf tmr0 pcl status fsr port_a port_b port_c port_d port_e x84_eedata x84_eeadr pclath intcon
43 syn keyword picRegister f877_tmr1l   f877_tmr1h   f877_t1con   f877_t2con   f877_ccpr1l  f877_ccpr1h  f877_ccp1con
44 syn keyword picRegister f877_pir1    f877_pir2    f877_pie1    f877_adcon1  f877_adcon0  f877_pr2     f877_adresl  f877_adresh
45 syn keyword picRegister f877_eeadr   f877_eedath  f877_eeadrh  f877_eedata  f877_eecon1  f877_eecon2  f628_EECON2
46 syn keyword picRegister f877_rcsta   f877_txsta   f877_spbrg   f877_txreg   f877_rcreg   f628_EEDATA  f628_EEADR   f628_EECON1
48 " Register --- bits
49 " STATUS
50 syn keyword picRegisterPart status_c status_dc status_z status_pd
51 syn keyword picRegisterPart status_to status_rp0 status_rp1 status_irp
53 " pins
54 syn keyword picRegisterPart pin_a0 pin_a1 pin_a2 pin_a3 pin_a4 pin_a5
55 syn keyword picRegisterPart pin_b0 pin_b1 pin_b2 pin_b3 pin_b4 pin_b5 pin_b6 pin_b7
56 syn keyword picRegisterPart pin_c0 pin_c1 pin_c2 pin_c3 pin_c4 pin_c5 pin_c6 pin_c7
57 syn keyword picRegisterPart pin_d0 pin_d1 pin_d2 pin_d3 pin_d4 pin_d5 pin_d6 pin_d7
58 syn keyword picRegisterPart pin_e0 pin_e1 pin_e2
60 syn keyword picPortDir port_a_direction  port_b_direction  port_c_direction  port_d_direction  port_e_direction
62 syn match picPinDir "pin_a[012345]_direction"
63 syn match picPinDir "pin_b[01234567]_direction"
64 syn match picPinDir "pin_c[01234567]_direction"
65 syn match picPinDir "pin_d[01234567]_direction"
66 syn match picPinDir "pin_e[012]_direction"
69 " INTCON
70 syn keyword picRegisterPart intcon_gie intcon_eeie intcon_peie intcon_t0ie intcon_inte
71 syn keyword picRegisterPart intcon_rbie intcon_t0if intcon_intf intcon_rbif
73 " TIMER
74 syn keyword picRegisterPart t1ckps1 t1ckps0 t1oscen t1sync tmr1cs tmr1on tmr1ie tmr1if
76 "cpp bits
77 syn keyword picRegisterPart ccp1x ccp1y
79 " adcon bits
80 syn keyword picRegisterPart adcon0_go adcon0_ch0 adcon0_ch1 adcon0_ch2
82 " EECON
83 syn keyword picRegisterPart  eecon1_rd eecon1_wr eecon1_wren eecon1_wrerr eecon1_eepgd
84 syn keyword picRegisterPart f628_eecon1_rd f628_eecon1_wr f628_eecon1_wren f628_eecon1_wrerr
86 " usart
87 syn keyword picRegisterPart tx9 txen sync brgh tx9d
88 syn keyword picRegisterPart spen rx9 cren ferr oerr rx9d
89 syn keyword picRegisterPart TXIF RCIF
91 " OpCodes...
92 syn keyword picOpcode addlw andlw call clrwdt goto iorlw movlw option retfie retlw return sleep sublw tris
93 syn keyword picOpcode xorlw addwf andwf clrf clrw comf decf decfsz incf incfsz retiw iorwf movf movwf nop
94 syn keyword picOpcode rlf rrf subwf swapf xorwf bcf bsf btfsc btfss skpz skpnz setz clrz skpc skpnc setc clrc
95 syn keyword picOpcode skpdc skpndc setdc clrdc movfw tstf bank page HPAGE mullw mulwf cpfseq cpfsgt cpfslt banka bankb
98 syn keyword jalBoolean          true false
99 syn keyword jalBoolean          off on
100 syn keyword jalBit              high low
101 syn keyword jalConstant         Input Output all_input all_output
102 syn keyword jalConditional      if else then elsif end if
103 syn keyword jalLabel            goto
104 syn keyword jalRepeat           for while forever loop
105 syn keyword jalStatement        procedure function
106 syn keyword jalStatement        return end volatile const var
107 syn keyword jalType             bit byte
109 syn keyword jalModifier         interrupt assembler asm put get
110 syn keyword jalStatement        out in is begin at
111 syn keyword jalDirective        pragma jump_table target target_clock target_chip name error test assert
112 syn keyword jalPredefined       hs xt rc lp internal 16c84 16f84 16f877 sx18 sx28 12c509a 12c508
113 syn keyword jalPredefined       12ce674 16f628 18f252 18f242 18f442 18f452 12f629 12f675 16f88
114 syn keyword jalPredefined       16f876 16f873 sx_12 sx18 sx28 pic_12 pic_14 pic_16
116 syn keyword jalDirective chip osc clock  fuses  cpu watchdog powerup protection
118 syn keyword jalFunction         bank_0 bank_1 bank_2 bank_3 bank_4 bank_5 bank_6 bank_7 trisa trisb trisc trisd trise
119 syn keyword jalFunction         _trisa_flush _trisb_flush _trisc_flush _trisd_flush _trise_flush
121 syn keyword jalPIC              local idle_loop
123 syn region  jalAsm              matchgroup=jalAsmKey start="\<assembler\>" end="\<end assembler\>" contains=jalComment,jalPreProc,jalLabel,picIdentifier, picLabel,picASCII,picDecimal,picHexadecimal,picOctal,picComment,picString,picRegister,picRigisterPart,picOpcode,picDirective,jalPIC
124 syn region  jalAsm              matchgroup=jalAsmKey start="\<asm\>" end=/$/ contains=jalComment,jalPreProc,jalLabel,picIdentifier, picLabel,picASCII,picDecimal,picHexadecimal,picOctal,picComment,picString,picRegister,picRigisterPart,picOpcode,picDirective,jalPIC
126 syn region  jalPsudoVars matchgroup=jalPsudoVarsKey start="\<'put\>" end="/<is/>"  contains=jalComment
128 syn match  jalStringEscape      contained "#[12][0-9]\=[0-9]\="
129 syn match   jalIdentifier               "\<[a-zA-Z_][a-zA-Z0-9_]*\>"
130 syn match   jalSymbolOperator           "[+\-/*=]"
131 syn match   jalSymbolOperator           "!"
132 syn match   jalSymbolOperator           "<"
133 syn match   jalSymbolOperator           ">"
134 syn match   jalSymbolOperator           "<="
135 syn match   jalSymbolOperator           ">="
136 syn match   jalSymbolOperator           "!="
137 syn match   jalSymbolOperator           "=="
138 syn match   jalSymbolOperator           "<<"
139 syn match   jalSymbolOperator           ">>"
140 syn match   jalSymbolOperator           "|"
141 syn match   jalSymbolOperator           "&"
142 syn match   jalSymbolOperator           "%"
143 syn match   jalSymbolOperator           "?"
144 syn match   jalSymbolOperator           "[()]"
145 syn match   jalSymbolOperator           "[\^.]"
146 syn match   jalLabel                    "[\^]*:"
148 syn match  jalNumber            "-\=\<\d[0-9_]\+\>"
149 syn match  jalHexNumber         "0x[0-9A-Fa-f_]\+\>"
150 syn match  jalBinNumber         "0b[01_]\+\>"
152 " String
153 "wrong strings
154 syn region  jalStringError matchgroup=jalStringError start=+"+ end=+"+ end=+$+ contains=jalStringEscape
156 "right strings
157 syn region  jalString matchgroup=jalString start=+'+ end=+'+ oneline contains=jalStringEscape
158 " To see the start and end of strings:
159 syn region  jalString matchgroup=jalString start=+"+ end=+"+ oneline contains=jalStringEscapeGPC
161 syn keyword jalTodo contained   TODO
162 syn region jalComment           start=/-- /  end=/$/ oneline contains=jalTodo
163 syn region jalComment           start=/--\t/  end=/$/ oneline contains=jalTodo
164 syn match  jalComment           /--\_$/
165 syn region jalPreProc           start="include"  end=/$/ contains=JalComment,jalToDo
168 if exists("jal_no_tabs")
169         syn match jalShowTab "\t"
170 endif
173 " Define the default highlighting.
174 " For version 5.7 and earlier: only when not done already
175 " For version 5.8 and later: only when an item doesn't have highlighting yet
176 if version >= 508 || !exists("did_jal_syn_inits")
177 if version < 508
178   let did_jal_syn_inits = 1
179   command -nargs=+ HiLink hi link <args>
180 else
181   command -nargs=+ HiLink hi def link <args>
182 endif
184   HiLink jalAcces               jalStatement
185   HiLink jalBoolean             Boolean
186   HiLink jalBit                 Boolean
187   HiLink jalComment             Comment
188   HiLink jalConditional         Conditional
189   HiLink jalConstant            Constant
190   HiLink jalDelimiter           Identifier
191   HiLink jalDirective           PreProc
192   HiLink jalException           Exception
193   HiLink jalFloat               Float
194   HiLink jalFunction            Function
195   HiLink jalPsudoVarsKey        Function
196   HiLink jalLabel               Label
197   HiLink jalMatrixDelimiter     Identifier
198   HiLink jalModifier            Type
199   HiLink jalNumber              Number
200   HiLink jalBinNumber           Number
201   HiLink jalHexNumber           Number
202   HiLink jalOperator            Operator
203   HiLink jalPredefined          Constant
204   HiLink jalPreProc             PreProc
205   HiLink jalRepeat              Repeat
206   HiLink jalStatement           Statement
207   HiLink jalString              String
208   HiLink jalStringEscape        Special
209   HiLink jalStringEscapeGPC     Special
210   HiLink jalStringError         Error
211   HiLink jalStruct              jalStatement
212   HiLink jalSymbolOperator      jalOperator
213   HiLink jalTodo                Todo
214   HiLink jalType                Type
215   HiLink jalUnclassified        Statement
216   HiLink jalAsm                 Assembler
217   HiLink jalError               Error
218   HiLink jalAsmKey              Statement
219   HiLink jalPIC                 Statement
221   HiLink jalShowTab             Error
223   HiLink picTodo                Todo
224   HiLink picComment             Comment
225   HiLink picDirective           Statement
226   HiLink picLabel               Label
227   HiLink picString              String
229   HiLink picOpcode              Keyword
230   HiLink picRegister            Structure
231   HiLink picRegisterPart        Special
232   HiLink picPinDir              SPecial
233   HiLink picPortDir             SPecial
235   HiLink picASCII               String
236   HiLink picBinary              Number
237   HiLink picDecimal             Number
238   HiLink picHexadecimal         Number
239   HiLink picOctal               Number
241   HiLink picIdentifier          Identifier
243   delcommand HiLink
244 endif
247 let b:current_syntax = "jal"
249 " vim: ts=8 sw=2