1" Vim syntax file 2" Language: occam 3" Copyright: Fred Barnes <[email protected]>, Mario Schweigler <[email protected]> 4" Maintainer: Mario Schweigler <[email protected]> 5" Last Change: 24 May 2003 6 7" quit when a syntax file was already loaded 8if exists("b:current_syntax") 9 finish 10endif 11 12"{{{ Settings 13" Set shift width for indent 14setlocal shiftwidth=2 15" Set the tab key size to two spaces 16setlocal softtabstop=2 17" Let tab keys always be expanded to spaces 18setlocal expandtab 19 20" Dots are valid in occam identifiers 21setlocal iskeyword+=. 22"}}} 23 24syn case match 25 26syn keyword occamType BYTE BOOL INT INT16 INT32 INT64 REAL32 REAL64 ANY 27syn keyword occamType CHAN DATA OF TYPE TIMER INITIAL VAL PORT MOBILE PLACED 28syn keyword occamType PROCESSOR PACKED RECORD PROTOCOL SHARED ROUND TRUNC 29 30syn keyword occamStructure SEQ PAR IF ALT PRI FORKING PLACE AT 31 32syn keyword occamKeyword PROC IS TRUE FALSE SIZE RECURSIVE REC 33syn keyword occamKeyword RETYPES RESHAPES STEP FROM FOR RESCHEDULE STOP SKIP FORK 34syn keyword occamKeyword FUNCTION VALOF RESULT ELSE CLONE CLAIM 35syn keyword occamBoolean TRUE FALSE 36syn keyword occamRepeat WHILE 37syn keyword occamConditional CASE 38syn keyword occamConstant MOSTNEG MOSTPOS 39 40syn match occamBrackets /\[\|\]/ 41syn match occamParantheses /(\|)/ 42 43syn keyword occamOperator AFTER TIMES MINUS PLUS INITIAL REM AND OR XOR NOT 44syn keyword occamOperator BITAND BITOR BITNOT BYTESIN OFFSETOF 45 46syn match occamOperator /::\|:=\|?\|!/ 47syn match occamOperator /<\|>\|+\|-\|\*\|\/\|\\\|=\|\~/ 48syn match occamOperator /@\|\$\$\|%\|&&\|<&\|&>\|<\]\|\[>\|\^/ 49 50syn match occamSpecialChar /\M**\|*'\|*"\|*#\(\[0-9A-F\]\+\)/ contained 51syn match occamChar /\M\L\='\[^*\]'/ 52syn match occamChar /L'[^']*'/ contains=occamSpecialChar 53 54syn case ignore 55syn match occamTodo /\<todo\>:\=/ contained 56syn match occamNote /\<note\>:\=/ contained 57syn case match 58syn keyword occamNote NOT contained 59 60syn match occamComment /--.*/ contains=occamCommentTitle,occamTodo,occamNote 61syn match occamCommentTitle /--\s*\u\a*\(\s\+\u\a*\)*:/hs=s+2 contained contains=occamTodo,occamNote 62syn match occamCommentTitle /--\s*KROC-LIBRARY\(\.so\|\.a\)\=\s*$/hs=s+2 contained 63syn match occamCommentTitle /--\s*\(KROC-OPTIONS:\|RUN-PARAMETERS:\)/hs=s+2 contained 64 65syn match occamIdentifier /\<[A-Z.][A-Z.0-9]*\>/ 66syn match occamFunction /\<[A-Za-z.][A-Za-z0-9.]*\>/ contained 67 68syn match occamPPIdentifier /##.\{-}\>/ 69 70syn region occamString start=/"/ skip=/\M*"/ end=/"/ contains=occamSpecialChar 71syn region occamCharString start=/'/ end=/'/ contains=occamSpecialChar 72 73syn match occamNumber /\<\d\+\(\.\d\+\(E\(+\|-\)\d\+\)\=\)\=/ 74syn match occamNumber /-\d\+\(\.\d\+\(E\(+\|-\)\d\+\)\=\)\=/ 75syn match occamNumber /#\(\d\|[A-F]\)\+/ 76syn match occamNumber /-#\(\d\|[A-F]\)\+/ 77 78syn keyword occamCDString SHARED EXTERNAL DEFINED NOALIAS NOUSAGE NOT contained 79syn keyword occamCDString FILE LINE PROCESS.PRIORITY OCCAM2.5 contained 80syn keyword occamCDString USER.DEFINED.OPERATORS INITIAL.DECL MOBILES contained 81syn keyword occamCDString BLOCKING.SYSCALLS VERSION NEED.QUAD.ALIGNMENT contained 82syn keyword occamCDString TARGET.CANONICAL TARGET.CPU TARGET.OS TARGET.VENDOR contained 83syn keyword occamCDString TRUE FALSE AND OR contained 84syn match occamCDString /<\|>\|=\|(\|)/ contained 85 86syn region occamCDirective start=/#\(USE\|INCLUDE\|PRAGMA\|DEFINE\|UNDEFINE\|UNDEF\|IF\|ELIF\|ELSE\|ENDIF\|WARNING\|ERROR\|RELAX\)\>/ end=/$/ contains=occamString,occamComment,occamCDString 87 88command -nargs=+ HiLink hi def link <args> 89 90HiLink occamType Type 91HiLink occamKeyword Keyword 92HiLink occamComment Comment 93HiLink occamCommentTitle PreProc 94HiLink occamTodo Todo 95HiLink occamNote Todo 96HiLink occamString String 97HiLink occamCharString String 98HiLink occamNumber Number 99HiLink occamCDirective PreProc 100HiLink occamCDString String 101HiLink occamPPIdentifier PreProc 102HiLink occamBoolean Boolean 103HiLink occamSpecialChar SpecialChar 104HiLink occamChar Character 105HiLink occamStructure Structure 106HiLink occamIdentifier Identifier 107HiLink occamConstant Constant 108HiLink occamOperator Operator 109HiLink occamFunction Ignore 110HiLink occamRepeat Repeat 111HiLink occamConditional Conditional 112HiLink occamBrackets Type 113HiLink occamParantheses Delimiter 114 115delcommand HiLink 116 117let b:current_syntax = "occam" 118 119