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