summaryrefslogtreecommitdiffstats
path: root/txr.vim
blob: 4b05ae5bc498ab055b2764eeb8c272ec2e1f6cab (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
" 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* *pi* *place-clobber-expander*
syn keyword txl_keyword contained *place-delete-expander* *place-macro* *place-update-expander* *random-state*
syn keyword txl_keyword contained *self-path* *stddebug* *stderr* *stdin*
syn keyword txl_keyword contained *stdlog* *stdnull* *stdout* *txr-version*
syn keyword txl_keyword contained *unhandled-hook* *user-package* + -
syn keyword txl_keyword contained / /= < <=
syn keyword txl_keyword contained = > >= abort
syn keyword txl_keyword contained abs abs-path-p acons acons-new
syn keyword txl_keyword contained aconsql-new acos ado alist-nremove
syn keyword txl_keyword contained alist-remove all and andf
syn keyword txl_keyword contained ap apf append append*
syn keyword txl_keyword contained append-each append-each* apply aret
syn keyword txl_keyword contained ash asin assoc assql
syn keyword txl_keyword contained atan atan2 atom bignump
syn keyword txl_keyword contained bindable bit block boundp
syn keyword txl_keyword contained break-str 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-update-expander callf
syn keyword txl_keyword contained car caseq caseql casequal
syn keyword txl_keyword contained cat-str cat-streams cat-vec catch
syn keyword txl_keyword contained catenated-stream-p catenated-stream-push cdaaaar cdaaadr
syn keyword txl_keyword contained cdaaar cdaadar cdaaddr cdaadr
syn keyword txl_keyword contained cdaar cdadaar cdadadr cdadar
syn keyword txl_keyword contained cdaddar cdadddr cdaddr cdadr
syn keyword txl_keyword contained cdar cddaaar cddaadr cddaar
syn keyword txl_keyword contained cddadar cddaddr cddadr cddar
syn keyword txl_keyword contained cdddaar cdddadr cdddar cddddar
syn keyword txl_keyword contained cdddddr cddddr cdddr cddr
syn keyword txl_keyword contained cdr ceil chain chand
syn keyword txl_keyword contained chdir chmod 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 close-stream closelog cmp-str collect-each
syn keyword txl_keyword contained collect-each* comb compl-span-str cond
syn keyword txl_keyword contained conda cons conses conses*
syn keyword txl_keyword contained consp constantp copy copy-alist
syn keyword txl_keyword contained copy-cons copy-hash copy-list copy-str
syn keyword txl_keyword contained copy-vec cos count-if countq
syn keyword txl_keyword contained countql countqual cum-norm-dist daemon
syn keyword txl_keyword contained dec define-modify-macro define-place-macro defmacro
syn keyword txl_keyword contained defparm defparml defplace defsymacro
syn keyword txl_keyword contained defun defvar defvarl del
syn keyword txl_keyword contained delay delete-package display-width do
syn keyword txl_keyword contained dohash dotimes downcase-str dup
syn keyword txl_keyword contained dupfd dwim each each*
syn keyword txl_keyword contained eighth empty ensure-dir env
syn keyword txl_keyword contained env-fbind env-hash env-vbind eq
syn keyword txl_keyword contained eql equal errno error
syn keyword txl_keyword contained eval evenp exec exit
syn keyword txl_keyword contained exit* exp expr expt
syn keyword txl_keyword contained exptmod false fbind fboundp
syn keyword txl_keyword contained fifth fileno filter-equal filter-string-tree
syn keyword txl_keyword contained finalize find find-if find-max
syn keyword txl_keyword contained find-min find-package first fixnump
syn keyword txl_keyword contained flatten flatten* flet flip
syn keyword txl_keyword contained flipargs flo-dig flo-epsilon flo-int
syn keyword txl_keyword contained flo-max 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 fstat fun func-get-env
syn keyword txl_keyword contained func-get-form func-get-name func-set-env functionp
syn keyword txl_keyword contained gcd gen generate gensym
syn keyword txl_keyword contained gequal get-byte get-char get-clobber-expander
syn keyword txl_keyword contained get-delete-expander get-error get-error-str get-hash-userdata
syn keyword txl_keyword contained get-indent get-indent-mode get-line get-lines
syn keyword txl_keyword contained get-list-from-stream get-sig-handler get-string get-string-from-stream
syn keyword txl_keyword contained get-update-expander getegid getenv geteuid
syn keyword txl_keyword contained getgid getgroups gethash getitimer
syn keyword txl_keyword contained getpid getppid getuid giterate
syn keyword txl_keyword contained glob glob-altdirfunc glob-brace glob-err
syn keyword txl_keyword contained glob-mark glob-nocheck glob-noescape glob-nomagic
syn keyword txl_keyword contained glob-nosort glob-onlydir glob-period glob-tilde
syn keyword txl_keyword contained glob-tilde-check greater group-by gun
syn keyword txl_keyword contained hash hash-alist hash-construct hash-count
syn keyword txl_keyword contained hash-diff hash-eql hash-equal hash-from-pairs
syn keyword txl_keyword contained hash-isec hash-keys hash-list hash-pairs
syn keyword txl_keyword contained hash-proper-subset hash-revget hash-subset hash-uni
syn keyword txl_keyword contained hash-update hash-update-1 hash-values hashp
syn keyword txl_keyword contained have html-decode html-encode iapply
syn keyword txl_keyword contained identity ido if ifa
syn keyword txl_keyword contained iff iffi iflet ignerr
syn keyword txl_keyword contained in inc inc-indent indent-code
syn keyword txl_keyword contained indent-data indent-off inhash int-flo
syn keyword txl_keyword contained int-str integerp intern interp-fun-p
syn keyword txl_keyword contained interpose ip ipf isqrt
syn keyword txl_keyword contained itimer-prov itimer-real itimer-virtual juxt
syn keyword txl_keyword contained keep-if keep-if* keyword-package keywordp
syn keyword txl_keyword contained kill labels lambda last
syn keyword txl_keyword contained lazy-str lazy-str-force lazy-str-force-upto lazy-str-get-trailing-list
syn keyword txl_keyword contained lazy-stream-cons lazy-stringp lbind lcm
syn keyword txl_keyword contained lcons lcons-fun lconsp ldiff
syn keyword txl_keyword contained length length-list length-str length-str-<
syn keyword txl_keyword contained length-str-<= length-str-> length-str->= length-vec
syn keyword txl_keyword contained lequal less let let*
syn keyword txl_keyword contained lexical-fun-p lexical-lisp1-binding lexical-var-p lib-version
syn keyword txl_keyword contained link lisp-parse list list*
syn keyword txl_keyword contained list-str list-vector listp load
syn keyword txl_keyword contained log log-alert log-auth log-authpriv
syn keyword txl_keyword contained log-cons log-crit log-daemon log-debug
syn keyword txl_keyword contained log-emerg log-err log-info log-ndelay
syn keyword txl_keyword contained log-notice log-nowait log-odelay log-perror
syn keyword txl_keyword contained log-pid log-user log-warning log10
syn keyword txl_keyword contained log2 logand logior lognot
syn keyword txl_keyword contained logtest logtrunc logxor lstat
syn keyword txl_keyword contained mac-param-bind 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-like
syn keyword txl_keyword contained make-package make-random-state make-similar-hash make-string-byte-input-stream
syn keyword txl_keyword contained make-string-input-stream make-string-output-stream make-strlist-output-stream make-sym
syn keyword txl_keyword contained make-time make-time-utc make-trie makedev
syn keyword txl_keyword contained makunbound mapcar mapcar* mapdo
syn keyword txl_keyword contained mapf maphash mappend mappend*
syn keyword txl_keyword contained mask match-fun match-regex match-regex-right
syn keyword txl_keyword contained match-regst match-regst-right match-str match-str-tree
syn keyword txl_keyword contained max member member-if memq
syn keyword txl_keyword contained memql memqual merge min
syn keyword txl_keyword contained minor minusp mkdir mknod
syn keyword txl_keyword contained mkstring mlet mod multi
syn keyword txl_keyword contained multi-sort n-choose-k n-perm-k nconc
syn keyword txl_keyword contained nilf ninth none not
syn keyword txl_keyword contained notf nreverse nthcdr null
syn keyword txl_keyword contained nullify num-chr num-str numberp
syn keyword txl_keyword contained oand 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 packagep pad partition partition*
syn keyword txl_keyword contained partition-by perm pipe place-form-p
syn keyword txl_keyword contained placelet placelet* plusp poll
syn keyword txl_keyword contained poll-err poll-in poll-nval poll-out
syn keyword txl_keyword contained poll-pri poll-rdband poll-rdhup poll-wrband
syn keyword txl_keyword contained pop pos pos-if pos-max
syn keyword txl_keyword contained pos-min posq posql posqual
syn keyword txl_keyword contained pppred ppred pprinl pprint
syn keyword txl_keyword contained pprof pred prinl print
syn keyword txl_keyword contained prof prog1 progn prop
syn keyword txl_keyword contained proper-listp pset push pushhash
syn keyword txl_keyword contained pushnew put-byte put-char put-line
syn keyword txl_keyword contained put-lines put-string put-strings pwd
syn keyword txl_keyword contained qquote quasi quasilist quote
syn keyword txl_keyword contained rand random random-fixnum random-state-p
syn keyword txl_keyword contained range range* range-regex rcomb
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 regsub rehome-sym
syn keyword txl_keyword contained remhash remove-if remove-if* remove-path
syn keyword txl_keyword contained remq remq* remql remql*
syn keyword txl_keyword contained remqual remqual* rename-path repeat
syn keyword txl_keyword contained replace replace-list replace-str replace-vec
syn keyword txl_keyword contained rest ret retf return
syn keyword txl_keyword contained return-from reverse rlcp rlet
syn keyword txl_keyword contained rotate rperm rplaca rplacd
syn keyword txl_keyword contained run s-ifblk s-ifchr s-ifdir
syn keyword txl_keyword contained s-ififo s-iflnk s-ifmt s-ifreg
syn keyword txl_keyword contained s-ifsock s-irgrp s-iroth s-irusr
syn keyword txl_keyword contained s-irwxg s-irwxo s-irwxu s-isgid
syn keyword txl_keyword contained s-isuid s-isvtx s-iwgrp s-iwoth
syn keyword txl_keyword contained s-iwusr s-ixgrp s-ixoth s-ixusr
syn keyword txl_keyword contained search search-regex search-regst search-str
syn keyword txl_keyword contained search-str-tree second seek-stream select
syn keyword txl_keyword contained self-path seqp set set-diff
syn keyword txl_keyword contained set-hash-userdata set-indent set-indent-mode set-sig-handler
syn keyword txl_keyword contained setegid setenv seteuid setgid
syn keyword txl_keyword contained sethash setitimer setlogmask setq
syn keyword txl_keyword contained setuid seventh sh shift
syn keyword txl_keyword contained sig-abrt sig-alrm sig-bus sig-check
syn keyword txl_keyword contained sig-chld sig-cont sig-fpe sig-hup
syn keyword txl_keyword contained sig-ill sig-int sig-io sig-iot
syn keyword txl_keyword contained sig-kill sig-lost sig-pipe sig-poll
syn keyword txl_keyword contained sig-prof sig-pwr sig-quit sig-segv
syn keyword txl_keyword contained sig-stkflt sig-stop sig-sys sig-term
syn keyword txl_keyword contained sig-trap sig-tstp sig-ttin sig-ttou
syn keyword txl_keyword contained sig-urg sig-usr1 sig-usr2 sig-vtalrm
syn keyword txl_keyword contained sig-winch sig-xcpu sig-xfsz sign-extend
syn keyword txl_keyword contained sin sixth size-vec some
syn keyword txl_keyword contained sort sort-group source-loc source-loc-str
syn keyword txl_keyword contained span-str special-operator-p special-var-p splice
syn keyword txl_keyword contained split split-str split-str-set sqrt
syn keyword txl_keyword contained sssucc ssucc stat stdlib
syn keyword txl_keyword contained str< str<= str= str>
syn keyword txl_keyword contained str>= stream-get-prop stream-set-prop streamp
syn keyword txl_keyword contained string-extend string-lt stringp sub
syn keyword txl_keyword contained sub-list sub-str sub-vec succ
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-value sys-mark-special sys-qquote sys-splice
syn keyword txl_keyword contained sys-unquote sys:*lisp1* sys:eval-err sys:get-fb
syn keyword txl_keyword contained sys:get-vb sys:l1-setq sys:l1-val sys:pl-expand
syn keyword txl_keyword contained sys:placelet-1 sys:sym-clobber-expander sys:sym-delete-expander sys:sym-update-expander
syn keyword txl_keyword contained sys:trigger-load syslog tan tb
syn keyword txl_keyword contained tc tenth test-set-indent-mode tf
syn keyword txl_keyword contained third throw throwf time
syn keyword txl_keyword contained time-fields-local time-fields-utc time-string-local time-string-utc
syn keyword txl_keyword contained time-usec tofloat toint tok-str
syn keyword txl_keyword contained tok-where tostring tostringp tprint
syn keyword txl_keyword contained transpose tree-bind tree-case tree-find
syn keyword txl_keyword contained trie-add trie-compress trie-lookup-begin trie-lookup-feed-char
syn keyword txl_keyword contained trie-value-at trim-str true trunc
syn keyword txl_keyword contained trunc-rem tuples txr-case txr-case-impl
syn keyword txl_keyword contained txr-if txr-version txr-when typeof
syn keyword txl_keyword contained unget-byte unget-char uniq unique
syn keyword txl_keyword contained unless unquote unsetenv until
syn keyword txl_keyword contained until* upcase-str update url-decode
syn keyword txl_keyword contained url-encode user-package usleep uw-protect
syn keyword txl_keyword contained var vec vec-push vec-set-length
syn keyword txl_keyword contained vecref vector vector-list vectorp
syn keyword txl_keyword contained w-continued w-coredump w-exitstatus w-ifcontinued
syn keyword txl_keyword contained w-ifexited w-ifsignaled w-ifstopped w-nohang
syn keyword txl_keyword contained w-stopsig w-termsig w-untraced wait
syn keyword txl_keyword contained weave when whenlet where
syn keyword txl_keyword contained while while* whilet width
syn keyword txl_keyword contained width-check with-clobber-expander with-delete-expander with-gensyms
syn keyword txl_keyword contained with-resources with-saved-vars with-update-expander wrap
syn keyword txl_keyword contained wrap* 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_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"