summaryrefslogtreecommitdiffstats
path: root/txr.vim
blob: c1c93929deac5dd920bfc83cad43262e86dc8dec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
" VIM Syntax file for txr
" Kaz Kylheku <kaz@kylheku.com>

" INSTALL-HOWTO:
"
" 1. Create the directory .vim/syntax in your home directory and
"    put the files txr.vim and txl.vim into this directory.
" 2. In your .vimrc, add this command to associate *.txr and *.tl
"    files with the txr and txl filetypes:
"    :au BufRead,BufNewFile *.txr set filetype=txr | set lisp
"    :au BufRead,BufNewFile *.tl set filetype=txl | set lisp
"
" If you want syntax highlighting to be on automatically (for any language)
" you need to add ":syntax on" in your .vimrc also. But you knew that already!
"
" This file is generated by the genvim.txr script in the TXR source tree.

syn case match
syn spell toplevel

setlocal iskeyword=a-z,A-Z,48-57,!,$,&,*,+,-,:,<,=,>,?,\\,_,~,/

syn keyword txl_keyword contained %e% %pi% * *args*
syn keyword txl_keyword contained *args-full* *e* *flo-dig* *flo-epsilon*
syn keyword txl_keyword contained *flo-max* *flo-min* *full-args* *gensym-counter*
syn keyword txl_keyword contained *keyword-package* *lib-version* *listener-hist-len* *listener-multi-line-p*
syn keyword txl_keyword contained *pi* *place-clobber-expander* *place-delete-expander* *place-macro*
syn keyword txl_keyword contained *place-update-expander* *print-base* *print-flo-precision* *random-state*
syn keyword txl_keyword contained *self-path* *stddebug* *stderr* *stdin*
syn keyword txl_keyword contained *stdlog* *stdnull* *stdout* *system-package*
syn keyword txl_keyword contained *txr-version* *unhandled-hook* *user-package* +
syn keyword txl_keyword contained - / /= :
syn keyword txl_keyword contained :append :args :atime :auto
syn keyword txl_keyword contained :blksize :blocks :cdigit :chars
syn keyword txl_keyword contained :continue :counter :cspace :ctime
syn keyword txl_keyword contained :cword-char :decline :dev :digit
syn keyword txl_keyword contained :downcase :env :equal-based :fd
syn keyword txl_keyword contained :filter :fini :finish :form
syn keyword txl_keyword contained :from-current :from-end :from-start :from_html
syn keyword txl_keyword contained :fromhtml :frompercent :fromurl :fun
syn keyword txl_keyword contained :function :gap :gid :greedy
syn keyword txl_keyword contained :hextoint :init :ino :instance
syn keyword txl_keyword contained :into :lfilt :lines :list
syn keyword txl_keyword contained :longest :maxgap :maxtimes :method
syn keyword txl_keyword contained :mingap :mintimes :mode :mtime
syn keyword txl_keyword contained :name :named :next-spec :nlink
syn keyword txl_keyword contained :nothrow :prio :rdev :real-time
syn keyword txl_keyword contained :reflect :repeat-spec :resolve :rfilt
syn keyword txl_keyword contained :shortest :size :space :static
syn keyword txl_keyword contained :string :symacro :times :to_html
syn keyword txl_keyword contained :tofloat :tohtml :tohtml* :toint
syn keyword txl_keyword contained :tonumber :topercent :tourl :uid
syn keyword txl_keyword contained :upcase :var :vars :weak-keys
syn keyword txl_keyword contained :weak-vals :whole :word-char :wrap
syn keyword txl_keyword contained < <= = >
syn keyword txl_keyword contained >= abort abs abs-path-p
syn keyword txl_keyword contained acons acons-new aconsql-new acos
syn keyword txl_keyword contained ado alist-nremove alist-remove all
syn keyword txl_keyword contained and andf ap apf
syn keyword txl_keyword contained append append* append-each append-each*
syn keyword txl_keyword contained apply aret ash asin
syn keyword txl_keyword contained assoc assql atan atan2
syn keyword txl_keyword contained atom bignump bindable bit
syn keyword txl_keyword contained block block* boundp break-str
syn keyword txl_keyword contained butlast caaaaar caaaadr caaaar
syn keyword txl_keyword contained caaadar caaaddr caaadr caaar
syn keyword txl_keyword contained caadaar caadadr caadar caaddar
syn keyword txl_keyword contained caadddr caaddr caadr caar
syn keyword txl_keyword contained cadaaar cadaadr cadaar cadadar
syn keyword txl_keyword contained cadaddr cadadr cadar caddaar
syn keyword txl_keyword contained caddadr caddar cadddar caddddr
syn keyword txl_keyword contained cadddr caddr cadr call
syn keyword txl_keyword contained call-clobber-expander call-delete-expander call-finalizers call-super-fun
syn keyword txl_keyword contained call-super-method call-update-expander callf car
syn keyword txl_keyword contained caseq caseql casequal cat-str
syn keyword txl_keyword contained cat-streams cat-vec catch catenated-stream-p
syn keyword txl_keyword contained catenated-stream-push cdaaaar cdaaadr cdaaar
syn keyword txl_keyword contained cdaadar cdaaddr cdaadr cdaar
syn keyword txl_keyword contained cdadaar cdadadr cdadar cdaddar
syn keyword txl_keyword contained cdadddr cdaddr cdadr cdar
syn keyword txl_keyword contained cddaaar cddaadr cddaar cddadar
syn keyword txl_keyword contained cddaddr cddadr cddar cdddaar
syn keyword txl_keyword contained cdddadr cdddar cddddar cdddddr
syn keyword txl_keyword contained cddddr cdddr cddr cdr
syn keyword txl_keyword contained ceil chain chand chdir
syn keyword txl_keyword contained chmod chr-int chr-isalnum chr-isalpha
syn keyword txl_keyword contained chr-isascii chr-isblank chr-iscntrl chr-isdigit
syn keyword txl_keyword contained chr-isgraph chr-islower chr-isprint chr-ispunct
syn keyword txl_keyword contained chr-isspace chr-isunisp chr-isupper chr-isxdigit
syn keyword txl_keyword contained chr-num chr-str chr-str-set chr-tolower
syn keyword txl_keyword contained chr-toupper chrp clamp clear-error
syn keyword txl_keyword contained clear-struct close-stream closelog cmp-str
syn keyword txl_keyword contained collect-each collect-each* comb compl-span-str
syn keyword txl_keyword contained cond conda cons conses
syn keyword txl_keyword contained conses* consp constantp copy
syn keyword txl_keyword contained copy-alist copy-cons copy-hash copy-list
syn keyword txl_keyword contained copy-str copy-struct copy-vec cos
syn keyword txl_keyword contained count-if countq countql countqual
syn keyword txl_keyword contained cum-norm-dist daemon dec defex
syn keyword txl_keyword contained define-accessor define-modify-macro define-place-macro defmacro
syn keyword txl_keyword contained defmeth defparm defparml defplace
syn keyword txl_keyword contained defstruct defsymacro defun defvar
syn keyword txl_keyword contained defvarl del delay delete-package
syn keyword txl_keyword contained display-width do dohash dotimes
syn keyword txl_keyword contained downcase-str drop drop-until drop-while
syn keyword txl_keyword contained dup dupfd dwim each
syn keyword txl_keyword contained each* eighth empty endgrent
syn keyword txl_keyword contained endpwent ensure-dir env env-fbind
syn keyword txl_keyword contained env-hash env-vbind eq eql
syn keyword txl_keyword contained equal errno error eval
syn keyword txl_keyword contained evenp exception-subtype-p exec exit
syn keyword txl_keyword contained exit* exp expand-right expt
syn keyword txl_keyword contained exptmod false fboundp fifth
syn keyword txl_keyword contained fileno filter-equal filter-string-tree finalize
syn keyword txl_keyword contained find find-frame find-if find-max
syn keyword txl_keyword contained find-min find-package find-struct-type first
syn keyword txl_keyword contained fixnump flatcar flatcar* flatten
syn keyword txl_keyword contained flatten* flet flip flipargs
syn keyword txl_keyword contained flo-dig flo-epsilon flo-int flo-max
syn keyword txl_keyword contained flo-max-dig flo-min flo-str floatp
syn keyword txl_keyword contained floor flush-stream fmakunbound for
syn keyword txl_keyword contained for* force fork format
syn keyword txl_keyword contained fourth from fstat fun
syn keyword txl_keyword contained func-get-env func-get-form func-get-name func-set-env
syn keyword txl_keyword contained functionp gcd gen generate
syn keyword txl_keyword contained gensym gequal get-byte get-char
syn keyword txl_keyword contained get-clobber-expander get-delete-expander get-error get-error-str
syn keyword txl_keyword contained get-frames get-hash-userdata get-indent get-indent-mode
syn keyword txl_keyword contained get-line get-lines get-list-from-stream get-sig-handler
syn keyword txl_keyword contained get-string get-string-from-stream get-update-expander getegid
syn keyword txl_keyword contained getenv geteuid getgid getgrent
syn keyword txl_keyword contained getgrgid getgrnam getgroups gethash
syn keyword txl_keyword contained getitimer getpid getppid getpwent
syn keyword txl_keyword contained getpwnam getpwuid getuid ginterate
syn keyword txl_keyword contained giterate glob glob-altdirfunc glob-brace
syn keyword txl_keyword contained glob-err glob-mark glob-nocheck glob-noescape
syn keyword txl_keyword contained glob-nomagic glob-nosort glob-onlydir glob-period
syn keyword txl_keyword contained glob-tilde glob-tilde-check greater group-by
syn keyword txl_keyword contained group-reduce gun handle handler-bind
syn keyword txl_keyword contained hash hash-alist hash-begin hash-construct
syn keyword txl_keyword contained hash-count hash-diff hash-eql hash-equal
syn keyword txl_keyword contained hash-from-pairs hash-isec hash-keys hash-list
syn keyword txl_keyword contained hash-next hash-pairs hash-proper-subset hash-revget
syn keyword txl_keyword contained hash-subset hash-uni hash-update hash-update-1
syn keyword txl_keyword contained hash-values hashp have html-decode
syn keyword txl_keyword contained html-encode html-encode* iapply identity
syn keyword txl_keyword contained ido if ifa iff
syn keyword txl_keyword contained iffi iflet ignerr in
syn keyword txl_keyword contained inc inc-indent indent-code indent-data
syn keyword txl_keyword contained indent-off inhash int-chr int-flo
syn keyword txl_keyword contained int-str integerp intern interp-fun-p
syn keyword txl_keyword contained interpose invoke-catch ip ipf
syn keyword txl_keyword contained iread isqrt itimer-prov itimer-real
syn keyword txl_keyword contained itimer-virtual juxt keep-if keep-if*
syn keyword txl_keyword contained keyword-package keywordp kill labels
syn keyword txl_keyword contained lambda last lazy-str lazy-str-force
syn keyword txl_keyword contained lazy-str-force-upto lazy-str-get-trailing-list lazy-stream-cons lazy-stringp
syn keyword txl_keyword contained lcm lcons lcons-fun lconsp
syn keyword txl_keyword contained ldiff length length-list length-str
syn keyword txl_keyword contained length-str-< length-str-<= length-str-> length-str->=
syn keyword txl_keyword contained length-vec lequal less let
syn keyword txl_keyword contained let* lexical-fun-p lexical-lisp1-binding lexical-var-p
syn keyword txl_keyword contained lib-version link lisp-parse list
syn keyword txl_keyword contained list* list-str list-vec list-vector
syn keyword txl_keyword contained listp lnew load log
syn keyword txl_keyword contained log-alert log-auth log-authpriv log-cons
syn keyword txl_keyword contained log-crit log-daemon log-debug log-emerg
syn keyword txl_keyword contained log-err log-info log-ndelay log-notice
syn keyword txl_keyword contained log-nowait log-odelay log-perror log-pid
syn keyword txl_keyword contained log-user log-warning log10 log2
syn keyword txl_keyword contained logand logior lognot logtest
syn keyword txl_keyword contained logtrunc logxor lstat mac-param-bind
syn keyword txl_keyword contained macro-ancestor macro-form-p macro-time macroexpand
syn keyword txl_keyword contained macroexpand-1 macrolet major make-catenated-stream
syn keyword txl_keyword contained make-env make-hash make-lazy-cons make-lazy-struct
syn keyword txl_keyword contained make-like make-package make-random-state make-similar-hash
syn keyword txl_keyword contained make-string-byte-input-stream make-string-input-stream make-string-output-stream make-strlist-output-stream
syn keyword txl_keyword contained make-struct make-struct-type make-sym make-time
syn keyword txl_keyword contained make-time-utc make-trie makedev makunbound
syn keyword txl_keyword contained mapcar mapcar* mapdo mapf
syn keyword txl_keyword contained maphash mappend mappend* mask
syn keyword txl_keyword contained match-fun match-regex match-regex-right match-regst
syn keyword txl_keyword contained match-regst-right match-str match-str-tree max
syn keyword txl_keyword contained mboundp member member-if memq
syn keyword txl_keyword contained memql memqual merge meth
syn keyword txl_keyword contained method min minor minusp
syn keyword txl_keyword contained mkdir mknod mkstring mlet
syn keyword txl_keyword contained mmakunbound mod multi multi-sort
syn keyword txl_keyword contained n-choose-k n-perm-k nconc new
syn keyword txl_keyword contained nil nilf ninth none
syn keyword txl_keyword contained not notf nreconc nreverse
syn keyword txl_keyword contained nthcdr null nullify num-chr
syn keyword txl_keyword contained num-str numberp oand obtain
syn keyword txl_keyword contained obtain-block oddp op open-command
syn keyword txl_keyword contained open-directory open-file open-fileno open-files
syn keyword txl_keyword contained open-files* open-pipe open-process open-tail
syn keyword txl_keyword contained openlog opip or orf
syn keyword txl_keyword contained package-alist package-name package-symbols packagep
syn keyword txl_keyword contained pad partition partition* partition-by
syn keyword txl_keyword contained path-blkdev-p path-chrdev-p path-dir-p path-executable-to-me-p
syn keyword txl_keyword contained path-exists-p path-file-p path-mine-p path-my-group-p
syn keyword txl_keyword contained path-newer path-older path-pipe-p path-private-to-me-p
syn keyword txl_keyword contained path-same-object path-setgid-p path-setuid-p path-sock-p
syn keyword txl_keyword contained path-sticky-p path-symlink-p path-writable-to-me-p perm
syn keyword txl_keyword contained pipe place-form-p placelet placelet*
syn keyword txl_keyword contained plusp poll poll-err poll-in
syn keyword txl_keyword contained poll-nval poll-out poll-pri poll-rdband
syn keyword txl_keyword contained poll-wrband pop pos pos-if
syn keyword txl_keyword contained pos-max pos-min posq posql
syn keyword txl_keyword contained posqual pppred ppred pprinl
syn keyword txl_keyword contained pprint pprof pred prinl
syn keyword txl_keyword contained print prof prog1 progn
syn keyword txl_keyword contained promisep prop proper-listp pset
syn keyword txl_keyword contained push pushhash pushnew put-byte
syn keyword txl_keyword contained put-char put-line put-lines put-string
syn keyword txl_keyword contained put-strings pwd qquote qref
syn keyword txl_keyword contained quote raise rand random
syn keyword txl_keyword contained random-fixnum random-state-p range range*
syn keyword txl_keyword contained range-regex rangep rcomb rcons
syn keyword txl_keyword contained read readlink real-time-stream-p reduce-left
syn keyword txl_keyword contained reduce-right ref refset regex-compile
syn keyword txl_keyword contained regex-parse regexp register-exception-subtypes regsub
syn keyword txl_keyword contained rehome-sym remhash remove-if remove-if*
syn keyword txl_keyword contained remove-path remq remq* remql
syn keyword txl_keyword contained remql* remqual remqual* rename-path
syn keyword txl_keyword contained repeat replace replace-list replace-str
syn keyword txl_keyword contained replace-struct replace-vec reset-struct rest
syn keyword txl_keyword contained ret retf return return*
syn keyword txl_keyword contained return-from revappend reverse rlcp
syn keyword txl_keyword contained rlet rotate rperm rplaca
syn keyword txl_keyword contained rplacd run s-ifblk s-ifchr
syn keyword txl_keyword contained s-ifdir s-ififo s-iflnk s-ifmt
syn keyword txl_keyword contained s-ifreg s-ifsock s-irgrp s-iroth
syn keyword txl_keyword contained s-irusr s-irwxg s-irwxo s-irwxu
syn keyword txl_keyword contained s-isgid s-isuid s-isvtx s-iwgrp
syn keyword txl_keyword contained s-iwoth s-iwusr s-ixgrp s-ixoth
syn keyword txl_keyword contained s-ixusr search search-regex search-regst
syn keyword txl_keyword contained search-str search-str-tree second seek-stream
syn keyword txl_keyword contained select self-path seqp set
syn keyword txl_keyword contained set-diff set-hash-userdata set-indent set-indent-mode
syn keyword txl_keyword contained set-sig-handler setegid setenv seteuid
syn keyword txl_keyword contained setgid setgrent sethash setitimer
syn keyword txl_keyword contained setlogmask setpwent setuid seventh
syn keyword txl_keyword contained sh shift shuffle sig-abrt
syn keyword txl_keyword contained sig-alrm sig-bus sig-check sig-chld
syn keyword txl_keyword contained sig-cont sig-fpe sig-hup sig-ill
syn keyword txl_keyword contained sig-int sig-io sig-iot sig-kill
syn keyword txl_keyword contained sig-pipe sig-poll sig-prof sig-pwr
syn keyword txl_keyword contained sig-quit sig-segv sig-stkflt sig-stop
syn keyword txl_keyword contained sig-sys sig-term sig-trap sig-tstp
syn keyword txl_keyword contained sig-ttin sig-ttou sig-urg sig-usr1
syn keyword txl_keyword contained sig-usr2 sig-vtalrm sig-winch sig-xcpu
syn keyword txl_keyword contained sig-xfsz sign-extend sin sixth
syn keyword txl_keyword contained size-vec slot slotp slotset
syn keyword txl_keyword contained some sort sort-group source-loc
syn keyword txl_keyword contained source-loc-str span-str special-operator-p special-var-p
syn keyword txl_keyword contained splice split split-str split-str-set
syn keyword txl_keyword contained sqrt sssucc ssucc stat
syn keyword txl_keyword contained static-slot static-slot-ensure static-slot-p static-slot-set
syn keyword txl_keyword contained stdlib str< str<= str=
syn keyword txl_keyword contained str> str>= stream-get-prop stream-set-prop
syn keyword txl_keyword contained streamp string-extend string-lt stringp
syn keyword txl_keyword contained struct-type struct-type-p structp sub
syn keyword txl_keyword contained sub-list sub-str sub-vec subtypep
syn keyword txl_keyword contained succ super super-method suspend
syn keyword txl_keyword contained swap symacrolet symbol-function symbol-name
syn keyword txl_keyword contained symbol-package symbol-value symbolp symlink
syn keyword txl_keyword contained sys:*lisp1* sys:abscond* sys:abscond-from sys:bad-slot-syntax
syn keyword txl_keyword contained sys:capture-cont sys:defmeth sys:do-path-test sys:dwim-del
syn keyword txl_keyword contained sys:dwim-set sys:eval-err sys:expand sys:expr
syn keyword txl_keyword contained sys:fbind sys:gc sys:gc-set-delta sys:get-fb
syn keyword txl_keyword contained sys:get-vb sys:handle-bad-syntax sys:l1-setq sys:l1-val
syn keyword txl_keyword contained sys:lbind sys:lisp1-setq sys:lisp1-value sys:load
syn keyword txl_keyword contained sys:make-struct-type sys:mark-special sys:obtain-impl sys:path-access
syn keyword txl_keyword contained sys:path-examine sys:path-test sys:path-test-mode sys:pl-expand
syn keyword txl_keyword contained sys:placelet-1 sys:prune-nil-inits sys:qquote sys:quasi
syn keyword txl_keyword contained sys:quasilist sys:reg-expand-nongreedy sys:reg-optimize sys:register-simple-accessor
syn keyword txl_keyword contained sys:rplaca sys:rplacd sys:setq sys:setqf
syn keyword txl_keyword contained sys:splice sys:struct-lit sys:sym-clobber-expander sys:sym-delete-expander
syn keyword txl_keyword contained sys:sym-update-expander sys:top-fb sys:top-vb sys:unquote
syn keyword txl_keyword contained sys:var sys:with-saved-vars syslog system-package
syn keyword txl_keyword contained t take take-until take-while
syn keyword txl_keyword contained tan tb tc tenth
syn keyword txl_keyword contained test-set-indent-mode tf third throw
syn keyword txl_keyword contained throwf time time-fields-local time-fields-utc
syn keyword txl_keyword contained time-string-local time-string-utc time-struct-local time-struct-utc
syn keyword txl_keyword contained time-usec to tofloat toint
syn keyword txl_keyword contained tok-str tok-where tostring tostringp
syn keyword txl_keyword contained tprint transpose tree-bind tree-case
syn keyword txl_keyword contained tree-find trie-add trie-compress trie-lookup-begin
syn keyword txl_keyword contained trie-lookup-feed-char trie-value-at trim-str true
syn keyword txl_keyword contained trunc trunc-rem truncate-stream tuples
syn keyword txl_keyword contained txr-case txr-case-impl txr-if txr-sym
syn keyword txl_keyword contained txr-version txr-when typecase typeof
syn keyword txl_keyword contained typep umeth umethod unget-byte
syn keyword txl_keyword contained unget-char uniq unique unless
syn keyword txl_keyword contained unquote unsetenv until until*
syn keyword txl_keyword contained unwind-protect upcase-str update url-decode
syn keyword txl_keyword contained url-encode user-package usl usleep
syn keyword txl_keyword contained uslot vec vec-list vec-push
syn keyword txl_keyword contained vec-set-length vecref vector vector-list
syn keyword txl_keyword contained vectorp w-continued w-coredump w-exitstatus
syn keyword txl_keyword contained w-ifcontinued w-ifexited w-ifsignaled w-ifstopped
syn keyword txl_keyword contained w-nohang w-stopsig w-termsig w-untraced
syn keyword txl_keyword contained wait weave when whenlet
syn keyword txl_keyword contained where while while* whilet
syn keyword txl_keyword contained width width-check window-map window-mappend
syn keyword txl_keyword contained with-clobber-expander with-delete-expander with-gensyms with-hash-iter
syn keyword txl_keyword contained with-in-string-byte-stream with-in-string-stream with-objects with-out-string-stream
syn keyword txl_keyword contained with-out-strlist-stream with-resources with-stream with-update-expander
syn keyword txl_keyword contained wrap wrap* yield yield-from
syn keyword txl_keyword contained zap zerop zip

