neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

occam.vim (4316B)


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