blob: ff6e833bc210da7872ad1c4643a4880cb032861d [file] [log] [blame]
Bram Moolenaar56994d22021-04-17 16:31:09 +02001" Vim syntax file
2" Language: Property Specification Language (PSL)
3" Maintainer: Daniel Kho <daniel.kho@logik.haus>
4" Last Changed: 2021 Apr 17 by Daniel Kho
5
6" quit when a syntax file was already loaded
7if exists("b:current_syntax")
8 finish
9endif
10
11" Read in VHDL syntax files
12runtime! syntax/vhdl.vim
13unlet b:current_syntax
14
15let s:cpo_save = &cpo
16set cpo&vim
17
18" case is not significant
19syn case ignore
20
21" Add ! character to keyword recognition.
22setlocal iskeyword+=33
23
24" PSL keywords
25syn keyword pslOperator A AF AG AX
26syn keyword pslOperator E EF EG EX
27syn keyword pslOperator F G U W X X!
28syn keyword pslOperator abort always assert assume async_abort
29syn keyword pslOperator before before! before!_ before_ bit bitvector boolean
30syn keyword pslOperator clock const countones cover
31syn keyword pslOperator default
32syn keyword pslOperator ended eventually!
33syn keyword pslOperator fairness fell for forall
34syn keyword pslOperator hdltype
35syn keyword pslOperator in inf inherit isunknown
36syn keyword pslOperator mutable
37syn keyword pslOperator never next next! next_a next_a! next_e next_e! next_event next_event! next_event_a next_event_a! next_event_e next_event_e! nondet nondet_vector numeric
38syn keyword pslOperator onehot onehot0
39syn keyword pslOperator property prev
40syn keyword pslOperator report restrict restrict! rose
41syn keyword pslOperator sequence stable string strong sync_abort
42syn keyword pslOperator union until until! until!_ until_
43syn keyword pslOperator vmode vpkg vprop vunit
44syn keyword pslOperator within
45"" Common keywords with VHDL
46"syn keyword pslOperator and is not or to
47
48" PSL operators
49syn match pslOperator "=>\||=>"
50syn match pslOperator "<-\|->"
51syn match pslOperator "@"
52
53
54"Modify the following as needed. The trade-off is performance versus functionality.
55syn sync minlines=600
56
57" Define the default highlighting.
58" Only when an item doesn't have highlighting yet
59
60hi def link pslSpecial Special
61hi def link pslStatement Statement
62hi def link pslCharacter Character
63hi def link pslString String
64hi def link pslVector Number
65hi def link pslBoolean Number
66hi def link pslTodo Todo
67hi def link pslFixme Fixme
68hi def link pslComment Comment
69hi def link pslNumber Number
70hi def link pslTime Number
71hi def link pslType Type
72hi def link pslOperator Operator
73hi def link pslError Error
74hi def link pslAttribute Special
75hi def link pslPreProc PreProc
76
77
78let b:current_syntax = "psl"
79
80let &cpo = s:cpo_save
81unlet s:cpo_save
82
83" vim: ts=8