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