diff runtime/syntax/jal.vim @ 7:3fc0f57ecb91 v7.0001

updated for version 7.0001
author vimboss
date Sun, 13 Jun 2004 20:20:40 +0000
parents
children 43efa4f5a8ea
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/jal.vim
@@ -0,0 +1,249 @@
+" Vim syntax file
+" Language:	JAL
+" Version: 0.1
+" Last Change:	2003 May 11
+" Maintainer:  Mark Gross <mark@thegnar.org>
+" This is a syntax definition for the JAL language.
+" It is based on the Source Forge compiler source code.
+" https://sourceforge.net/projects/jal/
+"
+" TODO test.
+
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+  syntax clear
+elseif exists("b:current_syntax")
+  finish
+endif
+
+syn case ignore
+syn sync lines=250
+
+syn keyword picTodo NOTE TODO XXX contained
+
+syn match picIdentifier "[a-z_$][a-z0-9_$]*"
+syn match picLabel      "^[A-Z_$][A-Z0-9_$]*"
+syn match picLabel      "^[A-Z_$][A-Z0-9_$]*:"me=e-1
+
+syn match picASCII      "A\='.'"
+syn match picBinary     "B'[0-1]\+'"
+syn match picDecimal    "D'\d\+'"
+syn match picDecimal    "\d\+"
+syn match picHexadecimal "0x\x\+"
+syn match picHexadecimal "H'\x\+'"
+syn match picHexadecimal "[0-9]\x*h"
+syn match picOctal      "O'[0-7]\o*'"
+
+syn match picComment    ";.*" contains=picTodo
+
+syn region picString    start=+"+ end=+"+
+
+syn keyword picRegister indf tmr0 pcl status fsr port_a port_b port_c port_d port_e x84_eedata x84_eeadr pclath intcon
+syn keyword picRegister f877_tmr1l   f877_tmr1h   f877_t1con   f877_t2con   f877_ccpr1l  f877_ccpr1h  f877_ccp1con
+syn keyword picRegister f877_pir1    f877_pir2    f877_pie1    f877_adcon1  f877_adcon0  f877_pr2     f877_adresl  f877_adresh
+syn keyword picRegister f877_eeadr   f877_eedath  f877_eeadrh  f877_eedata  f877_eecon1  f877_eecon2  f628_EECON2
+syn keyword picRegister f877_rcsta   f877_txsta   f877_spbrg   f877_txreg   f877_rcreg   f628_EEDATA  f628_EEADR   f628_EECON1
+
+" Register --- bits
+" STATUS
+syn keyword picRegisterPart status_c status_dc status_z status_pd
+syn keyword picRegisterPart status_to status_rp0 status_rp1 status_irp
+
+" pins
+syn keyword picRegisterPart pin_a0 pin_a1 pin_a2 pin_a3 pin_a4 pin_a5
+syn keyword picRegisterPart pin_b0 pin_b1 pin_b2 pin_b3 pin_b4 pin_b5 pin_b6 pin_b7
+syn keyword picRegisterPart pin_c0 pin_c1 pin_c2 pin_c3 pin_c4 pin_c5 pin_c6 pin_c7
+syn keyword picRegisterPart pin_d0 pin_d1 pin_d2 pin_d3 pin_d4 pin_d5 pin_d6 pin_d7
+syn keyword picRegisterPart pin_e0 pin_e1 pin_e2
+
+syn keyword picPortDir port_a_direction  port_b_direction  port_c_direction  port_d_direction  port_e_direction
+
+syn match picPinDir "pin_a[012345]_direction"
+syn match picPinDir "pin_b[01234567]_direction"
+syn match picPinDir "pin_c[01234567]_direction"
+syn match picPinDir "pin_d[01234567]_direction"
+syn match picPinDir "pin_e[012]_direction"
+
+
+" INTCON
+syn keyword picRegisterPart intcon_gie intcon_eeie intcon_peie intcon_t0ie intcon_inte
+syn keyword picRegisterPart intcon_rbie intcon_t0if intcon_intf intcon_rbif
+
+" TIMER
+syn keyword picRegisterPart t1ckps1 t1ckps0 t1oscen t1sync tmr1cs tmr1on tmr1ie tmr1if
+
+"cpp bits
+syn keyword picRegisterPart ccp1x ccp1y
+
+" adcon bits
+syn keyword picRegisterPart adcon0_go adcon0_ch0 adcon0_ch1 adcon0_ch2
+
+" EECON
+syn keyword picRegisterPart  eecon1_rd eecon1_wr eecon1_wren eecon1_wrerr eecon1_eepgd
+syn keyword picRegisterPart f628_eecon1_rd f628_eecon1_wr f628_eecon1_wren f628_eecon1_wrerr
+
+" usart
+syn keyword picRegisterPart tx9 txen sync brgh tx9d
+syn keyword picRegisterPart spen rx9 cren ferr oerr rx9d
+syn keyword picRegisterPart TXIF RCIF
+
+" OpCodes...
+syn keyword picOpcode addlw andlw call clrwdt goto iorlw movlw option retfie retlw return sleep sublw tris
+syn keyword picOpcode xorlw addwf andwf clrf clrw comf decf decfsz incf incfsz retiw iorwf movf movwf nop
+syn keyword picOpcode rlf rrf subwf swapf xorwf bcf bsf btfsc btfss skpz skpnz setz clrz skpc skpnc setc clrc
+syn keyword picOpcode skpdc skpndc setdc clrdc movfw tstf bank page HPAGE mullw mulwf cpfseq cpfsgt cpfslt banka bankb
+
+
+syn keyword jalBoolean		true false
+syn keyword jalBoolean		off on
+syn keyword jalBit		high low
+syn keyword jalConstant		Input Output all_input all_output
+syn keyword jalConditional	if else then elsif end if
+syn keyword jalLabel		goto
+syn keyword jalRepeat		for while forever loop
+syn keyword jalStatement	procedure function
+syn keyword jalStatement	return end volatile const var
+syn keyword jalType		bit byte
+
+syn keyword jalModifier		interrupt assembler asm put get
+syn keyword jalStatement	out in is begin at
+syn keyword jalDirective	pragma jump_table target target_clock target_chip name error test assert
+syn keyword jalPredefined       hs xt rc lp internal 16c84 16f84 16f877 sx18 sx28 12c509a 12c508
+syn keyword jalPredefined       12ce674 16f628 18f252 18f242 18f442 18f452 12f629 12f675 16f88
+syn keyword jalPredefined	16f876 16f873 sx_12 sx18 sx28 pic_12 pic_14 pic_16
+
+syn keyword jalDirective chip osc clock  fuses  cpu watchdog powerup protection
+
+syn keyword jalFunction		bank_0 bank_1 bank_2 bank_3 bank_4 bank_5 bank_6 bank_7 trisa trisb trisc trisd trise
+syn keyword jalFunction		_trisa_flush _trisb_flush _trisc_flush _trisd_flush _trise_flush
+
+syn keyword jalPIC		local idle_loop
+
+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
+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
+
+syn region  jalPsudoVars matchgroup=jalPsudoVarsKey start="\<'put\>" end="/<is/>"  contains=jalComment
+
+syn match  jalStringEscape	contained "#[12][0-9]\=[0-9]\="
+syn match   jalIdentifier		"\<[a-zA-Z_][a-zA-Z0-9_]*\>"
+syn match   jalSymbolOperator		"[+\-/*=]"
+syn match   jalSymbolOperator		"!"
+syn match   jalSymbolOperator		"<"
+syn match   jalSymbolOperator		">"
+syn match   jalSymbolOperator		"<="
+syn match   jalSymbolOperator		">="
+syn match   jalSymbolOperator		"!="
+syn match   jalSymbolOperator		"=="
+syn match   jalSymbolOperator		"<<"
+syn match   jalSymbolOperator		">>"
+syn match   jalSymbolOperator		"|"
+syn match   jalSymbolOperator		"&"
+syn match   jalSymbolOperator		"%"
+syn match   jalSymbolOperator		"?"
+syn match   jalSymbolOperator		"[()]"
+syn match   jalSymbolOperator		"[\^.]"
+syn match   jalLabel			"[\^]*:"
+
+syn match  jalNumber		"-\=\<\d[0-9_]\+\>"
+syn match  jalHexNumber		"0x[0-9A-Fa-f_]\+\>"
+syn match  jalBinNumber		"0b[01_]\+\>"
+
+" String
+"wrong strings
+syn region  jalStringError matchgroup=jalStringError start=+"+ end=+"+ end=+$+ contains=jalStringEscape
+
+"right strings
+syn region  jalString matchgroup=jalString start=+'+ end=+'+ oneline contains=jalStringEscape
+" To see the start and end of strings:
+syn region  jalString matchgroup=jalString start=+"+ end=+"+ oneline contains=jalStringEscapeGPC
+
+syn keyword jalTodo contained	TODO
+syn region jalComment		start=/-- /  end=/$/ oneline contains=jalTodo
+syn region jalComment		start=/--\t/  end=/$/ oneline contains=jalTodo
+syn match  jalComment		/--\_$/
+syn region jalPreProc		start="include"  end=/$/ contains=JalComment,jalToDo
+
+
+if exists("jal_no_tabs")
+	syn match jalShowTab "\t"
+endif
+
+
+" Define the default highlighting.
+" For version 5.7 and earlier: only when not done already
+" For version 5.8 and later: only when an item doesn't have highlighting yet
+if version >= 508 || !exists("did_jal_syn_inits")
+if version < 508
+  let did_jal_syn_inits = 1
+  command -nargs=+ HiLink hi link <args>
+else
+  command -nargs=+ HiLink hi def link <args>
+endif
+
+  HiLink jalAcces		jalStatement
+  HiLink jalBoolean		Boolean
+  HiLink jalBit			Boolean
+  HiLink jalComment		Comment
+  HiLink jalConditional		Conditional
+  HiLink jalConstant		Constant
+  HiLink jalDelimiter		Identifier
+  HiLink jalDirective		PreProc
+  HiLink jalException		Exception
+  HiLink jalFloat		Float
+  HiLink jalFunction		Function
+  HiLink jalPsudoVarsKey	Function
+  HiLink jalLabel		Label
+  HiLink jalMatrixDelimiter	Identifier
+  HiLink jalModifier		Type
+  HiLink jalNumber		Number
+  HiLink jalBinNumber		Number
+  HiLink jalHexNumber		Number
+  HiLink jalOperator		Operator
+  HiLink jalPredefined		Constant
+  HiLink jalPreProc		PreProc
+  HiLink jalRepeat		Repeat
+  HiLink jalStatement		Statement
+  HiLink jalString		String
+  HiLink jalStringEscape	Special
+  HiLink jalStringEscapeGPC	Special
+  HiLink jalStringError		Error
+  HiLink jalStruct		jalStatement
+  HiLink jalSymbolOperator	jalOperator
+  HiLink jalTodo		Todo
+  HiLink jalType		Type
+  HiLink jalUnclassified	Statement
+  HiLink jalAsm			Assembler
+  HiLink jalError		Error
+  HiLink jalAsmKey		Statement
+  HiLink jalPIC			Statement
+
+  HiLink jalShowTab		Error
+
+  HiLink picTodo		Todo
+  HiLink picComment		Comment
+  HiLink picDirective		Statement
+  HiLink picLabel		Label
+  HiLink picString		String
+
+  HiLink picOpcode		Keyword
+  HiLink picRegister		Structure
+  HiLink picRegisterPart	Special
+  HiLink picPinDir		SPecial
+  HiLink picPortDir		SPecial
+
+  HiLink picASCII		String
+  HiLink picBinary		Number
+  HiLink picDecimal		Number
+  HiLink picHexadecimal		Number
+  HiLink picOctal		Number
+
+  HiLink picIdentifier		Identifier
+
+  delcommand HiLink
+endif
+
+
+let b:current_syntax = "jal"
+
+" vim: ts=8 sw=2