xref: /vim-8.2.3635/runtime/syntax/cupl.vim (revision 6c391a74)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	CUPL
3b6b046b2SBram Moolenaar" Maintainer:	John Cook <[email protected]>
4b6b046b2SBram Moolenaar" Last Change:	2011 Dec 27
5071d4279SBram Moolenaar
689bcfda6SBram Moolenaar" quit when a syntax file was already loaded
789bcfda6SBram Moolenaarif exists("b:current_syntax")
8071d4279SBram Moolenaar  finish
9071d4279SBram Moolenaarendif
10071d4279SBram Moolenaar
11b6b046b2SBram Moolenaarlet s:cpo_save = &cpo
12b6b046b2SBram Moolenaarset cpo&vim
13b6b046b2SBram Moolenaar
14071d4279SBram Moolenaar" this language is oblivious to case.
15071d4279SBram Moolenaarsyn case ignore
16071d4279SBram Moolenaar
17071d4279SBram Moolenaar" A bunch of keywords
18071d4279SBram Moolenaarsyn keyword cuplHeader name partno date revision rev designer company nextgroup=cuplHeaderContents
19071d4279SBram Moolenaarsyn keyword cuplHeader assembly assy location device nextgroup=cuplHeaderContents
20071d4279SBram Moolenaar
21071d4279SBram Moolenaarsyn keyword cuplTodo contained TODO XXX FIXME
22071d4279SBram Moolenaar
23071d4279SBram Moolenaar" cuplHeaderContents uses default highlighting except for numbers
24071d4279SBram Moolenaarsyn match cuplHeaderContents ".\+;"me=e-1 contains=cuplNumber contained
25071d4279SBram Moolenaar
26*6c391a74SBram Moolenaar" String constants
27071d4279SBram Moolenaarsyn region cuplString start=+'+ end=+'+
28071d4279SBram Moolenaarsyn region cuplString start=+"+ end=+"+
29071d4279SBram Moolenaar
30071d4279SBram Moolenaarsyn keyword cuplStatement append condition
31071d4279SBram Moolenaarsyn keyword cuplStatement default else
32071d4279SBram Moolenaarsyn keyword cuplStatement field fld format function fuse
33071d4279SBram Moolenaarsyn keyword cuplStatement group if jump loc
34071d4279SBram Moolenaarsyn keyword cuplStatement macro min node out
35071d4279SBram Moolenaarsyn keyword cuplStatement pin pinnode present table
36071d4279SBram Moolenaarsyn keyword cuplStatement sequence sequenced sequencejk sequencers sequencet
37071d4279SBram Moolenaar
38071d4279SBram Moolenaarsyn keyword cuplFunction log2 log8 log16 log
39071d4279SBram Moolenaar
40071d4279SBram Moolenaar" Valid integer number formats (decimal, binary, octal, hex)
41071d4279SBram Moolenaarsyn match cuplNumber "\<[-+]\=[0-9]\+\>"
42071d4279SBram Moolenaarsyn match cuplNumber "'d'[0-9]\+\>"
43071d4279SBram Moolenaarsyn match cuplNumber "'b'[01x]\+\>"
44071d4279SBram Moolenaarsyn match cuplNumber "'o'[0-7x]\+\>"
45071d4279SBram Moolenaarsyn match cuplNumber "'h'[0-9a-fx]\+\>"
46071d4279SBram Moolenaar
47071d4279SBram Moolenaar" operators
48071d4279SBram Moolenaarsyn match cuplLogicalOperator "[!#&$]"
49071d4279SBram Moolenaarsyn match cuplArithmeticOperator "[-+*/%]"
50071d4279SBram Moolenaarsyn match cuplArithmeticOperator "\*\*"
51071d4279SBram Moolenaarsyn match cuplAssignmentOperator ":\=="
52071d4279SBram Moolenaarsyn match cuplEqualityOperator ":"
53071d4279SBram Moolenaarsyn match cuplTruthTableOperator "=>"
54071d4279SBram Moolenaar
55071d4279SBram Moolenaar" Signal extensions
56071d4279SBram Moolenaarsyn match cuplExtension "\.[as][pr]\>"
57071d4279SBram Moolenaarsyn match cuplExtension "\.oe\>"
58071d4279SBram Moolenaarsyn match cuplExtension "\.oemux\>"
59071d4279SBram Moolenaarsyn match cuplExtension "\.[dlsrjk]\>"
60071d4279SBram Moolenaarsyn match cuplExtension "\.ck\>"
61071d4279SBram Moolenaarsyn match cuplExtension "\.dq\>"
62071d4279SBram Moolenaarsyn match cuplExtension "\.ckmux\>"
63071d4279SBram Moolenaarsyn match cuplExtension "\.tec\>"
64071d4279SBram Moolenaarsyn match cuplExtension "\.cnt\>"
65071d4279SBram Moolenaar
66071d4279SBram Moolenaarsyn match cuplRangeOperator "\.\." contained
67071d4279SBram Moolenaar
68071d4279SBram Moolenaar" match ranges like memadr:[0000..1FFF]
69071d4279SBram Moolenaar" and highlight both the numbers and the .. operator
70071d4279SBram Moolenaarsyn match cuplNumberRange "\<\x\+\.\.\x\+\>" contains=cuplRangeOperator
71071d4279SBram Moolenaar
72071d4279SBram Moolenaar" match vectors of type [name3..0] (decimal numbers only)
73071d4279SBram Moolenaar" but assign them no special highlighting except for the .. operator
74071d4279SBram Moolenaarsyn match cuplBitVector "\<\a\+\d\+\.\.\d\+\>" contains=cuplRangeOperator
75071d4279SBram Moolenaar
76071d4279SBram Moolenaar" other special characters
77071d4279SBram Moolenaarsyn match cuplSpecialChar "[\[\](){},;]"
78071d4279SBram Moolenaar
79071d4279SBram Moolenaar" directives
80071d4279SBram Moolenaar" (define these after cuplOperator so $xxx overrides $)
81071d4279SBram Moolenaarsyn match cuplDirective "\$msg"
82071d4279SBram Moolenaarsyn match cuplDirective "\$macro"
83071d4279SBram Moolenaarsyn match cuplDirective "\$mend"
84071d4279SBram Moolenaarsyn match cuplDirective "\$repeat"
85071d4279SBram Moolenaarsyn match cuplDirective "\$repend"
86071d4279SBram Moolenaarsyn match cuplDirective "\$define"
87071d4279SBram Moolenaarsyn match cuplDirective "\$include"
88071d4279SBram Moolenaar
89071d4279SBram Moolenaar" multi-line comments
90071d4279SBram Moolenaarsyn region cuplComment start=+/\*+ end=+\*/+ contains=cuplNumber,cuplTodo
91071d4279SBram Moolenaar
92071d4279SBram Moolenaarsyn sync minlines=1
93071d4279SBram Moolenaar
94071d4279SBram Moolenaar" Define the default highlighting.
9589bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
96071d4279SBram Moolenaar
97071d4279SBram Moolenaar" The default highlighting.
98f37506f6SBram Moolenaarhi def link cuplHeader	cuplStatement
99f37506f6SBram Moolenaarhi def link cuplLogicalOperator	 cuplOperator
100f37506f6SBram Moolenaarhi def link cuplRangeOperator	 cuplOperator
101f37506f6SBram Moolenaarhi def link cuplArithmeticOperator cuplOperator
102f37506f6SBram Moolenaarhi def link cuplAssignmentOperator cuplOperator
103f37506f6SBram Moolenaarhi def link cuplEqualityOperator	 cuplOperator
104f37506f6SBram Moolenaarhi def link cuplTruthTableOperator cuplOperator
105f37506f6SBram Moolenaarhi def link cuplOperator	cuplStatement
106f37506f6SBram Moolenaarhi def link cuplFunction	cuplStatement
107f37506f6SBram Moolenaarhi def link cuplStatement Statement
108f37506f6SBram Moolenaarhi def link cuplNumberRange cuplNumber
109f37506f6SBram Moolenaarhi def link cuplNumber	  cuplString
110f37506f6SBram Moolenaarhi def link cuplString	String
111f37506f6SBram Moolenaarhi def link cuplComment	Comment
112f37506f6SBram Moolenaarhi def link cuplExtension   cuplSpecial
113f37506f6SBram Moolenaarhi def link cuplSpecialChar cuplSpecial
114f37506f6SBram Moolenaarhi def link cuplSpecial	Special
115f37506f6SBram Moolenaarhi def link cuplDirective PreProc
116f37506f6SBram Moolenaarhi def link cuplTodo	Todo
117071d4279SBram Moolenaar
118071d4279SBram Moolenaar
119071d4279SBram Moolenaarlet b:current_syntax = "cupl"
120b6b046b2SBram Moolenaar
121b6b046b2SBram Moolenaarlet &cpo = s:cpo_save
122b6b046b2SBram Moolenaarunlet s:cpo_save
123b6b046b2SBram Moolenaar
124071d4279SBram Moolenaar" vim:ts=8
125