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