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