forked from aniani/vim
		
	
		
			
	
	
		
			128 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			128 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " Vim syntax file | ||
|  | " Language:     PIC16F84 Assembler (Microchip's microcontroller) | ||
|  | " Maintainer:   Aleksandar Veselinovic <aleksa@cs.cmu.com> | ||
|  | " Last Change:  2003 May 11 | ||
|  | " URL:		http://galeb.etf.bg.ac.yu/~alexa/vim/syntax/pic.vim | ||
|  | " Revision:     1.01 | ||
|  | 
 | ||
|  | " 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 match | ||
|  | syn keyword picTodo NOTE TODO XXX contained | ||
|  | 
 | ||
|  | syn case ignore | ||
|  | 
 | ||
|  | 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 PORTA PORTB | ||
|  | syn keyword picRegister		EEDATA EEADR PCLATH INTCON INDF OPTION_REG PCL | ||
|  | syn keyword picRegister		FSR TRISA TRISB EECON1 EECON2 INTCON OPTION | ||
|  | 
 | ||
|  | 
 | ||
|  | " Register --- bits | ||
|  | 
 | ||
|  | " STATUS | ||
|  | syn keyword picRegisterPart     IRP RP1 RP0 TO PD Z DC C | ||
|  | 
 | ||
|  | " PORTA | ||
|  | syn keyword picRegisterPart     T0CKI | ||
|  | syn match   picRegisterPart     "RA[0-4]" | ||
|  | 
 | ||
|  | " PORTB | ||
|  | syn keyword picRegisterPart     INT | ||
|  | syn match   picRegisterPart     "RB[0-7]" | ||
|  | 
 | ||
|  | " INTCON | ||
|  | syn keyword picRegisterPart     GIE EEIE T0IE INTE RBIE T0IF INTF RBIF | ||
|  | 
 | ||
|  | " OPTION | ||
|  | syn keyword picRegisterPart     RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 | ||
|  | 
 | ||
|  | " EECON2 | ||
|  | syn keyword picRegisterPart     EEIF WRERR WREN WR RD | ||
|  | 
 | ||
|  | " INTCON | ||
|  | syn keyword picRegisterPart     GIE EEIE T0IE INTE RBIE T0IF INTF RBIF | ||
|  | 
 | ||
|  | 
 | ||
|  | " OpCodes... | ||
|  | syn keyword picOpcode  ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF INCFSZ | ||
|  | syn keyword picOpcode  IORWF MOVF MOVWF NOP RLF RRF SUBWF SWAPF XORWF | ||
|  | syn keyword picOpcode  BCF BSF BTFSC BTFSS | ||
|  | syn keyword picOpcode  ADDLW ANDLW CALL CLRWDT GOTO IORLW MOVLW RETFIE | ||
|  | syn keyword picOpcode  RETLW RETURN SLEEP SUBLW XORLW | ||
|  | syn keyword picOpcode  GOTO | ||
|  | 
 | ||
|  | 
 | ||
|  | " Directives | ||
|  | syn keyword picDirective __BADRAM BANKISEL BANKSEL CBLOCK CODE __CONFIG | ||
|  | syn keyword picDirective CONSTANT DATA DB DE DT DW ELSE END ENDC | ||
|  | syn keyword picDirective ENDIF ENDM ENDW EQU ERROR ERRORLEVEL EXITM EXPAND | ||
|  | syn keyword picDirective EXTERN FILL GLOBAL IDATA __IDLOCS IF IFDEF IFNDEF | ||
|  | syn keyword picDirective INCLUDE LIST LOCAL MACRO __MAXRAM MESSG NOEXPAND | ||
|  | syn keyword picDirective NOLIST ORG PAGE PAGESEL PROCESSOR RADIX RES SET | ||
|  | syn keyword picDirective SPACE SUBTITLE TITLE UDATA UDATA_OVR UDATA_SHR | ||
|  | syn keyword picDirective VARIABLE WHILE INCLUDE | ||
|  | syn match picDirective   "#\=UNDEFINE" | ||
|  | syn match picDirective   "#\=INCLUDE" | ||
|  | syn match picDirective   "#\=DEFINE" | ||
|  | 
 | ||
|  | 
 | ||
|  | " 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_pic16f84_syntax_inits") | ||
|  |   if version < 508 | ||
|  |     let did_pic16f84_syntax_inits = 1 | ||
|  |     command -nargs=+ HiLink hi link <args> | ||
|  |   else | ||
|  |     command -nargs=+ HiLink hi def link <args> | ||
|  |   endif | ||
|  | 
 | ||
|  |   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 picASCII		String | ||
|  |   HiLink picBinary		Number | ||
|  |   HiLink picDecimal		Number | ||
|  |   HiLink picHexadecimal		Number | ||
|  |   HiLink picOctal		Number | ||
|  | 
 | ||
|  |   HiLink picIdentifier		Identifier | ||
|  | 
 | ||
|  |   delcommand HiLink | ||
|  | endif | ||
|  | 
 | ||
|  | let b:current_syntax = "pic" | ||
|  | 
 | ||
|  | " vim: ts=8 |