comparison runtime/syntax/natural.vim @ 0:76efa0be13f1

Initial revision
author atsuki
date Sat, 10 Nov 2007 15:07:22 +0900
parents
children e170173ecb68
comparison
equal deleted inserted replaced
-1:000000000000 0:76efa0be13f1
1 " Vim syntax file
2 "
3 " Language: NATURAL
4 " Version: 2.0.26.17
5 " Maintainer: Marko Leipert <vim@mleipert.de>
6 " Last Changed: 2002-02-28 09:50:36
7 " Support: http://www.winconsole.de/vim/syntax.html
8
9 " For version 5.x: Clear all syntax items
10 " For version 6.x: Quit when this syntax file was already loaded
11 if v:version < 600
12 syntax clear
13 set iskeyword+=-,*,#,+,_,/
14 elseif exists("b:current_syntax")
15 finish
16 else
17 setlocal iskeyword+=-,*,#,+,_,/
18 endif
19
20 " NATURAL is case insensitive
21 syntax case ignore
22
23 " preprocessor
24 syn keyword naturalInclude include nextgroup=naturalObjName skipwhite
25
26 " define data
27 syn keyword naturalKeyword define data end-define
28 syn keyword naturalKeyword independent global parameter local redefine view
29 syn keyword naturalKeyword const[ant] init initial
30
31 " loops
32 syn keyword naturalLoop read end-read end-work find end-find histogram end-histogram
33 syn keyword naturalLoop end-all sort end-sort sorted descending ascending
34 syn keyword naturalRepeat repeat end-repeat while until for step end-for
35 syn keyword naturalKeyword in file with field starting from ending at thru by isn where
36 syn keyword naturalError on error end-error
37 syn keyword naturalKeyword accept reject end-enddata number unique retain as release
38 syn keyword naturalKeyword start end-start break end-break physical page top sequence
39 syn keyword naturalKeyword end-toppage end-endpage end-endfile before processing
40 syn keyword naturalKeyword end-before
41
42 " conditionals
43 syn keyword naturalConditional if then else end-if end-norec
44 syn keyword naturalConditional decide end-decide value when condition none any
45
46 " assignment / calculation
47 syn keyword naturalKeyword reset assign move left right justified compress to into edited
48 syn keyword naturalKeyword add subtract multiply divide compute name
49 syn keyword naturalKeyword all giving remainder rounded leaving space
50 syn keyword naturalKeyword examine full replace giving separate delimiter modified
51 syn keyword naturalKeyword suspend identical suppress
52
53 " program flow
54 syn keyword naturalFlow callnat fetch return enter escape bottom top stack formatted
55 syn keyword naturalFlow command call
56 syn keyword naturalflow end-subroutine routine
57
58 " file operations
59 syn keyword naturalKeyword update store get delete end transaction work once close
60
61 " other keywords
62 syn keyword naturalKeyword first every of no record[s] found ignore immediate
63 syn keyword naturalKeyword set settime key control stop terminate
64
65 " in-/output
66 syn keyword naturalKeyword write display input reinput notitle nohdr map newpage mark
67 syn keyword naturalKeyword alarm text help eject index
68 syn keyword naturalKeyword format printer skip lines
69
70 " functions
71 syn keyword naturalKeyword abs atn cos exp frac int log sgn sin sqrt tan val old
72
73 " report mode keywords
74 syn keyword naturalRMKeyword same loop obtain indexed do doend
75
76 " Subroutine name
77 syn keyword naturalFlow perform subroutine nextgroup=naturalFunction skipwhite
78 syn match naturalFunction "\<[a-z][-_a-z0-9]*\>"
79
80 syn keyword naturalFlow using nextgroup=naturalKeyword,naturalObjName skipwhite
81 syn match naturalObjName "\<[a-z][-_a-z0-9]\{,7}\>"
82
83 " Labels
84 syn match naturalLabel "\<[+#a-z][-_#a-z0-9]*\."
85 syn match naturalRef "\<[+#a-z][-_#a-z0-9]*\>\.\<[+#a-z][*]\=[-_#a-z0-9]*\>"
86
87 " System variables
88 syn match naturalSysVar "\<\*[a-z][-a-z0-9]*\>"
89
90 "integer number, or floating point number without a dot.
91 syn match naturalNumber "\<-\=\d\+\>"
92 "floating point number, with dot
93 syn match naturalNumber "\<-\=\d\+\.\d\+\>"
94 "floating point number, starting with a dot
95 syn match naturalNumber "\.\d\+"
96
97 " Formats in write statement
98 syn match naturalFormat "\<\d\+[TX]\>"
99
100 " String and Character contstants
101 syn match naturalString "H'\x\+'"
102 syn region naturalString start=+"+ end=+"+
103 syn region naturalString start=+'+ end=+'+
104
105 " Type definition
106 syn match naturalAttribute "\<[-a-z][a-z]=[-a-z0-9_\.,]\+\>"
107 syn match naturalType contained "\<[ABINP]\d\+\(,\d\+\)\=\>"
108 syn match naturalType contained "\<[CL]\>"
109
110 " "TODO" / other comments
111 syn keyword naturalTodo contained todo test
112 syn match naturalCommentMark contained "[a-z][^ \t/:|]*\(\s[^ \t/:'"|]\+\)*:\s"he=e-1
113
114 " comments
115 syn region naturalComment start="/\*" end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark
116 syn region naturalComment start="^\*[\ \*]" end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark
117 syn region naturalComment start="^\d\{4} \*[\ \*]"lc=5 end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark
118 syn match naturalComment "^*$"
119 syn match naturalComment "^\d\{4} \*$"lc=5
120 " /* is legal syntax in parentheses e.g. "#ident(label./*)"
121 syn region naturalPComment contained start="/\*\s*[^),]" end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark
122
123 " operators
124 syn keyword naturalOperator and or not eq ne gt lt ge le mask scan
125
126 " constants
127 syn keyword naturalBoolean true false
128
129 syn match naturalLineNo "^\d\{4}"
130
131 " identifiers
132 syn match naturalIdent "\<[+#a-z][-_#a-z0-9]*\>[^\.']"me=e-1
133 syn match naturalIdent "\<[+#a-z][-_#a-z0-9]*$"
134 syn match naturalLegalIdent "[+#a-z][-_#a-z0-9]*/[-_#a-z0-9]*"
135
136 " parentheses
137 syn region naturalPar matchgroup=naturalParGui start="(" end=")" contains=naturalLabel,naturalRef,naturalOperator,@naturalConstant,naturalType,naturalSysVar,naturalPar,naturalLineNo,naturalPComment
138 syn match naturalLineRef "(\d\{4})"
139
140 " build syntax groups
141 syntax cluster naturalConstant contains=naturalString,naturalNumber,naturalAttribute,naturalBoolean
142
143 " folding
144 if v:version >= 600
145 set foldignore=*
146 endif
147
148
149 if v:version >= 508 || !exists("did_natural_syntax_inits")
150 if v:version < 508
151 let did_natural_syntax_inits = 1
152 command -nargs=+ HiLink hi link <args>
153 else
154 command -nargs=+ HiLink hi def link <args>
155 endif
156 " The default methods for highlighting. Can be overridden later
157
158 " Constants
159 HiLink naturalFormat Constant
160 HiLink naturalAttribute Constant
161 HiLink naturalNumber Number
162 HiLink naturalString String
163 HiLink naturalBoolean Boolean
164
165 " All kinds of keywords
166 HiLink naturalConditional Conditional
167 HiLink naturalRepeat Repeat
168 HiLink naturalLoop Repeat
169 HiLink naturalFlow Keyword
170 HiLink naturalError Keyword
171 HiLink naturalKeyword Keyword
172 HiLink naturalOperator Operator
173 HiLink naturalParGui Operator
174
175 " Labels
176 HiLink naturalLabel Label
177 HiLink naturalRefLabel Label
178
179 " Comments
180 HiLink naturalPComment Comment
181 HiLink naturalComment Comment
182 HiLink naturalTodo Todo
183 HiLink naturalCommentMark PreProc
184
185 HiLink naturalInclude Include
186 HiLink naturalSysVar Identifier
187 HiLink naturalLineNo LineNr
188 HiLink naturalLineRef Error
189 HiLink naturalSpecial Special
190 HiLink naturalComKey Todo
191
192 " illegal things
193 HiLink naturalRMKeyword Error
194 HiLink naturalLegalIdent Error
195
196 HiLink naturalType Type
197 HiLink naturalFunction Function
198 HiLink naturalObjName Function
199
200 delcommand HiLink
201 endif
202
203 let b:current_syntax = "natural"
204
205 " vim:set ts=4 sw=4 noet ft=vim list: