xref: /vim-8.2.3635/runtime/syntax/esterel.vim (revision f37506f6)
1" Vim syntax file
2" Language:			ESTEREL
3" Maintainer:		Maurizio Tranchero <[email protected]> - <[email protected]>
4" Credits:			Luca Necchi	<[email protected]>, Nikos Andrikos <[email protected]>
5" First Release:	Tue May 17 23:49:39 CEST 2005
6" Last Change:		Tue May  6 13:29:56 CEST 2008
7" Version:			0.8
8
9" quit when a syntax file was already loaded
10if exists("b:current_syntax")
11  finish
12endif
13
14" case is significant
15syn case ignore
16" Esterel Regions
17syn region esterelModule					start=/module/		end=/end module/	contains=ALLBUT,esterelModule
18syn region esterelLoop						start=/loop/		end=/end loop/		contains=ALLBUT,esterelModule
19syn region esterelAbort						start=/abort/		end=/when/			contains=ALLBUT,esterelModule
20syn region esterelAbort						start=/weak abort/	end=/when/			contains=ALLBUT,esterelModule
21syn region esterelEvery						start=/every/		end=/end every/		contains=ALLBUT,esterelModule
22syn region esterelIf						start=/if/			end=/end if/		contains=ALLBUT,esterelModule
23syn region esterelConcurrent	transparent start=/\[/			end=/\]/			contains=ALLBUT,esterelModule
24syn region esterelIfThen					start=/if/			end=/then/			oneline
25" Esterel Keywords
26syn keyword esterelIO			input output inputoutput constant
27syn keyword esterelBoolean		and or not xor xnor nor nand
28syn keyword esterelExpressions	mod pre
29syn keyword esterelStatement	nothing halt
30syn keyword esterelStatement	module signal sensor end
31syn keyword esterelStatement	every do loop abort weak
32syn keyword esterelStatement	emit present await
33syn keyword esterelStatement	pause when immediate
34syn keyword esterelStatement	if then else case
35syn keyword esterelStatement	var in  run  suspend
36syn keyword esterelStatement	repeat times combine with
37syn keyword esterelStatement	assert sustain
38" check what it is the following
39syn keyword esterelStatement	relation
40syn keyword esterelFunctions	function procedure task
41syn keyword esterelSysCall		call trap exit exec
42" Esterel Types
43syn keyword esterelType 		integer float bolean
44" Esterel Comment
45syn match esterelComment		"%.*$"
46" Operators and special characters
47syn match esterelSpecial		":"
48syn match esterelSpecial		"<="
49syn match esterelSpecial		">="
50syn match esterelSpecial		"+"
51syn match esterelSpecial		"-"
52syn match esterelSpecial		"="
53syn match esterelSpecial		";"
54syn match esterelSpecial		"/"
55syn match esterelSpecial		"?"
56syn match esterelOperator		"\["
57syn match esterelOperator		"\]"
58syn match esterelOperator		":="
59syn match esterelOperator		"||"
60syn match esterelStatement		"\<\(if\|else\)\>"
61syn match esterelNone			"\<else\s\+if\>$"
62syn match esterelNone			"\<else\s\+if\>\s"
63
64" Class Linking
65
66hi def link esterelStatement		Statement
67hi def link esterelType			Type
68hi def link esterelComment		Comment
69hi def link esterelBoolean		Number
70hi def link esterelExpressions	Number
71hi def link esterelIO			String
72hi def link esterelOperator		Type
73hi def link esterelSysCall		Type
74hi def link esterelFunctions		Type
75hi def link esterelSpecial		Special
76
77
78let b:current_syntax = "esterel"
79