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