xref: /vim-8.2.3635/runtime/syntax/lotos.vim (revision f37506f6)
1" Vim syntax file
2" Language:	LOTOS (Language Of Temporal Ordering Specifications, IS8807)
3" Maintainer:	Daniel Amyot <[email protected]>
4" Last Change:	Wed Aug 19 1998
5" URL:		http://lotos.csi.uottawa.ca/~damyot/vim/lotos.vim
6" This file is an adaptation of pascal.vim by Mario Eusebio
7" I'm not sure I understand all of the syntax highlight language,
8" but this file seems to do the job for standard LOTOS.
9
10" quit when a syntax file was already loaded
11if exists("b:current_syntax")
12  finish
13endif
14
15syn case ignore
16
17"Comments in LOTOS are between (* and *)
18syn region lotosComment	start="(\*"  end="\*)" contains=lotosTodo
19
20"Operators [], [...], >>, ->, |||, |[...]|, ||, ;, !, ?, :, =, ,, :=
21syn match  lotosDelimiter       "[][]"
22syn match  lotosDelimiter	">>"
23syn match  lotosDelimiter	"->"
24syn match  lotosDelimiter	"\[>"
25syn match  lotosDelimiter	"[|;!?:=,]"
26
27"Regular keywords
28syn keyword lotosStatement	specification endspec process endproc
29syn keyword lotosStatement	where behaviour behavior
30syn keyword lotosStatement      any let par accept choice hide of in
31syn keyword lotosStatement	i stop exit noexit
32
33"Operators from the Abstract Data Types in IS8807
34syn keyword lotosOperator	eq ne succ and or xor implies iff
35syn keyword lotosOperator	not true false
36syn keyword lotosOperator	Insert Remove IsIn NotIn Union Ints
37syn keyword lotosOperator	Minus Includes IsSubsetOf
38syn keyword lotosOperator	lt le ge gt 0
39
40"Sorts in IS8807
41syn keyword lotosSort		Boolean Bool FBoolean FBool Element
42syn keyword lotosSort		Set String NaturalNumber Nat HexString
43syn keyword lotosSort		HexDigit DecString DecDigit
44syn keyword lotosSort		OctString OctDigit BitString Bit
45syn keyword lotosSort		Octet OctetString
46
47"Keywords for ADTs
48syn keyword lotosType	type endtype library endlib sorts formalsorts
49syn keyword lotosType	eqns formaleqns opns formalopns forall ofsort is
50syn keyword lotosType   for renamedby actualizedby sortnames opnnames
51syn keyword lotosType   using
52
53syn sync lines=250
54
55" Define the default highlighting.
56" Only when an item doesn't have highlighting yet
57
58hi def link lotosStatement		Statement
59hi def link lotosProcess		Label
60hi def link lotosOperator		Operator
61hi def link lotosSort		Function
62hi def link lotosType		Type
63hi def link lotosComment		Comment
64hi def link lotosDelimiter		String
65
66
67let b:current_syntax = "lotos"
68
69" vim: ts=8
70