blob: 7498364214c028f0f7acdc07e2434cb5f1b7db41 [file] [log] [blame]
Bram Moolenaar35c54e52005-05-20 21:25:31 +00001" Vim syntax file
2" Language: ESTEREL
3" Maintainer: Maurizio Tranchero <mtranchero@yahoo.it>
4" Credits: Luca Necchi <luca.necchi@polito.it>
5" Last Change: Tue May 17 23:49:39 CEST 2005
6" Version: 0.2
7
8" For version 5.x: Clear all syntax items
9" For version 6.x: Quit when a syntax file was already loaded
10if version < 600
11 syntax clear
12elseif exists("b:current_syntax")
13 finish
14endif
15
16" case is significant
17syn case ignore
18" Esterel Regions
19syn region esterelModule start=/module/ end=/end module/ contains=ALLBUT,esterelModule
20syn region esterelLoop start=/loop/ end=/end loop/ contains=ALLBUT,esterelModule
21syn region esterelAbort start=/abort/ end=/end abort/ contains=ALLBUT,esterelModule
22syn region esterelEvery start=/every/ end=/end every/ contains=ALLBUT,esterelModule
23syn region esterelIf start=/if/ end=/end if/ contains=ALLBUT,esterelModule
24"syn region esterelConcurrent start=/\[/ end=/\]/ contains=ALLBUT,esterelModule
25syn region esterelConcurrent transparent start=/\[/ end=/\]/ contains=ALLBUT,esterelModule
26syn region esterelIfThen start=/if/ end=/then/ oneline
27" and weak abort? how to make vim know that start='weak abort'?
28" Esterel Keywords
29syn keyword esterelStatement module signal end
30syn keyword esterelIO input output
31syn keyword esterelStatement every do loop abort weak
32syn keyword esterelStatement emit present await
33syn keyword esterelStatement if then else
34syn keyword esterelBoolean and or not xor xnor nor nand
Bram Moolenaar57657d82006-04-21 22:12:41 +000035"syn keyword esterelOperator \[ \]
Bram Moolenaar35c54e52005-05-20 21:25:31 +000036syn keyword esterelPippo pippo
37" Esterel Types
38syn keyword esterelType integer float bolean
39" Esterel Comment
40syn match esterelComment "%.*$"
41" Operators and special characters
42syn match esterelSpecial ":"
43syn match esterelSpecial ";"
44syn match esterelOperator "\["
45syn match esterelOperator "\]"
46syn match esterelOperator ":="
47syn match esterelStatement "\<\(if\|else\)\>"
48syn match esterelNone "\<else\s\+if\>$"
49syn match esterelNone "\<else\s\+if\>\s"
50
51" Class Linking
52if version >= 508 || !exists("did_esterel_syntax_inits")
53 if version < 508
54 let did_esterel_syntax_inits = 1
55 command -nargs=+ HiLink hi link <args>
56 else
57 command -nargs=+ HiLink hi def link <args>
58 endif
59
60 HiLink esterelStatement Statement
61 HiLink esterelType Type
62 HiLink esterelComment Comment
63 HiLink esterelBoolean Number
64 HiLink esterelIO String
65 HiLink esterelOperator Type
66 HiLink esterelSpecial Special
67
68 delcommand HiLink
69endif
70
71let b:current_syntax = "esterel"