syn keyword txr_keyword contained accept all and assert
syn keyword txr_keyword contained bind block cases cat
syn keyword txr_keyword contained catch choose chr close
syn keyword txr_keyword contained coll collect defex deffilter
syn keyword txr_keyword contained define do elif else
syn keyword txr_keyword contained end eof eol fail
syn keyword txr_keyword contained filter finally flatten forget
syn keyword txr_keyword contained freeform fuzz gather if
syn keyword txr_keyword contained include last line load
syn keyword txr_keyword contained local maybe merge next
syn keyword txr_keyword contained none or output rebind
syn keyword txr_keyword contained rep repeat require set
syn keyword txr_keyword contained skip some text throw
syn keyword txr_keyword contained trailer try until var
syn match txr_error "\(@[ \t]*\)[*]\?[\t ]*."
syn match txr_atat "\(@[ \t]*\)@"
syn match txr_comment "\(@[ \t]*\)[#;].*"
syn match txr_contin "\(@[ \t]*\)\\$"
syn match txr_char "\(@[ \t]*\)\\."
syn match txr_error "\(@[ \t]*\)\\[xo]"
syn match txr_char "\(@[ \t]*\)\\x[0-9A-Fa-f]\+;\?"
syn match txr_char "\(@[ \t]*\)\\[0-7]\+;\?"
syn match txr_regdir "\(@[ \t]*\)/\(\\/\|[^/]\|\\\n\)*/"
syn match txr_hashbang "^#!.*"
syn match txr_nested_error "[^\t ]\+" contained
syn match txr_variable "\(@[ \t]*\)[*]\?[ \t]*[A-Za-z_][A-Za-z_0-9]*"
syn match txr_splicevar "@[ \t,*@]*[A-Za-z_][A-Za-z_0-9]*"
syn match txr_metanum "@\+[0-9]\+"
syn match txr_badesc "\\." contained
syn match txr_escat "\\@" contained
syn match txr_stresc "\\[abtnvfre\\ \n"`']" contained
syn match txr_numesc "\\x[0-9A-Fa-f]\+;\?" contained
syn match txr_numesc "\\[0-7]\+;\?" contained
syn match txr_regesc "\\[abtnvfre\\ \n/sSdDwW()\|.*?+~&%\[\]\-]" contained

syn match txr_chr "#\\x[0-9A-Fa-f]\+" contained
syn match txr_chr "#\\o[0-7]\+" contained
syn match txr_chr "#\\[^ \t\nA-Za-z_0-9]" contained
syn match txr_chr "#\\[A-Za-z_0-9]\+" contained
syn match txr_ncomment ";.*" contained

syn match txr_dot "\." contained
syn match txr_num "#x[+\-]\?[0-9A-Fa-f]\+" contained
syn match txr_num "#o[+\-]\?[0-7]\+" contained
syn match txr_num "#b[+\-]\?[01]\+" contained
syn match txr_ident "[A-Za-z_0-9!$%&*+\-<=>?\\_~]*[A-Za-z_!$%&*+\-<=>?\\_~^][A-Za-z_0-9!$%&*+\-<=>?\\_~^]*" contained
syn match txl_ident "[:@][A-Za-z_0-9!$%&*+\-<=>?\\_~^/]\+" contained
syn match txr_braced_ident "[:][A-Za-z_0-9!$%&*+\-<=>?\\_~^/]\+" contained
syn match txl_ident "[A-Za-z_0-9!$%&*+\-<=>?\\_~/]*[A-Za-z_!$%&*+\-<=>?\\_~^/#][A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]*" contained
syn match txr_num "[+\-]\?[0-9]\+\([^A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]\|\n\)"me=e-1 contained
syn match txr_badnum "[+\-]\?[0-9]*[.][0-9]\+\([eE][+\-]\?[0-9]\+\)\?[A-Za-z_!$%&*+\-<=>?\\_~^/#]\+" contained
syn match txr_num "[+\-]\?[0-9]*[.][0-9]\+\([eE][+\-]\?[0-9]\+\)\?\([^A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]\|\n\)"me=e-1 contained
syn match txr_num "[+\-]\?[0-9]\+\([eE][+\-]\?[0-9]\+\)\([^A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]\|\n\)"me=e-1 contained
syn match txl_ident ":" contained
syn match txl_splice "[ \t,]\|,[*]" contained

syn match txr_unquote "," contained
syn match txr_splice ",\*" contained
syn match txr_quote "'" contained
syn match txr_quote "\^" contained
syn match txr_dotdot "\.\." contained
syn match txr_metaat "@" contained

syn region txr_bracevar matchgroup=Delimiter start="@[ \t]*[*]\?{" matchgroup=Delimiter end="}" contains=txr_num,txl_ident,txl_splice,txl_metanum,txr_metaat,txr_braced_ident,txr_dot,txr_dotdot,txr_string,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_regex,txr_quasilit,txr_chr,txl_splice,txr_nested_error
syn region txr_directive matchgroup=Delimiter start="@[ \t]*(" matchgroup=Delimiter end=")" contains=txr_keyword,txr_string,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_num,txr_badnum,txl_ident,txl_regex,txr_string,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_ncomment,txr_nested_error
syn region txr_list contained matchgroup=Delimiter start="#\?H\?(" matchgroup=Delimiter end=")" contains=txl_keyword,txr_string,txl_regex,txr_num,txr_badnum,txl_ident,txr_metanum,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_ncomment,txr_nested_error
syn region txr_bracket contained matchgroup=Delimiter start="\[" matchgroup=Delimiter end="\]" contains=txl_keyword,txr_string,txl_regex,txr_num,txr_badnum,txl_ident,txr_metanum,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_ncomment,txr_nested_error
syn region txr_mlist contained matchgroup=Delimiter start="@[ \t^',]*(" matchgroup=Delimiter end=")" contains=txl_keyword,txr_string,txl_regex,txr_num,txr_badnum,txl_ident,txr_metanum,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_ncomment,txr_nested_error
syn region txr_mbracket matchgroup=Delimiter start="@[ \t^',]*\[" matchgroup=Delimiter end="\]" contains=txl_keyword,txr_string,txl_regex,txr_num,txr_badnum,txl_ident,txr_metanum,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_ncomment,txr_nested_error
syn region txr_string contained start=+#\?\*\?"+ end=+["\n]+ contains=txr_stresc,txr_numesc,txr_badesc
syn region txr_quasilit contained start=+#\?\*\?`+ end=+[`\n]+ contains=txr_splicevar,txr_metanum,txr_bracevar,txr_mlist,txr_mbracket,txr_escat,txr_stresc,txr_numesc,txr_badesc
syn region txr_regex contained start="/" end="[/\n]" contains=txr_regesc,txr_numesc,txr_badesc
syn region txl_regex contained start="#/" end="[/\n]" contains=txr_regesc,txr_numesc,txr_badesc

hi def link txr_at Special
hi def link txr_atstar Special
hi def link txr_atat Special
hi def link txr_comment Comment
hi def link txr_ncomment Comment
hi def link txr_hashbang Preproc
hi def link txr_contin Preproc
hi def link txr_char String
hi def link txr_keyword Keyword
hi def link txl_keyword Type
hi def link txr_string String
hi def link txr_chr String
hi def link txr_quasilit String
hi def link txr_regex String
hi def link txl_regex String
hi def link txr_regdir String
hi def link txr_variable Identifier
hi def link txr_splicevar Identifier
hi def link txr_metanum Identifier
hi def link txr_escat Special
hi def link txr_stresc Special
hi def link txr_numesc Special
hi def link txr_regesc Special
hi def link txr_badesc Error
hi def link txr_ident Identifier
hi def link txl_ident Identifier
hi def link txr_num Number
hi def link txr_badnum Error
hi def link txr_quote Special
hi def link txr_unquote Special
hi def link txr_splice Special
hi def link txr_dot Special
hi def link txr_dotdot Special
hi def link txr_metaat Special
hi def link txr_munqspl Special
hi def link txl_splice Special
hi def link txr_error Error
hi def link txr_nested_error Error

let b:current_syntax = "lisp"

set lispwords=ado,ap,append-each,append-each*,aret,block,block*,caseq,caseql,casequal,catch,collect-each,collect-each*,cond,conda,dec,defex,define-accessor,define-modify-macro,define-place-macro,defmacro,defmeth,defparm,defparml,defplace,defstruct,defsymacro,defun,defvar,defvarl,del,delay,do,dohash,dotimes,each,each*,flet,flip,for,for*,fun,gen,gun,handle,handler-bind,ido,if,ifa,iflet,ignerr,ip,labels,lambda,lcons,let,let*,load,mac-param-bind,macro-time,macrolet,mlet,obtain,obtain-block,op,placelet,placelet*,pop,pprof,prof,prog1,progn,push,pushnew,ret,return,return-from,rlet,splice,suspend,symacrolet,sys:abscond-from,sys:expr,sys:fbind,sys:l1-val,sys:lbind,sys:lisp1-value,sys:path-examine,sys:path-test,sys:placelet-1,sys:splice,sys:struct-lit,sys:unquote,sys:var,sys:with-saved-vars,tb,tc,tree-bind,tree-case,txr-case,txr-case-impl,txr-if,txr-when,typecase,unless,unquote,until,until*,unwind-protect,when,whenlet,while,while*,whilet,with-clobber-expander,with-delete-expander,with-gensyms,with-hash-iter,with-in-string-byte-stream,with-in-string-stream,with-objects,with-out-string-stream,with-out-strlist-stream,with-resources,with-stream,with-update-expander,yield,yield-from,zap,:method,:function,:init,:fini