xref: /vim-8.2.3635/runtime/syntax/occam.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	occam
3071d4279SBram Moolenaar" Copyright:	Fred Barnes <[email protected]>, Mario Schweigler <[email protected]>
4071d4279SBram Moolenaar" Maintainer:	Mario Schweigler <[email protected]>
5071d4279SBram Moolenaar" Last Change:	24 May 2003
6071d4279SBram Moolenaar
789bcfda6SBram Moolenaar" quit when a syntax file was already loaded
889bcfda6SBram Moolenaarif exists("b:current_syntax")
9071d4279SBram Moolenaar  finish
10071d4279SBram Moolenaarendif
11071d4279SBram Moolenaar
12071d4279SBram Moolenaar"{{{  Settings
13071d4279SBram Moolenaar" Set shift width for indent
14071d4279SBram Moolenaarsetlocal shiftwidth=2
15071d4279SBram Moolenaar" Set the tab key size to two spaces
16071d4279SBram Moolenaarsetlocal softtabstop=2
17071d4279SBram Moolenaar" Let tab keys always be expanded to spaces
18071d4279SBram Moolenaarsetlocal expandtab
19071d4279SBram Moolenaar
20071d4279SBram Moolenaar" Dots are valid in occam identifiers
21071d4279SBram Moolenaarsetlocal iskeyword+=.
22071d4279SBram Moolenaar"}}}
23071d4279SBram Moolenaar
24071d4279SBram Moolenaarsyn case match
25071d4279SBram Moolenaar
26071d4279SBram Moolenaarsyn keyword occamType		BYTE BOOL INT INT16 INT32 INT64 REAL32 REAL64 ANY
27071d4279SBram Moolenaarsyn keyword occamType		CHAN DATA OF TYPE TIMER INITIAL VAL PORT MOBILE PLACED
28071d4279SBram Moolenaarsyn keyword occamType		PROCESSOR PACKED RECORD PROTOCOL SHARED ROUND TRUNC
29071d4279SBram Moolenaar
30071d4279SBram Moolenaarsyn keyword occamStructure	SEQ PAR IF ALT PRI FORKING PLACE AT
31071d4279SBram Moolenaar
32071d4279SBram Moolenaarsyn keyword occamKeyword	PROC IS TRUE FALSE SIZE RECURSIVE REC
33071d4279SBram Moolenaarsyn keyword occamKeyword	RETYPES RESHAPES STEP FROM FOR RESCHEDULE STOP SKIP FORK
34071d4279SBram Moolenaarsyn keyword occamKeyword	FUNCTION VALOF RESULT ELSE CLONE CLAIM
35071d4279SBram Moolenaarsyn keyword occamBoolean	TRUE FALSE
36071d4279SBram Moolenaarsyn keyword occamRepeat		WHILE
37071d4279SBram Moolenaarsyn keyword occamConditional	CASE
38071d4279SBram Moolenaarsyn keyword occamConstant	MOSTNEG MOSTPOS
39071d4279SBram Moolenaar
40071d4279SBram Moolenaarsyn match occamBrackets		/\[\|\]/
41071d4279SBram Moolenaarsyn match occamParantheses	/(\|)/
42071d4279SBram Moolenaar
43071d4279SBram Moolenaarsyn keyword occamOperator	AFTER TIMES MINUS PLUS INITIAL REM AND OR XOR NOT
44071d4279SBram Moolenaarsyn keyword occamOperator	BITAND BITOR BITNOT BYTESIN OFFSETOF
45071d4279SBram Moolenaar
46071d4279SBram Moolenaarsyn match occamOperator		/::\|:=\|?\|!/
47071d4279SBram Moolenaarsyn match occamOperator		/<\|>\|+\|-\|\*\|\/\|\\\|=\|\~/
48071d4279SBram Moolenaarsyn match occamOperator		/@\|\$\$\|%\|&&\|<&\|&>\|<\]\|\[>\|\^/
49071d4279SBram Moolenaar
50071d4279SBram Moolenaarsyn match occamSpecialChar	/\M**\|*'\|*"\|*#\(\[0-9A-F\]\+\)/ contained
51071d4279SBram Moolenaarsyn match occamChar		/\M\L\='\[^*\]'/
52071d4279SBram Moolenaarsyn match occamChar		/L'[^']*'/ contains=occamSpecialChar
53071d4279SBram Moolenaar
54071d4279SBram Moolenaarsyn case ignore
55071d4279SBram Moolenaarsyn match occamTodo		/\<todo\>:\=/ contained
56071d4279SBram Moolenaarsyn match occamNote		/\<note\>:\=/ contained
57071d4279SBram Moolenaarsyn case match
58071d4279SBram Moolenaarsyn keyword occamNote		NOT contained
59071d4279SBram Moolenaar
60071d4279SBram Moolenaarsyn match occamComment		/--.*/ contains=occamCommentTitle,occamTodo,occamNote
61071d4279SBram Moolenaarsyn match occamCommentTitle	/--\s*\u\a*\(\s\+\u\a*\)*:/hs=s+2 contained contains=occamTodo,occamNote
62071d4279SBram Moolenaarsyn match occamCommentTitle	/--\s*KROC-LIBRARY\(\.so\|\.a\)\=\s*$/hs=s+2 contained
63071d4279SBram Moolenaarsyn match occamCommentTitle	/--\s*\(KROC-OPTIONS:\|RUN-PARAMETERS:\)/hs=s+2 contained
64071d4279SBram Moolenaar
65071d4279SBram Moolenaarsyn match occamIdentifier	/\<[A-Z.][A-Z.0-9]*\>/
66071d4279SBram Moolenaarsyn match occamFunction		/\<[A-Za-z.][A-Za-z0-9.]*\>/ contained
67071d4279SBram Moolenaar
68071d4279SBram Moolenaarsyn match occamPPIdentifier	/##.\{-}\>/
69071d4279SBram Moolenaar
70071d4279SBram Moolenaarsyn region occamString		start=/"/ skip=/\M*"/ end=/"/ contains=occamSpecialChar
71071d4279SBram Moolenaarsyn region occamCharString	start=/'/ end=/'/ contains=occamSpecialChar
72071d4279SBram Moolenaar
73071d4279SBram Moolenaarsyn match occamNumber		/\<\d\+\(\.\d\+\(E\(+\|-\)\d\+\)\=\)\=/
74071d4279SBram Moolenaarsyn match occamNumber		/-\d\+\(\.\d\+\(E\(+\|-\)\d\+\)\=\)\=/
75071d4279SBram Moolenaarsyn match occamNumber		/#\(\d\|[A-F]\)\+/
76071d4279SBram Moolenaarsyn match occamNumber		/-#\(\d\|[A-F]\)\+/
77071d4279SBram Moolenaar
78071d4279SBram Moolenaarsyn keyword occamCDString	SHARED EXTERNAL DEFINED NOALIAS NOUSAGE NOT contained
79071d4279SBram Moolenaarsyn keyword occamCDString	FILE LINE PROCESS.PRIORITY OCCAM2.5 contained
80071d4279SBram Moolenaarsyn keyword occamCDString	USER.DEFINED.OPERATORS INITIAL.DECL MOBILES contained
81071d4279SBram Moolenaarsyn keyword occamCDString	BLOCKING.SYSCALLS VERSION NEED.QUAD.ALIGNMENT contained
82071d4279SBram Moolenaarsyn keyword occamCDString	TARGET.CANONICAL TARGET.CPU TARGET.OS TARGET.VENDOR contained
83071d4279SBram Moolenaarsyn keyword occamCDString	TRUE FALSE AND OR contained
84071d4279SBram Moolenaarsyn match occamCDString		/<\|>\|=\|(\|)/ contained
85071d4279SBram Moolenaar
86071d4279SBram Moolenaarsyn region occamCDirective	start=/#\(USE\|INCLUDE\|PRAGMA\|DEFINE\|UNDEFINE\|UNDEF\|IF\|ELIF\|ELSE\|ENDIF\|WARNING\|ERROR\|RELAX\)\>/ end=/$/ contains=occamString,occamComment,occamCDString
87071d4279SBram Moolenaar
88071d4279SBram Moolenaar
89*f37506f6SBram Moolenaarhi def link occamType Type
90*f37506f6SBram Moolenaarhi def link occamKeyword Keyword
91*f37506f6SBram Moolenaarhi def link occamComment Comment
92*f37506f6SBram Moolenaarhi def link occamCommentTitle PreProc
93*f37506f6SBram Moolenaarhi def link occamTodo Todo
94*f37506f6SBram Moolenaarhi def link occamNote Todo
95*f37506f6SBram Moolenaarhi def link occamString String
96*f37506f6SBram Moolenaarhi def link occamCharString String
97*f37506f6SBram Moolenaarhi def link occamNumber Number
98*f37506f6SBram Moolenaarhi def link occamCDirective PreProc
99*f37506f6SBram Moolenaarhi def link occamCDString String
100*f37506f6SBram Moolenaarhi def link occamPPIdentifier PreProc
101*f37506f6SBram Moolenaarhi def link occamBoolean Boolean
102*f37506f6SBram Moolenaarhi def link occamSpecialChar SpecialChar
103*f37506f6SBram Moolenaarhi def link occamChar Character
104*f37506f6SBram Moolenaarhi def link occamStructure Structure
105*f37506f6SBram Moolenaarhi def link occamIdentifier Identifier
106*f37506f6SBram Moolenaarhi def link occamConstant Constant
107*f37506f6SBram Moolenaarhi def link occamOperator Operator
108*f37506f6SBram Moolenaarhi def link occamFunction Ignore
109*f37506f6SBram Moolenaarhi def link occamRepeat Repeat
110*f37506f6SBram Moolenaarhi def link occamConditional Conditional
111*f37506f6SBram Moolenaarhi def link occamBrackets Type
112*f37506f6SBram Moolenaarhi def link occamParantheses Delimiter
113071d4279SBram Moolenaar
114071d4279SBram Moolenaar
115071d4279SBram Moolenaarlet b:current_syntax = "occam"
116071d4279SBram Moolenaar
117