Merge branch 'master' of http://repo.or.cz/r/msysgit into devel
[msysgit/historical-msysgit.git] / share / vim / vim58 / syntax / lotos.vim
blob3cd83c4d86265d935a6ae7de20f945014ce7a3d1
1 " Vim syntax file
2 " Language:     LOTOS (Language Of Temporal Ordering Specifications, IS8807)
3 " Maintainer:   Daniel Amyot <damyot@csi.uottawa.ca>
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.
10 " For version 5.x: Clear all syntax items
11 " For version 6.x: Quit when a syntax file was already loaded
12 if version < 600
13   syntax clear
14 elseif exists("b:current_syntax")
15   finish
16 endif
18 syn case ignore
20 "Comments in LOTOS are between (* and *)
21 syn region lotosComment start="(\*"  end="\*)" contains=lotosTodo
23 "Operators [], [...], >>, ->, |||, |[...]|, ||, ;, !, ?, :, =, ,, :=
24 syn match  lotosDelimiter       "[][]"
25 syn match  lotosDelimiter       ">>"
26 syn match  lotosDelimiter       "->"
27 syn match  lotosDelimiter       "\[>"
28 syn match  lotosDelimiter       "[|;!?:=,]"
30 "Regular keywords
31 syn keyword lotosStatement      specification endspec process endproc
32 syn keyword lotosStatement      where behaviour behavior
33 syn keyword lotosStatement      any let par accept choice hide of in
34 syn keyword lotosStatement      i stop exit noexit
36 "Operators from the Abstract Data Types in IS8807
37 syn keyword lotosOperator       eq ne succ and or xor implies iff
38 syn keyword lotosOperator       not true false
39 syn keyword lotosOperator       Insert Remove IsIn NotIn Union Ints
40 syn keyword lotosOperator       Minus Includes IsSubsetOf
41 syn keyword lotosOperator       lt le ge gt 0
43 "Sorts in IS8807
44 syn keyword lotosSort           Boolean Bool FBoolean FBool Element
45 syn keyword lotosSort           Set String NaturalNumber Nat HexString
46 syn keyword lotosSort           HexDigit DecString DecDigit
47 syn keyword lotosSort           OctString OctDigit BitString Bit
48 syn keyword lotosSort           Octet OctetString
50 "Keywords for ADTs
51 syn keyword lotosType   type endtype library endlib sorts formalsorts
52 syn keyword lotosType   eqns formaleqns opns formalopns forall ofsort is
53 syn keyword lotosType   for renamedby actualizedby sortnames opnnames
54 syn keyword lotosType   using
56 syn sync lines=250
58 " Define the default highlighting.
59 " For version 5.7 and earlier: only when not done already
60 " For version 5.8 and later: only when an item doesn't have highlighting yet
61 if version >= 508 || !exists("did_lotos_syntax_inits")
62   if version < 508
63     let did_lotos_syntax_inits = 1
64     command -nargs=+ HiLink hi link <args>
65   else
66     command -nargs=+ HiLink hi def link <args>
67   endif
69   HiLink lotosStatement         Statement
70   HiLink lotosProcess           Label
71   HiLink lotosOperator          Operator
72   HiLink lotosSort              Function
73   HiLink lotosType              Type
74   HiLink lotosComment           Comment
75   HiLink lotosDelimiter         String
77   delcommand HiLink
78 endif
80 let b:current_syntax = "lotos"
82 " vim: ts=8