forked from aniani/vim
		
	
		
			
	
	
		
			86 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			86 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " Vim syntax file | ||
|  | " Language: Graphviz program | ||
|  | " Maintainer: Matthew Fernandez <matthew.fernandez@gmail.com> | ||
|  | " Last Change: Tue, 28 Jul 2020 17:20:44 -0700 | ||
|  | 
 | ||
|  | if exists("b:current_syntax") | ||
|  |   finish | ||
|  | endif | ||
|  | 
 | ||
|  | let s:cpo_save = &cpo | ||
|  | set cpo&vim | ||
|  | 
 | ||
|  | syn keyword gvArg  ARGC ARGV | ||
|  | syn keyword gvBeg  BEGIN BEG_G N E END END_G | ||
|  | syn keyword gvFunc | ||
|  |   \ graph fstsubg isDirect isStrict isSubg nEdges nNodes nxtsubg subg | ||
|  |   \ degreeOf fstnode indegreeOf isNode isSubnode node nxtnode nxtnode_sg | ||
|  |     \ outDegreeOf subnode | ||
|  |   \ edge edge_sg fstedge fstedge_sg fstin fstin_sg fstout fstout_sg isEdge | ||
|  |     \ isEdge_sg isSubedge nxtedge nxtedge_sg nxtin nxtin_sg nxtout nxtout_sg opp | ||
|  |     \ subedge | ||
|  |   \ freadG fwriteG readG write[] writeG | ||
|  |   \ aget aset clone cloneG compOf copy[] copyA delete[] fstAttr getDflt hasAttr | ||
|  |     \ induce isAttr isIn kindOf lock[] nxtAttr setDflt | ||
|  |   \ canon gsub html index ishtml length llOf match[] rindex split[] sprintf | ||
|  |     \ sscanf strcmp sub substr tokens tolower toupper urOf xOf yOf | ||
|  |   \ closeF openF print[] printf scanf readL | ||
|  |   \ atan2 cos exp log MAX MIN pow sin[] sqrt | ||
|  |   \ in[] unset | ||
|  |   \ colorx exit[] rand srand system | ||
|  | syn keyword gvCons | ||
|  |   \ NULL TV_bfs TV_dfs TV_en TV_flat TV_fwd TV_ne TV_prepostdfs TV_prepostfwd | ||
|  |   \ TV_prepostrev TV_postdfs TV_postfwd tv_postrev TV_rev | ||
|  | syn keyword gvType char double float int long unsigned void | ||
|  |                  \ string | ||
|  |                  \ edge_t graph_t node_t obj_t | ||
|  | syn match   gvVar  | ||
|  |   \ "\$\(\(F\|G\|NG\|O\|T\|tgtname\|tvedge\|tvnext\|tvroot\|tvtype\)\>\)\?\(\<\)\@!" | ||
|  | syn keyword gvWord break continue else for forr if return switch while | ||
|  | 
 | ||
|  | " numbers adapted from c.vim's cNumbers and friends | ||
|  | syn match gvNums      transparent "\<\d\|\.\d" contains=gvNumber,gvFloat,gvOctal | ||
|  | syn match gvNumber    contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>" | ||
|  | syn match gvNumber    contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>" | ||
|  | syn match gvOctal     contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=gvOctalZero | ||
|  | syn match gvOctalZero contained "\<0" | ||
|  | syn match gvFloat     contained "\d\+f" | ||
|  | syn match gvFloat     contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=" | ||
|  | syn match gvFloat     contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" | ||
|  | syn match gvFloat     contained "\d\+e[-+]\=\d\+[fl]\=\>" | ||
|  | 
 | ||
|  | syn region gvString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=gvFormat,gvSpecial extend | ||
|  | syn region gvString start="'" skip="\\\\\|\\'" end="'" contains=gvFormat,gvSpecial extend | ||
|  | 
 | ||
|  | " adapted from c.vim's cFormat for c_no_c99 | ||
|  | syn match gvFormat "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([bdiuoxXDOUfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained | ||
|  | 
 | ||
|  | syn match gvSpecial "\\." contained | ||
|  | 
 | ||
|  | syn region gvCComment   start="//"  skip="\\$" end="$" keepend | ||
|  | syn region gvCPPComment start="#"   skip="\\$" end="$" keepend | ||
|  | syn region gvCXXComment start="/\*" end="\*/" fold | ||
|  | 
 | ||
|  | hi def link gvArg        Identifier | ||
|  | hi def link gvBeg        Keyword | ||
|  | hi def link gvFloat      Number | ||
|  | hi def link gvFunc       Identifier | ||
|  | hi def link gvCons       Number | ||
|  | hi def link gvNumber     Number | ||
|  | hi def link gvType       Type | ||
|  | hi def link gvVar        Statement | ||
|  | hi def link gvWord       Keyword | ||
|  | 
 | ||
|  | hi def link gvString     String | ||
|  | hi def link gvFormat     Special | ||
|  | hi def link gvSpecial    Special | ||
|  | 
 | ||
|  | hi def link gvCComment   Comment | ||
|  | hi def link gvCPPComment Comment | ||
|  | hi def link gvCXXComment Comment | ||
|  | 
 | ||
|  | let b:current_syntax = "gvpr" | ||
|  | 
 | ||
|  | let &cpo = s:cpo_save | ||
|  | unlet s:cpo_save |