mirror of
				https://github.com/irmen/prog8.git
				synced 2025-10-31 15:16:13 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			109 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language: Prog8
 | |
| " Maintainer: Elektron72
 | |
| " Latest Revision: 23 March 2021
 | |
| 
 | |
| if exists("b:current_syntax")
 | |
|     finish
 | |
| endif
 | |
| 
 | |
| 
 | |
| syn match prog8Comment ";.*$"
 | |
| 
 | |
| syn region prog8String start=+@\?"+ skip=+\\"+ end=+"+
 | |
| syn region prog8Character start=+@\?'+ skip=+\\'+ end=+'+
 | |
| syn match prog8Number "\<\d\+\>"
 | |
| syn match prog8Number "$\x\+\>"
 | |
| syn match prog8Number "%[01]\+\>"
 | |
| syn keyword prog8Boolean true false
 | |
| syn match prog8Float "\<\d\+\.\d\+\([eE]\d\+\)\?\>"
 | |
| 
 | |
| syn region prog8Expression matchgroup=prog8AddressOp start="@(" end=")"
 | |
|             \ transparent
 | |
| syn match prog8Function "\(\<\(asm\)\?sub\>\s\+\)\@16<=\<\w\+\>"
 | |
| syn match prog8Function "\(extsub\s\+$\x\+\s\+=\s\+\)\@16<=\<\w\+\>"
 | |
| 
 | |
| syn keyword prog8Statement break continue goto return asmsub sub inline
 | |
| syn match prog8Statement "\<\(asm\|rom\)\?sub\>"
 | |
| syn keyword prog8Conditional if else when
 | |
| syn keyword prog8Conditional if_cs if_cc if_vs if_vc if_eq if_z if_ne if_nz
 | |
| syn keyword prog8Conditional if_pl if_pos if_mi if_neg
 | |
| syn keyword prog8Conditional when
 | |
| syn keyword prog8Repeat for while in do until repeat unroll
 | |
| syn match prog8Label "\<\w\+\>:"
 | |
| syn keyword prog8Operator and or to downto as void
 | |
| 
 | |
| syn match prog8Directive "\(^\|\s\)%\(output\|launcher\|zeropage\)\>"
 | |
| syn match prog8Directive "\(^\|\s\)%\(zpreserved\|zpallowed\|address\|encoding\|import\|option\)\>"
 | |
| syn match prog8Directive "\(^\|\s\)%\(align\|asmbinary\|asminclude\|breakpoint\)\>"
 | |
| syn match prog8Directive "\(^\|\s\)%\(asm\|ir\)\>"
 | |
| 
 | |
| syn match prog8Type "\<\%(u\?byte\|u\?word\|float\|str\|bool\|long\|\^\^\)\>"
 | |
| syn region prog8ArrayType matchgroup=prog8Type
 | |
|             \ start="\<\%(u\?byte\|u\?word\|float\|str\|bool\)\[" end="\]"
 | |
|             \ transparent
 | |
| syn keyword prog8StorageClass const
 | |
| syn match prog8StorageClass "\(^\|\s\)\(@zp\|@bank\|@shared\|@split\|@nosplit\|@nozp\|@requirezp\|@align64\|@alignword\|@alignpage\|@dirty\)\>"
 | |
| 
 | |
| syn region prog8Block start="{" end="}" transparent
 | |
| syn region prog8Expression start="(" end=")" transparent
 | |
| syn region prog8Array start="\[" end="\]" transparent
 | |
| 
 | |
| 
 | |
| if !exists("g:prog8_no_highlight_builtins")
 | |
|     runtime! syntax/prog8_builtins.vim
 | |
| endif
 | |
| 
 | |
| 
 | |
| syn region prog8Asm start="\(%asm\)\@16<=\s\+{{" end="}}" contains=
 | |
|             \prog8Comment,
 | |
|             \prog8Character,
 | |
|             \prog8Number,
 | |
|             \prog8AsmIdentifier,
 | |
|             \prog8AsmStatement,
 | |
|             \prog8AsmLabel,
 | |
|             \prog8BuiltInVar,
 | |
|             \prog8BuiltInFunc
 | |
| syn sync match prog8AsmSync groupthere prog8Asm "%asm\s\+{{"
 | |
| 
 | |
| syn keyword prog8AsmIdentifier a x y contained
 | |
| 
 | |
| syn keyword prog8AsmStatement adc and asl bbr bbs bcc bcs beq bit bmi contained
 | |
| syn keyword prog8AsmStatement bne bpl bra brk bvc bvs clc cld cli clv contained
 | |
| syn keyword prog8AsmStatement cmp cpx cpy dec dex dey eor inc inx iny contained
 | |
| syn keyword prog8AsmStatement jmp jsr lda ldx ldy lsr nop ora pha php contained
 | |
| syn keyword prog8AsmStatement phx phy pla plp plx ply rmb rol ror rti contained
 | |
| syn keyword prog8AsmStatement rts sbc sec sed sei smb sta stp stx sty contained
 | |
| syn keyword prog8AsmStatement stz tax tay trb tsb tsx txa txs tya wai contained
 | |
| syn match prog8AsmLabel "^\([-+]\|\(\w\+\.\)*\w\+\)" contained
 | |
| 
 | |
| 
 | |
| hi def link prog8Comment Comment
 | |
| 
 | |
| hi def link prog8String String
 | |
| hi def link prog8Character Character
 | |
| hi def link prog8Number Number
 | |
| hi def link prog8Boolean Boolean
 | |
| hi def link prog8Float Float
 | |
| 
 | |
| hi def link prog8AddressOp Identifier
 | |
| hi def link prog8Function Function
 | |
| 
 | |
| hi def link prog8Statement Statement
 | |
| hi def link prog8Conditional Conditional
 | |
| hi def link prog8Repeat Repeat
 | |
| hi def link prog8Label Label
 | |
| hi def link prog8Operator Operator
 | |
| 
 | |
| hi def link prog8Directive PreProc
 | |
| 
 | |
| hi def link prog8Type Type
 | |
| hi def link prog8StorageClass StorageClass
 | |
| hi def link prog8Structure Structure
 | |
| 
 | |
| 
 | |
| hi def link prog8AsmIdentifier Identifier
 | |
| 
 | |
| hi def link prog8AsmStatement Statement
 | |
| hi def link prog8AsmLabel Label
 |