1" Vim syntax file 2" Language: ESTEREL 3" Maintainer: Maurizio Tranchero <maurizio.tranchero@polito.it> - <maurizio.tranchero@gmail.com> 4" Credits: Luca Necchi <luca.necchi@polito.it>, Nikos Andrikos <nick.andrik@gmail.com> 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" 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 pre 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 esterelSpecial "-" 55syn match esterelSpecial "=" 56syn match esterelSpecial ";" 57syn match esterelSpecial "/" 58syn match esterelSpecial "?" 59syn match esterelOperator "\[" 60syn match esterelOperator "\]" 61syn match esterelOperator ":=" 62syn match esterelOperator "||" 63syn match esterelStatement "\<\(if\|else\)\>" 64syn match esterelNone "\<else\s\+if\>$" 65syn match esterelNone "\<else\s\+if\>\s" 66 67" Class Linking 68if version >= 508 || !exists("did_esterel_syntax_inits") 69 if version < 508 70 let did_esterel_syntax_inits = 1 71 command -nargs=+ HiLink hi link <args> 72 else 73 command -nargs=+ HiLink hi def link <args> 74 endif 75 76 HiLink esterelStatement Statement 77 HiLink esterelType Type 78 HiLink esterelComment Comment 79 HiLink esterelBoolean Number 80 HiLink esterelExpressions Number 81 HiLink esterelIO String 82 HiLink esterelOperator Type 83 HiLink esterelSysCall Type 84 HiLink esterelFunctions Type 85 HiLink esterelSpecial Special 86 87 delcommand HiLink 88endif 89 90let b:current_syntax = "esterel" 91