xref: /vim-8.2.3635/runtime/syntax/esterel.vim (revision f37506f6)
135c54e56SBram Moolenaar" Vim syntax file
235c54e56SBram Moolenaar" Language:			ESTEREL
3437df8f4SBram Moolenaar" Maintainer:		Maurizio Tranchero <[email protected]> - <[email protected]>
4446cb837SBram Moolenaar" Credits:			Luca Necchi	<[email protected]>, Nikos Andrikos <[email protected]>
5437df8f4SBram Moolenaar" First Release:	Tue May 17 23:49:39 CEST 2005
6446cb837SBram Moolenaar" Last Change:		Tue May  6 13:29:56 CEST 2008
7446cb837SBram Moolenaar" Version:			0.8
835c54e56SBram Moolenaar
989bcfda6SBram Moolenaar" quit when a syntax file was already loaded
1089bcfda6SBram Moolenaarif exists("b:current_syntax")
1135c54e56SBram Moolenaar  finish
1235c54e56SBram Moolenaarendif
1335c54e56SBram Moolenaar
1435c54e56SBram Moolenaar" case is significant
1535c54e56SBram Moolenaarsyn case ignore
1635c54e56SBram Moolenaar" Esterel Regions
1735c54e56SBram Moolenaarsyn region esterelModule					start=/module/		end=/end module/	contains=ALLBUT,esterelModule
1835c54e56SBram Moolenaarsyn region esterelLoop						start=/loop/		end=/end loop/		contains=ALLBUT,esterelModule
19437df8f4SBram Moolenaarsyn region esterelAbort						start=/abort/		end=/when/			contains=ALLBUT,esterelModule
20437df8f4SBram Moolenaarsyn region esterelAbort						start=/weak abort/	end=/when/			contains=ALLBUT,esterelModule
2135c54e56SBram Moolenaarsyn region esterelEvery						start=/every/		end=/end every/		contains=ALLBUT,esterelModule
2235c54e56SBram Moolenaarsyn region esterelIf						start=/if/			end=/end if/		contains=ALLBUT,esterelModule
2335c54e56SBram Moolenaarsyn region esterelConcurrent	transparent start=/\[/			end=/\]/			contains=ALLBUT,esterelModule
2435c54e56SBram Moolenaarsyn region esterelIfThen					start=/if/			end=/then/			oneline
2535c54e56SBram Moolenaar" Esterel Keywords
26437df8f4SBram Moolenaarsyn keyword esterelIO			input output inputoutput constant
27437df8f4SBram Moolenaarsyn keyword esterelBoolean		and or not xor xnor nor nand
28446cb837SBram Moolenaarsyn keyword esterelExpressions	mod pre
29437df8f4SBram Moolenaarsyn keyword esterelStatement	nothing halt
30437df8f4SBram Moolenaarsyn keyword esterelStatement	module signal sensor end
3135c54e56SBram Moolenaarsyn keyword esterelStatement	every do loop abort weak
3235c54e56SBram Moolenaarsyn keyword esterelStatement	emit present await
33437df8f4SBram Moolenaarsyn keyword esterelStatement	pause when immediate
34437df8f4SBram Moolenaarsyn keyword esterelStatement	if then else case
35437df8f4SBram Moolenaarsyn keyword esterelStatement	var in  run  suspend
36437df8f4SBram Moolenaarsyn keyword esterelStatement	repeat times combine with
37437df8f4SBram Moolenaarsyn keyword esterelStatement	assert sustain
38437df8f4SBram Moolenaar" check what it is the following
39437df8f4SBram Moolenaarsyn keyword esterelStatement	relation
40437df8f4SBram Moolenaarsyn keyword esterelFunctions	function procedure task
41437df8f4SBram Moolenaarsyn keyword esterelSysCall		call trap exit exec
4235c54e56SBram Moolenaar" Esterel Types
4335c54e56SBram Moolenaarsyn keyword esterelType 		integer float bolean
4435c54e56SBram Moolenaar" Esterel Comment
4535c54e56SBram Moolenaarsyn match esterelComment		"%.*$"
4635c54e56SBram Moolenaar" Operators and special characters
4735c54e56SBram Moolenaarsyn match esterelSpecial		":"
48437df8f4SBram Moolenaarsyn match esterelSpecial		"<="
49437df8f4SBram Moolenaarsyn match esterelSpecial		">="
50446cb837SBram Moolenaarsyn match esterelSpecial		"+"
51446cb837SBram Moolenaarsyn match esterelSpecial		"-"
52446cb837SBram Moolenaarsyn match esterelSpecial		"="
5335c54e56SBram Moolenaarsyn match esterelSpecial		";"
54446cb837SBram Moolenaarsyn match esterelSpecial		"/"
55446cb837SBram Moolenaarsyn match esterelSpecial		"?"
5635c54e56SBram Moolenaarsyn match esterelOperator		"\["
5735c54e56SBram Moolenaarsyn match esterelOperator		"\]"
5835c54e56SBram Moolenaarsyn match esterelOperator		":="
59446cb837SBram Moolenaarsyn match esterelOperator		"||"
6035c54e56SBram Moolenaarsyn match esterelStatement		"\<\(if\|else\)\>"
6135c54e56SBram Moolenaarsyn match esterelNone			"\<else\s\+if\>$"
6235c54e56SBram Moolenaarsyn match esterelNone			"\<else\s\+if\>\s"
6335c54e56SBram Moolenaar
6435c54e56SBram Moolenaar" Class Linking
6535c54e56SBram Moolenaar
66*f37506f6SBram Moolenaarhi def link esterelStatement		Statement
67*f37506f6SBram Moolenaarhi def link esterelType			Type
68*f37506f6SBram Moolenaarhi def link esterelComment		Comment
69*f37506f6SBram Moolenaarhi def link esterelBoolean		Number
70*f37506f6SBram Moolenaarhi def link esterelExpressions	Number
71*f37506f6SBram Moolenaarhi def link esterelIO			String
72*f37506f6SBram Moolenaarhi def link esterelOperator		Type
73*f37506f6SBram Moolenaarhi def link esterelSysCall		Type
74*f37506f6SBram Moolenaarhi def link esterelFunctions		Type
75*f37506f6SBram Moolenaarhi def link esterelSpecial		Special
7635c54e56SBram Moolenaar
7735c54e56SBram Moolenaar
7835c54e56SBram Moolenaarlet b:current_syntax = "esterel"
79