1" Vim syntax file
2" Language:	CUPL simulation
3" Maintainer:	John Cook <john.cook@kla-tencor.com>
4" Last Change:	2001 Apr 25
5
6" For version 5.x: Clear all syntax items
7" For version 6.x: Quit when a syntax file was already loaded
8if version < 600
9  syntax clear
10elseif exists("b:current_syntax")
11  finish
12endif
13
14" Read the CUPL syntax to start with
15if version < 600
16  source <sfile>:p:h/cupl.vim
17else
18  runtime! syntax/cupl.vim
19  unlet b:current_syntax
20endif
21
22" omit definition-specific stuff
23syn clear cuplStatement
24syn clear cuplFunction
25syn clear cuplLogicalOperator
26syn clear cuplArithmeticOperator
27syn clear cuplAssignmentOperator
28syn clear cuplEqualityOperator
29syn clear cuplTruthTableOperator
30syn clear cuplExtension
31
32" simulation order statement
33syn match  cuplsimOrder "order:" nextgroup=cuplsimOrderSpec skipempty
34syn region cuplsimOrderSpec start="." end=";"me=e-1 contains=cuplComment,cuplsimOrderFormat,cuplBitVector,cuplSpecialChar,cuplLogicalOperator,cuplCommaOperator contained
35
36" simulation base statement
37syn match   cuplsimBase "base:" nextgroup=cuplsimBaseSpec skipempty
38syn region  cuplsimBaseSpec start="." end=";"me=e-1 contains=cuplComment,cuplsimBaseType contained
39syn keyword cuplsimBaseType octal decimal hex contained
40
41" simulation vectors statement
42syn match cuplsimVectors "vectors:"
43
44" simulator format control
45syn match cuplsimOrderFormat "%\d\+\>" contained
46
47" simulator control
48syn match cuplsimStimulus "[10ckpx]\+"
49syn match cuplsimStimulus +'\(\x\|x\)\+'+
50syn match cuplsimOutput "[lhznx*]\+"
51syn match cuplsimOutput +"\x\+"+
52
53syn sync minlines=1
54
55" Define the default highlighting.
56" For version 5.7 and earlier: only when not done already
57" For version 5.8 and later: only when an item doesn't have highlighting yet
58if version >= 508 || !exists("did_cuplsim_syn_inits")
59  if version < 508
60    let did_cuplsim_syn_inits = 1
61    command -nargs=+ HiLink hi link <args>
62  else
63    command -nargs=+ HiLink hi def link <args>
64  endif
65
66  " append to the highlighting links in cupl.vim
67  " The default highlighting.
68  HiLink cuplsimOrder		cuplStatement
69  HiLink cuplsimBase		cuplStatement
70  HiLink cuplsimBaseType	cuplStatement
71  HiLink cuplsimVectors		cuplStatement
72  HiLink cuplsimStimulus	cuplNumber
73  HiLink cuplsimOutput		cuplNumber
74  HiLink cuplsimOrderFormat	cuplNumber
75
76  delcommand HiLink
77endif
78
79let b:current_syntax = "cuplsim"
80" vim:ts=8
81