Bram Moolenaar | 35c54e5 | 2005-05-20 21:25:31 +0000 | [diff] [blame] | 1 | " Vim syntax file |
Bram Moolenaar | 437df8f | 2006-04-27 21:47:44 +0000 | [diff] [blame] | 2 | " Language: ESTEREL |
| 3 | " Maintainer: Maurizio Tranchero <maurizio.tranchero@polito.it> - <maurizio.tranchero@gmail.com> |
Bram Moolenaar | 446cb83 | 2008-06-24 21:56:24 +0000 | [diff] [blame] | 4 | " Credits: Luca Necchi <luca.necchi@polito.it>, Nikos Andrikos <nick.andrik@gmail.com> |
Bram Moolenaar | 437df8f | 2006-04-27 21:47:44 +0000 | [diff] [blame] | 5 | " First Release: Tue May 17 23:49:39 CEST 2005 |
Bram Moolenaar | 446cb83 | 2008-06-24 21:56:24 +0000 | [diff] [blame] | 6 | " Last Change: Tue May 6 13:29:56 CEST 2008 |
| 7 | " Version: 0.8 |
Bram Moolenaar | 35c54e5 | 2005-05-20 21:25:31 +0000 | [diff] [blame] | 8 | |
Bram Moolenaar | 89bcfda | 2016-08-30 23:26:57 +0200 | [diff] [blame] | 9 | " quit when a syntax file was already loaded |
| 10 | if exists("b:current_syntax") |
Bram Moolenaar | 35c54e5 | 2005-05-20 21:25:31 +0000 | [diff] [blame] | 11 | finish |
| 12 | endif |
| 13 | |
| 14 | " case is significant |
| 15 | syn case ignore |
| 16 | " Esterel Regions |
Bram Moolenaar | 437df8f | 2006-04-27 21:47:44 +0000 | [diff] [blame] | 17 | syn region esterelModule start=/module/ end=/end module/ contains=ALLBUT,esterelModule |
| 18 | syn region esterelLoop start=/loop/ end=/end loop/ contains=ALLBUT,esterelModule |
| 19 | syn region esterelAbort start=/abort/ end=/when/ contains=ALLBUT,esterelModule |
| 20 | syn region esterelAbort start=/weak abort/ end=/when/ contains=ALLBUT,esterelModule |
| 21 | syn region esterelEvery start=/every/ end=/end every/ contains=ALLBUT,esterelModule |
| 22 | syn region esterelIf start=/if/ end=/end if/ contains=ALLBUT,esterelModule |
| 23 | syn region esterelConcurrent transparent start=/\[/ end=/\]/ contains=ALLBUT,esterelModule |
| 24 | syn region esterelIfThen start=/if/ end=/then/ oneline |
Bram Moolenaar | 35c54e5 | 2005-05-20 21:25:31 +0000 | [diff] [blame] | 25 | " Esterel Keywords |
Bram Moolenaar | 437df8f | 2006-04-27 21:47:44 +0000 | [diff] [blame] | 26 | syn keyword esterelIO input output inputoutput constant |
| 27 | syn keyword esterelBoolean and or not xor xnor nor nand |
Bram Moolenaar | 446cb83 | 2008-06-24 21:56:24 +0000 | [diff] [blame] | 28 | syn keyword esterelExpressions mod pre |
Bram Moolenaar | 437df8f | 2006-04-27 21:47:44 +0000 | [diff] [blame] | 29 | syn keyword esterelStatement nothing halt |
| 30 | syn keyword esterelStatement module signal sensor end |
Bram Moolenaar | 35c54e5 | 2005-05-20 21:25:31 +0000 | [diff] [blame] | 31 | syn keyword esterelStatement every do loop abort weak |
| 32 | syn keyword esterelStatement emit present await |
Bram Moolenaar | 437df8f | 2006-04-27 21:47:44 +0000 | [diff] [blame] | 33 | syn keyword esterelStatement pause when immediate |
| 34 | syn keyword esterelStatement if then else case |
| 35 | syn keyword esterelStatement var in run suspend |
| 36 | syn keyword esterelStatement repeat times combine with |
| 37 | syn keyword esterelStatement assert sustain |
| 38 | " check what it is the following |
| 39 | syn keyword esterelStatement relation |
| 40 | syn keyword esterelFunctions function procedure task |
| 41 | syn keyword esterelSysCall call trap exit exec |
Bram Moolenaar | 35c54e5 | 2005-05-20 21:25:31 +0000 | [diff] [blame] | 42 | " Esterel Types |
Bram Moolenaar | 446cb83 | 2008-06-24 21:56:24 +0000 | [diff] [blame] | 43 | syn keyword esterelType integer float bolean |
Bram Moolenaar | 35c54e5 | 2005-05-20 21:25:31 +0000 | [diff] [blame] | 44 | " Esterel Comment |
Bram Moolenaar | 446cb83 | 2008-06-24 21:56:24 +0000 | [diff] [blame] | 45 | syn match esterelComment "%.*$" |
Bram Moolenaar | 35c54e5 | 2005-05-20 21:25:31 +0000 | [diff] [blame] | 46 | " Operators and special characters |
Bram Moolenaar | 446cb83 | 2008-06-24 21:56:24 +0000 | [diff] [blame] | 47 | syn match esterelSpecial ":" |
| 48 | syn match esterelSpecial "<=" |
| 49 | syn match esterelSpecial ">=" |
| 50 | syn match esterelSpecial "+" |
| 51 | syn match esterelSpecial "-" |
| 52 | syn match esterelSpecial "=" |
| 53 | syn match esterelSpecial ";" |
| 54 | syn match esterelSpecial "/" |
| 55 | syn match esterelSpecial "?" |
| 56 | syn match esterelOperator "\[" |
| 57 | syn match esterelOperator "\]" |
| 58 | syn match esterelOperator ":=" |
| 59 | syn match esterelOperator "||" |
| 60 | syn match esterelStatement "\<\(if\|else\)\>" |
| 61 | syn match esterelNone "\<else\s\+if\>$" |
| 62 | syn match esterelNone "\<else\s\+if\>\s" |
Bram Moolenaar | 35c54e5 | 2005-05-20 21:25:31 +0000 | [diff] [blame] | 63 | |
| 64 | " Class Linking |
Bram Moolenaar | 35c54e5 | 2005-05-20 21:25:31 +0000 | [diff] [blame] | 65 | |
Bram Moolenaar | f37506f | 2016-08-31 22:22:10 +0200 | [diff] [blame] | 66 | hi def link esterelStatement Statement |
| 67 | hi def link esterelType Type |
| 68 | hi def link esterelComment Comment |
| 69 | hi def link esterelBoolean Number |
| 70 | hi def link esterelExpressions Number |
| 71 | hi def link esterelIO String |
| 72 | hi def link esterelOperator Type |
| 73 | hi def link esterelSysCall Type |
| 74 | hi def link esterelFunctions Type |
| 75 | hi def link esterelSpecial Special |
Bram Moolenaar | 35c54e5 | 2005-05-20 21:25:31 +0000 | [diff] [blame] | 76 | |
Bram Moolenaar | 35c54e5 | 2005-05-20 21:25:31 +0000 | [diff] [blame] | 77 | |
| 78 | let b:current_syntax = "esterel" |