xref: /vim-8.2.3635/runtime/syntax/gvpr.vim (revision 2346a637)
1*2346a637SBram Moolenaar" Vim syntax file
2*2346a637SBram Moolenaar" Language: Graphviz program
3*2346a637SBram Moolenaar" Maintainer: Matthew Fernandez <[email protected]>
4*2346a637SBram Moolenaar" Last Change: Tue, 28 Jul 2020 17:20:44 -0700
5*2346a637SBram Moolenaar
6*2346a637SBram Moolenaarif exists("b:current_syntax")
7*2346a637SBram Moolenaar  finish
8*2346a637SBram Moolenaarendif
9*2346a637SBram Moolenaar
10*2346a637SBram Moolenaarlet s:cpo_save = &cpo
11*2346a637SBram Moolenaarset cpo&vim
12*2346a637SBram Moolenaar
13*2346a637SBram Moolenaarsyn keyword gvArg  ARGC ARGV
14*2346a637SBram Moolenaarsyn keyword gvBeg  BEGIN BEG_G N E END END_G
15*2346a637SBram Moolenaarsyn keyword gvFunc
16*2346a637SBram Moolenaar  \ graph fstsubg isDirect isStrict isSubg nEdges nNodes nxtsubg subg
17*2346a637SBram Moolenaar  \ degreeOf fstnode indegreeOf isNode isSubnode node nxtnode nxtnode_sg
18*2346a637SBram Moolenaar    \ outDegreeOf subnode
19*2346a637SBram Moolenaar  \ edge edge_sg fstedge fstedge_sg fstin fstin_sg fstout fstout_sg isEdge
20*2346a637SBram Moolenaar    \ isEdge_sg isSubedge nxtedge nxtedge_sg nxtin nxtin_sg nxtout nxtout_sg opp
21*2346a637SBram Moolenaar    \ subedge
22*2346a637SBram Moolenaar  \ freadG fwriteG readG write[] writeG
23*2346a637SBram Moolenaar  \ aget aset clone cloneG compOf copy[] copyA delete[] fstAttr getDflt hasAttr
24*2346a637SBram Moolenaar    \ induce isAttr isIn kindOf lock[] nxtAttr setDflt
25*2346a637SBram Moolenaar  \ canon gsub html index ishtml length llOf match[] rindex split[] sprintf
26*2346a637SBram Moolenaar    \ sscanf strcmp sub substr tokens tolower toupper urOf xOf yOf
27*2346a637SBram Moolenaar  \ closeF openF print[] printf scanf readL
28*2346a637SBram Moolenaar  \ atan2 cos exp log MAX MIN pow sin[] sqrt
29*2346a637SBram Moolenaar  \ in[] unset
30*2346a637SBram Moolenaar  \ colorx exit[] rand srand system
31*2346a637SBram Moolenaarsyn keyword gvCons
32*2346a637SBram Moolenaar  \ NULL TV_bfs TV_dfs TV_en TV_flat TV_fwd TV_ne TV_prepostdfs TV_prepostfwd
33*2346a637SBram Moolenaar  \ TV_prepostrev TV_postdfs TV_postfwd tv_postrev TV_rev
34*2346a637SBram Moolenaarsyn keyword gvType char double float int long unsigned void
35*2346a637SBram Moolenaar                 \ string
36*2346a637SBram Moolenaar                 \ edge_t graph_t node_t obj_t
37*2346a637SBram Moolenaarsyn match   gvVar
38*2346a637SBram Moolenaar  \ "\$\(\(F\|G\|NG\|O\|T\|tgtname\|tvedge\|tvnext\|tvroot\|tvtype\)\>\)\?\(\<\)\@!"
39*2346a637SBram Moolenaarsyn keyword gvWord break continue else for forr if return switch while
40*2346a637SBram Moolenaar
41*2346a637SBram Moolenaar" numbers adapted from c.vim's cNumbers and friends
42*2346a637SBram Moolenaarsyn match gvNums      transparent "\<\d\|\.\d" contains=gvNumber,gvFloat,gvOctal
43*2346a637SBram Moolenaarsyn match gvNumber    contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
44*2346a637SBram Moolenaarsyn match gvNumber    contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
45*2346a637SBram Moolenaarsyn match gvOctal     contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=gvOctalZero
46*2346a637SBram Moolenaarsyn match gvOctalZero contained "\<0"
47*2346a637SBram Moolenaarsyn match gvFloat     contained "\d\+f"
48*2346a637SBram Moolenaarsyn match gvFloat     contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
49*2346a637SBram Moolenaarsyn match gvFloat     contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
50*2346a637SBram Moolenaarsyn match gvFloat     contained "\d\+e[-+]\=\d\+[fl]\=\>"
51*2346a637SBram Moolenaar
52*2346a637SBram Moolenaarsyn region gvString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=gvFormat,gvSpecial extend
53*2346a637SBram Moolenaarsyn region gvString start="'" skip="\\\\\|\\'" end="'" contains=gvFormat,gvSpecial extend
54*2346a637SBram Moolenaar
55*2346a637SBram Moolenaar" adapted from c.vim's cFormat for c_no_c99
56*2346a637SBram Moolenaarsyn match gvFormat "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([bdiuoxXDOUfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
57*2346a637SBram Moolenaar
58*2346a637SBram Moolenaarsyn match gvSpecial "\\." contained
59*2346a637SBram Moolenaar
60*2346a637SBram Moolenaarsyn region gvCComment   start="//"  skip="\\$" end="$" keepend
61*2346a637SBram Moolenaarsyn region gvCPPComment start="#"   skip="\\$" end="$" keepend
62*2346a637SBram Moolenaarsyn region gvCXXComment start="/\*" end="\*/" fold
63*2346a637SBram Moolenaar
64*2346a637SBram Moolenaarhi def link gvArg        Identifier
65*2346a637SBram Moolenaarhi def link gvBeg        Keyword
66*2346a637SBram Moolenaarhi def link gvFloat      Number
67*2346a637SBram Moolenaarhi def link gvFunc       Identifier
68*2346a637SBram Moolenaarhi def link gvCons       Number
69*2346a637SBram Moolenaarhi def link gvNumber     Number
70*2346a637SBram Moolenaarhi def link gvType       Type
71*2346a637SBram Moolenaarhi def link gvVar        Statement
72*2346a637SBram Moolenaarhi def link gvWord       Keyword
73*2346a637SBram Moolenaar
74*2346a637SBram Moolenaarhi def link gvString     String
75*2346a637SBram Moolenaarhi def link gvFormat     Special
76*2346a637SBram Moolenaarhi def link gvSpecial    Special
77*2346a637SBram Moolenaar
78*2346a637SBram Moolenaarhi def link gvCComment   Comment
79*2346a637SBram Moolenaarhi def link gvCPPComment Comment
80*2346a637SBram Moolenaarhi def link gvCXXComment Comment
81*2346a637SBram Moolenaar
82*2346a637SBram Moolenaarlet b:current_syntax = "gvpr"
83*2346a637SBram Moolenaar
84*2346a637SBram Moolenaarlet &cpo = s:cpo_save
85*2346a637SBram Moolenaarunlet s:cpo_save
86