comparison runtime/syntax/reva.vim @ 1620:73fe8baea242

updated for version 7.2a
author vimboss
date Tue, 24 Jun 2008 21:16:56 +0000
parents
children 8dcf3ea92b63
comparison
equal deleted inserted replaced
1619:b9740fb41986 1620:73fe8baea242
1 " Vim syntax file
2 " Language: Reva Forth
3 " Version: 7.1
4 " Last Change: 2008/01/11
5 " Maintainer: Ron Aaron <ron@ronware.org>
6 " URL: http://ronware.org/reva/
7 " Filetypes: *.rf *.frt
8 " NOTE: You should also have the ftplugin/reva.vim file to set 'isk'
9
10 " For version 5.x: Clear all syntax items and don't load
11 " For version 6.x: Quit when a syntax file was already loaded
12 if version < 600
13 syntax clear
14 echo "Reva syntax file requires version 6.0 or later of vim!"
15 finish
16 elseif exists("b:current_syntax")
17 finish
18 endif
19
20 syn clear
21
22 " Synchronization method
23 syn sync ccomment
24 syn sync maxlines=100
25
26
27 syn case ignore
28 " Some special, non-FORTH keywords
29 "syn keyword revaTodo contained todo fixme bugbug todo: bugbug: note:
30 syn match revaTodo contained '\(todo\|fixme\|bugbug\|note\)[:]*'
31 syn match revaTodo contained 'copyright\(\s(c)\)\=\(\s[0-9]\{2,4}\)\='
32
33 syn match revaHelpDesc '\S.*' contained
34 syn match revaHelpStuff '\<\(def\|stack\|ctx\|ver\|os\|related\):\s.*'
35 syn region revaHelpStuff start='\<desc:\>' end='^\S' contains=revaHelpDesc
36 syn region revaEOF start='\<|||\>' end='{$}' contains=revaHelpStuff
37
38
39 syn case match
40 " basic mathematical and logical operators
41 syn keyword revaoperators + - * / mod /mod negate abs min max umin umax
42 syn keyword revaoperators and or xor not invert 1+ 1-
43 syn keyword revaoperators m+ */ */mod m* um* m*/ um/mod fm/mod sm/rem
44 syn keyword revaoperators d+ d- dnegate dabs dmin dmax > < = >> << u< <>
45
46
47 " stack manipulations
48 syn keyword revastack drop nip dup over tuck swap rot -rot ?dup pick roll
49 syn keyword revastack 2drop 2nip 2dup 2over 2swap 2rot 3drop
50 syn keyword revastack >r r> r@ rdrop
51 " syn keyword revastack sp@ sp! rp@ rp!
52
53 " address operations
54 syn keyword revamemory @ ! +! c@ c! 2@ 2! align aligned allot allocate here free resize
55 syn keyword revaadrarith chars char+ cells cell+ cell cell- 2cell+ 2cell- 3cell+ 4cell+
56 syn keyword revamemblks move fill
57
58 " conditionals
59 syn keyword revacond if else then =if >if <if <>if if0 ;; catch throw
60
61 " iterations
62 syn keyword revaloop while repeat until again
63 syn keyword revaloop do loop i j leave unloop skip more
64
65 " new words
66 syn match revaColonDef '\<noname:\|\<:\s+' contains=revaComment
67 syn keyword revaEndOfColonDef ; ;inline
68 syn keyword revadefine constant constant, variable create variable,
69 syn keyword revadefine user value to +to defer! defer@ defer is does> immediate
70 syn keyword revadefine compile literal ' [']
71
72 " Built in words
73 com! -nargs=+ Builtin syn keyword revaBuiltin <args>
74 Builtin execute ahead interp bye >body here pad words make
75 Builtin accept close cr creat delete ekey emit fsize ioerr key?
76 Builtin mtime open/r open/rw read rename seek space spaces stat
77 Builtin tell type type_ write (seek) (argv) (save) 0; 0drop;
78 Builtin >class >lz >name >xt alias alias: appname argc asciiz, asciizl,
79 Builtin body> clamp depth disassemble findprev fnvhash getenv here,
80 Builtin iterate last! last@ later link lz> lzmax os parse/ peek
81 Builtin peek-n pop prior push put rp@ rpick save setenv slurp
82 Builtin stack-empty? stack-iterate stack-size stack: THROW_BADFUNC
83 Builtin THROW_BADLIB THROW_GENERIC used xt>size z,
84 Builtin +lplace +place -chop /char /string bounds c+lplace c+place
85 Builtin chop cmp cmpi count lc lcount lplace place quote rsplit search split
86 Builtin zcount zt \\char
87 Builtin chdir g32 k32 u32 getcwd getpid hinst osname stdin stdout
88 Builtin (-lib) (bye) (call) (else) (find) (func) (here) (if (lib) (s0) (s^)
89 Builtin (to~) (while) >in >rel ?literal appstart cold compiling? context? d0 default_class
90 Builtin defer? dict dolstr dostr find-word h0 if) interp isa onexit
91 Builtin onstartup pdoes pop>ebx prompt rel> rp0 s0 src srcstr state str0 then,> then> tib
92 Builtin tp vector vector! word? xt? .ver revaver revaver# && '' 'constant 'context
93 Builtin 'create 'defer 'does 'forth 'inline 'macro 'macront 'notail 'value 'variable
94 Builtin (.r) (context) (create) (header) (hide) (inline) (p.r) (words~) (xfind)
95 Builtin ++ -- , -2drop -2nip -link -swap . .2x .classes .contexts .funcs .libs .needs .r
96 Builtin .rs .x 00; 0do 0if 1, 2, 3, 2* 2/ 2constant 2variable 3dup 4dup ;then >base >defer
97 Builtin >rr ? ?do @execute @rem appdir argv as back base base! between chain cleanup-libs
98 Builtin cmove> context?? ctrl-c ctx>name data: defer: defer@def dictgone do_cr eleave
99 Builtin endcase endof eval exception exec false find func: header heapgone help help/
100 Builtin hex# hide inline{ last lastxt lib libdir literal, makeexename mnotail ms ms@
101 Builtin newclass noop nosavedict notail nul of off on p: padchar parse parseln
102 Builtin parsews rangeof rdepth remains reset reva revaused rol8 rr> scratch setclass sp
103 Builtin strof super> temp time&date true turnkey? undo vfunc: w! w@
104 Builtin xchg xchg2 xfind xt>name xwords { {{ }} } _+ _1+ _1- pathsep case \||
105 " p[ [''] [ [']
106
107
108 " debugging
109 syn keyword revadebug .s dump see
110
111 " basic character operations
112 " syn keyword revaCharOps (.) CHAR EXPECT FIND WORD TYPE -TRAILING EMIT KEY
113 " syn keyword revaCharOps KEY? TIB CR
114 " syn match revaCharOps '\<char\s\S\s'
115 " syn match revaCharOps '\<\[char\]\s\S\s'
116 " syn region revaCharOps start=+."\s+ skip=+\\"+ end=+"+
117
118 " char-number conversion
119 syn keyword revaconversion s>d >digit digit> >single >double >number >float
120
121 " contexts
122 syn keyword revavocs forth macro inline
123 syn keyword revavocs context:
124 syn match revavocs /\<\~[^~ ]*/
125 syn match revavocs /[^~ ]*\~\>/
126
127 " numbers
128 syn keyword revamath decimal hex base binary octal
129 syn match revainteger '\<-\=[0-9.]*[0-9.]\+\>'
130 " recognize hex and binary numbers, the '$' and '%' notation is for greva
131 syn match revainteger '\<\$\x*\x\+\>' " *1* --- dont't mess
132 syn match revainteger '\<\x*\d\x*\>' " *2* --- this order!
133 syn match revainteger '\<%[0-1]*[0-1]\+\>'
134 syn match revainteger "\<'.\>"
135
136 " Strings
137 " syn region revaString start=+\.\?\"+ end=+"+ end=+$+
138 syn region revaString start=/"/ skip=/\\"/ end=/"/
139
140 " Comments
141 syn region revaComment start='\\S\s' end='.*' contains=revaTodo
142 syn match revaComment '\.(\s[^)]\{-})' contains=revaTodo
143 syn region revaComment start='(\s' skip='\\)' end=')' contains=revaTodo
144 syn match revaComment '(\s[^\-]*\-\-[^\-]\{-})' contains=revaTodo
145 syn match revaComment '\<|\s.*$' contains=revaTodo
146 syn match revaColonDef '\<:m\?\s*[^ \t]\+\>' contains=revaComment
147
148 " Include files
149 syn match revaInclude '\<\(include\|needs\)\s\+\S\+'
150
151
152 " Define the default highlighting.
153 if !exists("did_reva_syntax_inits")
154 let did_reva_syntax_inits=1
155 " The default methods for highlighting. Can be overriden later.
156 hi def link revaEOF cIf0
157 hi def link revaHelpStuff special
158 hi def link revaHelpDesc Comment
159 hi def link revaTodo Todo
160 hi def link revaOperators Operator
161 hi def link revaMath Number
162 hi def link revaInteger Number
163 hi def link revaStack Special
164 hi def link revaFStack Special
165 hi def link revaSP Special
166 hi def link revaMemory Operator
167 hi def link revaAdrArith Function
168 hi def link revaMemBlks Function
169 hi def link revaCond Conditional
170 hi def link revaLoop Repeat
171 hi def link revaColonDef Define
172 hi def link revaEndOfColonDef Define
173 hi def link revaDefine Define
174 hi def link revaDebug Debug
175 hi def link revaCharOps Character
176 hi def link revaConversion String
177 hi def link revaForth Statement
178 hi def link revaVocs Statement
179 hi def link revaString String
180 hi def link revaComment Comment
181 hi def link revaClassDef Define
182 hi def link revaEndOfClassDef Define
183 hi def link revaObjectDef Define
184 hi def link revaEndOfObjectDef Define
185 hi def link revaInclude Include
186 hi def link revaBuiltin Keyword
187 endif
188
189 let b:current_syntax = "reva"
190
191 " vim: ts=8:sw=4:nocindent:smartindent: