" Vim syntax file " Language: occam " Copyright: Fred Barnes , Mario Schweigler " Maintainer: Mario Schweigler " Last Change: 24 May 2003 if version < 600 syntax clear elseif exists("b:current_syntax") finish endif "{{{ Settings " Set shift width for indent setlocal shiftwidth=2 " Set the tab key size to two spaces setlocal softtabstop=2 " Let tab keys always be expanded to spaces setlocal expandtab " Dots are valid in occam identifiers setlocal iskeyword+=. "}}} syn case match syn keyword occamType BYTE BOOL INT INT16 INT32 INT64 REAL32 REAL64 ANY syn keyword occamType CHAN DATA OF TYPE TIMER INITIAL VAL PORT MOBILE PLACED syn keyword occamType PROCESSOR PACKED RECORD PROTOCOL SHARED ROUND TRUNC syn keyword occamStructure SEQ PAR IF ALT PRI FORKING PLACE AT syn keyword occamKeyword PROC IS TRUE FALSE SIZE RECURSIVE REC syn keyword occamKeyword RETYPES RESHAPES STEP FROM FOR RESCHEDULE STOP SKIP FORK syn keyword occamKeyword FUNCTION VALOF RESULT ELSE CLONE CLAIM syn keyword occamBoolean TRUE FALSE syn keyword occamRepeat WHILE syn keyword occamConditional CASE syn keyword occamConstant MOSTNEG MOSTPOS syn match occamBrackets /\[\|\]/ syn match occamParantheses /(\|)/ syn keyword occamOperator AFTER TIMES MINUS PLUS INITIAL REM AND OR XOR NOT syn keyword occamOperator BITAND BITOR BITNOT BYTESIN OFFSETOF syn match occamOperator /::\|:=\|?\|!/ syn match occamOperator /<\|>\|+\|-\|\*\|\/\|\\\|=\|\~/ syn match occamOperator /@\|\$\$\|%\|&&\|<&\|&>\|<\]\|\[>\|\^/ syn match occamSpecialChar /\M**\|*'\|*"\|*#\(\[0-9A-F\]\+\)/ contained syn match occamChar /\M\L\='\[^*\]'/ syn match occamChar /L'[^']*'/ contains=occamSpecialChar syn case ignore syn match occamTodo /\:\=/ contained syn match occamNote /\:\=/ contained syn case match syn keyword occamNote NOT contained syn match occamComment /--.*/ contains=occamCommentTitle,occamTodo,occamNote syn match occamCommentTitle /--\s*\u\a*\(\s\+\u\a*\)*:/hs=s+2 contained contains=occamTodo,occamNote syn match occamCommentTitle /--\s*KROC-LIBRARY\(\.so\|\.a\)\=\s*$/hs=s+2 contained syn match occamCommentTitle /--\s*\(KROC-OPTIONS:\|RUN-PARAMETERS:\)/hs=s+2 contained syn match occamIdentifier /\<[A-Z.][A-Z.0-9]*\>/ syn match occamFunction /\<[A-Za-z.][A-Za-z0-9.]*\>/ contained syn match occamPPIdentifier /##.\{-}\>/ syn region occamString start=/"/ skip=/\M*"/ end=/"/ contains=occamSpecialChar syn region occamCharString start=/'/ end=/'/ contains=occamSpecialChar syn match occamNumber /\<\d\+\(\.\d\+\(E\(+\|-\)\d\+\)\=\)\=/ syn match occamNumber /-\d\+\(\.\d\+\(E\(+\|-\)\d\+\)\=\)\=/ syn match occamNumber /#\(\d\|[A-F]\)\+/ syn match occamNumber /-#\(\d\|[A-F]\)\+/ syn keyword occamCDString SHARED EXTERNAL DEFINED NOALIAS NOUSAGE NOT contained syn keyword occamCDString FILE LINE PROCESS.PRIORITY OCCAM2.5 contained syn keyword occamCDString USER.DEFINED.OPERATORS INITIAL.DECL MOBILES contained syn keyword occamCDString BLOCKING.SYSCALLS VERSION NEED.QUAD.ALIGNMENT contained syn keyword occamCDString TARGET.CANONICAL TARGET.CPU TARGET.OS TARGET.VENDOR contained syn keyword occamCDString TRUE FALSE AND OR contained syn match occamCDString /<\|>\|=\|(\|)/ contained syn region occamCDirective start=/#\(USE\|INCLUDE\|PRAGMA\|DEFINE\|UNDEFINE\|UNDEF\|IF\|ELIF\|ELSE\|ENDIF\|WARNING\|ERROR\|RELAX\)\>/ end=/$/ contains=occamString,occamComment,occamCDString if version >= 508 || !exists("did_occam_syn_inits") if version < 508 let did_occam_syntax_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link endif HiLink occamType Type HiLink occamKeyword Keyword HiLink occamComment Comment HiLink occamCommentTitle PreProc HiLink occamTodo Todo HiLink occamNote Todo HiLink occamString String HiLink occamCharString String HiLink occamNumber Number HiLink occamCDirective PreProc HiLink occamCDString String HiLink occamPPIdentifier PreProc HiLink occamBoolean Boolean HiLink occamSpecialChar SpecialChar HiLink occamChar Character HiLink occamStructure Structure HiLink occamIdentifier Identifier HiLink occamConstant Constant HiLink occamOperator Operator HiLink occamFunction Ignore HiLink occamRepeat Repeat HiLink occamConditional Conditional HiLink occamBrackets Type HiLink occamParantheses Delimiter delcommand HiLink endif let b:current_syntax = "occam"