summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-07-25 19:03:17 -0700
committerKaz Kylheku <kaz@kylheku.com>2015-07-25 19:03:17 -0700
commitfd0b9edb909e9a987b70c30d9c747e8798d16c5c (patch)
tree2530583f7a5aff73b5db9df51c3de45439f65452
parentf02c0c3b8a4311dcbd9e293a566c365e23cb6e17 (diff)
downloadtxr-fd0b9edb909e9a987b70c30d9c747e8798d16c5c.tar.gz
txr-fd0b9edb909e9a987b70c30d9c747e8798d16c5c.tar.bz2
txr-fd0b9edb909e9a987b70c30d9c747e8798d16c5c.zip
Version 110.txr-110
-rw-r--r--ChangeLog24
-rw-r--r--RELNOTES83
-rwxr-xr-xconfigure2
-rw-r--r--share/txr/stdlib/ver.tl2
-rw-r--r--tl.vim339
-rw-r--r--txr.14
-rw-r--r--txr.vim359
7 files changed, 482 insertions, 331 deletions
diff --git a/ChangeLog b/ChangeLog
index 581866e8..141e1694 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
2015-07-25 Kaz Kylheku <kaz@kylheku.com>
+ Version 110.
+
+ * RELNOTES: Updated.
+
+ * configure, txr.1: Bumped version and date.
+
+ * share/txr/stdlib/ver.tl: Likewise.
+
+ * tl.vim, txr.vim: Regenerated.
+
+2015-07-25 Kaz Kylheku <kaz@kylheku.com>
+
* genvim.txr: Improved highlighting of items in quasiquote.
Lists can be spliced and quoted. Metanums and metavars can
be prefixed by multiple @'s.
@@ -724,18 +736,6 @@
2015-06-20 Kaz Kylheku <kaz@kylheku.com>
- Version 109.
-
- * RELNOTES: Updated.
-
- * configure, txr.1: Bumped version and date.
-
- * share/txr/stdlib/ver.tl: Likewise.
-
- * tl.vim, txr.vim: Regenerated.
-
-2015-06-20 Kaz Kylheku <kaz@kylheku.com>
-
* genman.txr: Rewrite the man2html-generated inner name links with hash
values derived from the title text, so that when sections are inserted
or deleted, the URL's remain stable. The PREAMBLE is gone, and
diff --git a/RELNOTES b/RELNOTES
index 54dcf2fa..621112ca 100644
--- a/RELNOTES
+++ b/RELNOTES
@@ -1,3 +1,86 @@
+ TXR 110
+ 2015-07-25
+
+
+ Features
+
+ - New relational predicate functions hash-subset and hash-proper-subset.
+
+ - New functions hash-from-pairs and hash-list.
+
+ - Improvements in quasiliterals:
+ - compound @@ now supported on numbers and symbols, improving utility of
+ quasiliterals in multiply nested op syntax.
+ - \@ escape introduced for encoding literal @ in quasiliterals.
+ - @<num> notation allowed in brace variables (more of a bugfix).
+
+ - Optional trailing semicolon punctuator supported on hex and octal
+ characters in string and quasiliterals, like it already is on hex and octal
+ characters in the TXR pattern language.
+
+ - The op syntax positional arguments @1, @2 ... and @rest are now
+ syntactic places: they can be assigned, etc.
+
+ - Powerful new binding macros placelet and placelet* for creating lexical
+ aliases for syntactic places with once-evaluation semantics.
+
+ - The "it" variable in the anaphoric ifa is now a place if the form that
+ it denotes is a place. The place is evaluated exactly once no matter how
+ many times the it variable is accessed or updated in its scope.
+
+ - Hash-bang support in .tl files.
+
+ - With only a few sensible exceptions, most unimplemented stream operations
+ now throw exceptions, rather than silently doing nothing.
+
+ - Improved printed representation of stream objects.
+
+ - New split function similar to partition, but keeps empty subsequences.
+
+ - Deletion of a (cdr ...) place now has different semantics, symmetric
+ with deletion of a (car ...) place.
+
+ - The accessors caar, cadr, cdar, cddr, ... are all provided now, in
+ all combinations down to five levels deep.
+
+ - The functions second, third, fourth, ... are all accessors now,
+ and are provided up through tenth. They work with vectors and strings.
+
+ - New feature, "place macros": special macro expansions which apply
+ only to syntactic place forms, making it a cinch to define
+ to define new places in situations when they are expressible as a
+ syntactic transformation to existing places.
+
+ - The nthcdr function from Common Lisp is introduced, with the
+ added functionality that it behaves like an accessor.
+
+ - New with-resources macro for block-scoped acquisition and release
+ of multiple resources.
+
+ - Backslash-newline continuation in word list listerals (WLL-s) and
+ quasiword list literals (QLL-s) now separates words. An unescaped
+ newline is not allowed.
+
+ Bugs
+
+ - TXR 97 regression in quasiliterals fixed: `@{(expr) modifier}` ignores
+ modifier whenever (expr) is an expression that undergoes expansion.
+
+ - Fix in printed representation of a stdio stream.
+
+ - define-modify-macro was not registered for auto-loading.
+
+ - Fixed broken unget-char and unget-byte on catenated streams.
+
+ - Fixed broken lexical analysis of consecutive top-level forms,
+ like 4(x) where one call to the parser consumes 4(, so the
+ next call sees x).
+
+ - Fixed bug in print and pprint: wrong return value when printing a dwim
+ form. These functions must always return their leftmost argument.
+
+
+
TXR 109
2015-06-21
diff --git a/configure b/configure
index 11f30da4..1420f1a3 100755
--- a/configure
+++ b/configure
@@ -414,7 +414,7 @@ fi
#
-txr_ver=109
+txr_ver=110
#
# The all important banner.
diff --git a/share/txr/stdlib/ver.tl b/share/txr/stdlib/ver.tl
index 086effda..c4daa06e 100644
--- a/share/txr/stdlib/ver.tl
+++ b/share/txr/stdlib/ver.tl
@@ -1 +1 @@
-(defvar *lib-version* 109)
+(defvar *lib-version* 110)
diff --git a/tl.vim b/tl.vim
index 7b1ae187..d48cd574 100644
--- a/tl.vim
+++ b/tl.vim
@@ -23,43 +23,59 @@ setlocal iskeyword=a-z,A-Z,48-57,!,$,&,*,+,-,<,=,>,?,\\,_,~,/
syn keyword txl_keyword contained * *args* *e* *flo-dig*
syn keyword txl_keyword contained *flo-epsilon* *flo-max* *flo-min* *full-args*
syn keyword txl_keyword contained *gensym-counter* *keyword-package* *pi* *place-clobber-expander*
-syn keyword txl_keyword contained *place-delete-expander* *place-update-expander* *random-state* *self-path*
-syn keyword txl_keyword contained *stddebug* *stderr* *stdin* *stdlog*
-syn keyword txl_keyword contained *stdnull* *stdout* *txr-version* *unhandled-hook*
-syn keyword txl_keyword contained *user-package* + - /
-syn keyword txl_keyword contained /= < <= =
-syn keyword txl_keyword contained > >= abort abs
-syn keyword txl_keyword contained abs-path-p acons acons-new aconsql-new
-syn keyword txl_keyword contained acos ado alist-nremove alist-remove
-syn keyword txl_keyword contained all and andf ap
-syn keyword txl_keyword contained apf append append* append-each
-syn keyword txl_keyword contained append-each* apply aret ash
-syn keyword txl_keyword contained asin assoc assql atan
-syn keyword txl_keyword contained atan2 atom bignump bit
-syn keyword txl_keyword contained block boundp break-str call
+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 cdr ceil
-syn keyword txl_keyword contained chain chand chdir chmod
-syn keyword txl_keyword contained chr-isalnum chr-isalpha chr-isascii chr-isblank
-syn keyword txl_keyword contained chr-iscntrl chr-isdigit chr-isgraph chr-islower
-syn keyword txl_keyword contained chr-isprint chr-ispunct chr-isspace chr-isunisp
-syn keyword txl_keyword contained chr-isupper chr-isxdigit chr-num chr-str
-syn keyword txl_keyword contained chr-str-set chr-tolower chr-toupper chrp
-syn keyword txl_keyword contained clear-error 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-vec cos count-if
-syn keyword txl_keyword contained countq countql countqual cum-norm-dist
-syn keyword txl_keyword contained daemon dec define-modify-macro defmacro
-syn keyword txl_keyword contained defparm defplace defsymacro defun
-syn keyword txl_keyword contained defvar del delay delete-package
-syn keyword txl_keyword contained do dohash dotimes downcase-str
-syn keyword txl_keyword contained dup dupfd dwim each
-syn keyword txl_keyword contained each* empty ensure-dir env
+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 clear-error close-stream
+syn keyword txl_keyword contained closelog cmp-str collect-each collect-each*
+syn keyword txl_keyword contained comb compl-span-str cond conda
+syn keyword txl_keyword contained cons conses conses* consp
+syn keyword txl_keyword contained constantp copy copy-alist copy-cons
+syn keyword txl_keyword contained copy-hash copy-list copy-str copy-vec
+syn keyword txl_keyword contained cos count-if countq countql
+syn keyword txl_keyword contained countqual cum-norm-dist daemon dec
+syn keyword txl_keyword contained define-modify-macro define-place-macro defmacro defparm
+syn keyword txl_keyword contained defplace defsymacro defun defvar
+syn keyword txl_keyword contained del delay delete-package 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
@@ -85,7 +101,8 @@ syn keyword txl_keyword contained glob-noescape glob-nomagic glob-nosort glob-on
syn keyword txl_keyword contained glob-period glob-tilde glob-tilde-check greater
syn keyword txl_keyword contained group-by gun hash hash-alist
syn keyword txl_keyword contained hash-construct hash-count hash-diff hash-eql
-syn keyword txl_keyword contained hash-equal hash-isec hash-keys hash-pairs
+syn keyword txl_keyword contained hash-equal hash-from-pairs hash-isec hash-keys
+syn keyword txl_keyword contained hash-list hash-pairs hash-proper-subset hash-subset
syn keyword txl_keyword contained hash-uni hash-update hash-update-1 hash-values
syn keyword txl_keyword contained hashp have html-decode html-encode
syn keyword txl_keyword contained iapply identity ido if
@@ -111,76 +128,78 @@ 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 macro-form-p macro-time
-syn keyword txl_keyword contained macroexpand macroexpand-1 macrolet major
-syn keyword txl_keyword contained make-catenated-stream make-env make-hash make-lazy-cons
-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-sym make-time make-time-utc make-trie
-syn keyword txl_keyword contained makedev makunbound mapcar mapcar*
-syn keyword txl_keyword contained mapdo mapf maphash mappend
-syn keyword txl_keyword contained mappend* mask match-fun match-regex
-syn keyword txl_keyword contained match-regex-right match-regst match-regst-right match-str
-syn keyword txl_keyword contained match-str-tree max member member-if
-syn keyword txl_keyword contained memq memql memqual merge
-syn keyword txl_keyword contained min minor minusp mkdir
-syn keyword txl_keyword contained mknod mkstring mlet mod
-syn keyword txl_keyword contained multi multi-sort n-choose-k n-perm-k
-syn keyword txl_keyword contained nconc nilf none not
-syn keyword txl_keyword contained notf nreverse null nullify
-syn keyword txl_keyword contained num-chr num-str numberp oand
-syn keyword txl_keyword contained oddp op open-command open-directory
-syn keyword txl_keyword contained open-file open-fileno open-files open-files*
-syn keyword txl_keyword contained open-pipe open-process open-tail openlog
-syn keyword txl_keyword contained opip or orf packagep
-syn keyword txl_keyword contained pad partition partition* partition-by
-syn keyword txl_keyword contained perm pipe 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 seqp set set-diff set-hash-userdata
-syn keyword txl_keyword contained set-sig-handler setenv sethash setitimer
-syn keyword txl_keyword contained setlogmask setq 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 splice split-str split-str-set
+syn keyword txl_keyword contained logtrunc logxor mac-param-bind macro-form-p
+syn keyword txl_keyword contained macro-time macroexpand macroexpand-1 macrolet
+syn keyword txl_keyword contained major make-catenated-stream make-env make-hash
+syn keyword txl_keyword contained make-lazy-cons make-like make-package make-random-state
+syn keyword txl_keyword contained make-similar-hash make-string-byte-input-stream make-string-input-stream make-string-output-stream
+syn keyword txl_keyword contained make-strlist-output-stream make-sym make-time make-time-utc
+syn keyword txl_keyword contained make-trie makedev makunbound mapcar
+syn keyword txl_keyword contained mapcar* mapdo mapf maphash
+syn keyword txl_keyword contained mappend mappend* mask match-fun
+syn keyword txl_keyword contained match-regex match-regex-right match-regst match-regst-right
+syn keyword txl_keyword contained match-str match-str-tree max member
+syn keyword txl_keyword contained member-if memq memql memqual
+syn keyword txl_keyword contained merge min minor minusp
+syn keyword txl_keyword contained mkdir mknod mkstring mlet
+syn keyword txl_keyword contained mod multi multi-sort n-choose-k
+syn keyword txl_keyword contained n-perm-k nconc nilf ninth
+syn keyword txl_keyword contained none not notf nreverse
+syn keyword txl_keyword contained nthcdr null nullify num-chr
+syn keyword txl_keyword contained num-str numberp oand oddp
+syn keyword txl_keyword contained op open-command open-directory open-file
+syn keyword txl_keyword contained open-fileno open-files open-files* open-pipe
+syn keyword txl_keyword contained open-process open-tail openlog opip
+syn keyword txl_keyword contained or orf packagep pad
+syn keyword txl_keyword contained partition partition* partition-by 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-rdhup poll-wrband pop pos
+syn keyword txl_keyword contained pos-if pos-max pos-min posq
+syn keyword txl_keyword contained posql posqual pppred ppred
+syn keyword txl_keyword contained pprinl pprint pprof pred
+syn keyword txl_keyword contained prinl print prof prog1
+syn keyword txl_keyword contained progn 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 quasi
+syn keyword txl_keyword contained quasilist quote rand random
+syn keyword txl_keyword contained random-fixnum random-state-p range range*
+syn keyword txl_keyword contained range-regex rcomb read readlink
+syn keyword txl_keyword contained real-time-stream-p reduce-left reduce-right ref
+syn keyword txl_keyword contained refset regex-compile regex-parse regexp
+syn keyword txl_keyword contained regsub rehome-sym remhash remove-if
+syn keyword txl_keyword contained remove-if* remove-path remq remq*
+syn keyword txl_keyword contained remql remql* remqual remqual*
+syn keyword txl_keyword contained rename-path repeat replace replace-list
+syn keyword txl_keyword contained replace-str replace-vec rest ret
+syn keyword txl_keyword contained retf return return-from reverse
+syn keyword txl_keyword contained rlcp rlet rotate rperm
+syn keyword txl_keyword contained rplaca rplacd run s-ifblk
+syn keyword txl_keyword contained s-ifchr s-ifdir s-ififo s-iflnk
+syn keyword txl_keyword contained s-ifmt s-ifreg s-ifsock s-irgrp
+syn keyword txl_keyword contained s-iroth s-irusr s-irwxg s-irwxo
+syn keyword txl_keyword contained s-irwxu s-isgid s-isuid s-isvtx
+syn keyword txl_keyword contained s-iwgrp s-iwoth s-iwusr s-ixgrp
+syn keyword txl_keyword contained s-ixoth s-ixusr search search-regex
+syn keyword txl_keyword contained search-regst search-str search-str-tree second
+syn keyword txl_keyword contained seek-stream select seqp set
+syn keyword txl_keyword contained set-diff set-hash-userdata set-sig-handler setenv
+syn keyword txl_keyword contained sethash setitimer setlogmask setq
+syn keyword txl_keyword contained seventh sh shift 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-lost sig-pipe sig-poll sig-prof
+syn keyword txl_keyword contained sig-pwr sig-quit sig-segv sig-stkflt
+syn keyword txl_keyword contained sig-stop sig-sys sig-term sig-trap
+syn keyword txl_keyword contained sig-tstp sig-ttin sig-ttou sig-urg
+syn keyword txl_keyword contained sig-usr1 sig-usr2 sig-vtalrm sig-winch
+syn keyword txl_keyword contained sig-xcpu sig-xfsz sign-extend sin
+syn keyword txl_keyword contained sixth size-vec some sort
+syn keyword txl_keyword contained sort-group source-loc source-loc-str span-str
+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 stdlib str< str<= str=
syn keyword txl_keyword contained str> str>= stream-get-prop stream-set-prop
@@ -188,53 +207,63 @@ syn keyword txl_keyword contained streamp string-extend string-lt stringp
syn keyword txl_keyword contained sub sub-list sub-str sub-vec
syn keyword txl_keyword contained succ swap symacrolet symbol-function
syn keyword txl_keyword contained symbol-name symbol-package symbol-value symbolp
-syn keyword txl_keyword contained symlink sys-qquote sys-splice sys-unquote
-syn keyword txl_keyword contained sys:*lisp1* sys:eval-err sys:get-fb sys:get-vb
-syn keyword txl_keyword contained sys:l1-setq sys:l1-val sys:sym-clobber-expander sys:sym-delete-expander
-syn keyword txl_keyword contained sys:sym-update-expander syslog tan tb
-syn keyword txl_keyword contained tc 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-usec tofloat
-syn keyword txl_keyword contained toint tok-str tok-where tostring
-syn keyword txl_keyword contained tostringp tprint transpose tree-bind
-syn keyword txl_keyword contained tree-case tree-find trie-add trie-compress
-syn keyword txl_keyword contained trie-lookup-begin trie-lookup-feed-char trie-value-at trim-str
-syn keyword txl_keyword contained true trunc trunc-rem tuples
-syn keyword txl_keyword contained txr-case txr-if 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 usleep uw-protect vec
-syn keyword txl_keyword contained vec-push vec-set-length vecref vector
-syn keyword txl_keyword contained vector-list vectorp w-continued w-coredump
-syn keyword txl_keyword contained w-exitstatus w-ifcontinued w-ifexited w-ifsignaled
-syn keyword txl_keyword contained w-ifstopped w-nohang w-stopsig w-termsig
-syn keyword txl_keyword contained w-untraced wait weave when
-syn keyword txl_keyword contained whenlet where while while*
-syn keyword txl_keyword contained whilet width with-clobber-expander with-delete-expander
-syn keyword txl_keyword contained with-gensyms with-saved-vars with-update-expander wrap
-syn keyword txl_keyword contained wrap* zap zerop zip
-syn match txr_metanum "@[0-9]\+"
-syn match txr_nested_error "[^\t `]\+" contained
+syn keyword txl_keyword contained symlink sys-lisp1-value 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 tf third
+syn keyword txl_keyword contained throw throwf time time-fields-local
+syn keyword txl_keyword contained time-fields-utc time-string-local time-string-utc time-usec
+syn keyword txl_keyword contained tofloat toint tok-str tok-where
+syn keyword txl_keyword contained tostring tostringp tprint transpose
+syn keyword txl_keyword contained tree-bind tree-case tree-find trie-add
+syn keyword txl_keyword contained trie-compress trie-lookup-begin trie-lookup-feed-char trie-value-at
+syn keyword txl_keyword contained trim-str true trunc trunc-rem
+syn keyword txl_keyword contained tuples txr-case txr-case-impl txr-if
+syn keyword txl_keyword contained txr-when typeof unget-byte unget-char
+syn keyword txl_keyword contained uniq unique unless unquote
+syn keyword txl_keyword contained unsetenv until until* upcase-str
+syn keyword txl_keyword contained update url-decode url-encode usleep
+syn keyword txl_keyword contained uw-protect 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 with-clobber-expander with-delete-expander with-gensyms with-resources
+syn keyword txl_keyword contained with-saved-vars with-update-expander wrap wrap*
+syn keyword txl_keyword contained zap zerop zip
+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[A-Fa-f0-9]\+"
-syn match txr_chr "#\\o[0-9]\+"
-syn match txr_chr "#\\[^ \t\nA-Za-z0-9_]"
-syn match txr_chr "#\\[A-Za-z0-9_]\+"
+syn match txr_chr "#\\x[0-9A-Fa-f]\+"
+syn match txr_chr "#\\o[0-7]\+"
+syn match txr_chr "#\\[^ \t\nA-Za-z_0-9]"
+syn match txr_chr "#\\[A-Za-z_0-9]\+"
syn match txr_ncomment ";.*"
syn match txr_dot "\." contained
syn match txr_num "#x[+\-]\?[0-9A-Fa-f]\+"
syn match txr_num "#o[+\-]\?[0-7]\+"
-syn match txr_num "#b[+\-]\?[0-1]\+"
-syn match txr_ident "[A-Za-z0-9!$%&*+\-<=>?\\_~]*[A-Za-z!$#%&*+\-<=>?\\^_~][A-Za-z0-9!$#%&*+\-<=>?\\^_~]*" contained
-syn match txl_ident "[:@][A-Za-z0-9!$%&*+\-<=>?\\\^_~/]\+"
-syn match txr_braced_ident "[:][A-Za-z0-9!$%&*+\-<=>?\\\^_~/]\+" contained
-syn match txl_ident "[A-Za-z0-9!$%&*+\-<=>?\\_~/]*[A-Za-z!$#%&*+\-<=>?\\^_~/][A-Za-z0-9!$#%&*+\-<=>?\\^_~/]*"
-syn match txr_num "[+\-]\?[0-9]\+\([^A-Za-z0-9!$#%&*+\-<=>?\\^_~/]\|\n\)"me=e-1
-syn match txr_badnum "[+\-]\?[0-9]*[.][0-9]\+\([eE][+\-]\?[0-9]\+\)\?[A-Za-z!$#%&*+\-<=>?\\^_~/]\+"
-syn match txr_num "[+\-]\?[0-9]*[.][0-9]\+\([eE][+\-]\?[0-9]\+\)\?\([^A-Za-z0-9!$#%&*+\-<=>?\\^_~/]\|\n\)"me=e-1
-syn match txr_num "[+\-]\?[0-9]\+\([eE][+\-]\?[0-9]\+\)\([^A-Za-z0-9!$#%&*+\-<=>?\\^_~/]\|\n\)"me=e-1
+syn match txr_num "#b[+\-]\?[01]\+"
+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!$%&*+\-<=>?\\_~^/]\+"
+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!$%&*+\-<=>?\\_~^/#]*"
+syn match txr_num "[+\-]\?[0-9]\+\([^A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]\|\n\)"me=e-1
+syn match txr_badnum "[+\-]\?[0-9]*[.][0-9]\+\([eE][+\-]\?[0-9]\+\)\?[A-Za-z_!$%&*+\-<=>?\\_~^/#]\+"
+syn match txr_num "[+\-]\?[0-9]*[.][0-9]\+\([eE][+\-]\?[0-9]\+\)\?\([^A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]\|\n\)"me=e-1
+syn match txr_num "[+\-]\?[0-9]\+\([eE][+\-]\?[0-9]\+\)\([^A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]\|\n\)"me=e-1
syn match txl_ident ":"
syn match txl_splice "[ \t,]\|,[*]"
@@ -245,14 +274,15 @@ 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_list 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 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 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 start=+#\?\*\?"+ skip=+\\\\\|\\"\|\\\n+ end=+"\|\n+
-syn region txr_quasilit start=+#\?\*\?`+ skip=+\\\\\|\\`\|\\\n+ end=+`\|\n+ contains=txr_splicevar,txr_metanum,txr_bracevar,txr_mlist,txr_mbracket
-syn region txr_regex start="/" skip="\\\\\|\\/\|\\\n" end="/\|\n"
-syn region txl_regex start="#/" skip="\\\\\|\\/\|\\\n" end="/\|\n"
+syn region txr_mlist 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 start=+#\?\*\?"+ end=+["\n]+ contains=txr_stresc,txr_numesc,txr_badesc
+syn region txr_quasilit 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 start="/" end="[/\n]" contains=txr_regesc,txr_numesc,txr_badesc
+syn region txl_regex start="#/" end="[/\n]" contains=txr_regesc,txr_numesc,txr_badesc
hi def link txr_at Special
hi def link txr_atstar Special
@@ -273,6 +303,11 @@ 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
diff --git a/txr.1 b/txr.1
index 975c205c..53205ef6 100644
--- a/txr.1
+++ b/txr.1
@@ -344,9 +344,9 @@
.ds TX \f[B]TXR\f[]
.ds TL \f[B]TXR Lisp\f[]
.\" Start of man page:
-.TH TXR 1 2015-06-21 "Utility Commands" "TXR Data Processing Language" "Kaz Kylheku"
+.TH TXR 1 2015-07-25 "Utility Commands" "TXR Data Processing Language" "Kaz Kylheku"
.SH* NAME
-\*(TX \- text processing language (version 109)
+\*(TX \- text processing language (version 110)
.SH* SYNOPSIS
.cblk
.meti txr >> [ options ] < query-file < data-files ..
diff --git a/txr.vim b/txr.vim
index 8241eb8c..0ab9438a 100644
--- a/txr.vim
+++ b/txr.vim
@@ -23,43 +23,59 @@ setlocal iskeyword=a-z,A-Z,48-57,!,$,&,*,+,-,<,=,>,?,\\,_,~,/
syn keyword txl_keyword contained * *args* *e* *flo-dig*
syn keyword txl_keyword contained *flo-epsilon* *flo-max* *flo-min* *full-args*
syn keyword txl_keyword contained *gensym-counter* *keyword-package* *pi* *place-clobber-expander*
-syn keyword txl_keyword contained *place-delete-expander* *place-update-expander* *random-state* *self-path*
-syn keyword txl_keyword contained *stddebug* *stderr* *stdin* *stdlog*
-syn keyword txl_keyword contained *stdnull* *stdout* *txr-version* *unhandled-hook*
-syn keyword txl_keyword contained *user-package* + - /
-syn keyword txl_keyword contained /= < <= =
-syn keyword txl_keyword contained > >= abort abs
-syn keyword txl_keyword contained abs-path-p acons acons-new aconsql-new
-syn keyword txl_keyword contained acos ado alist-nremove alist-remove
-syn keyword txl_keyword contained all and andf ap
-syn keyword txl_keyword contained apf append append* append-each
-syn keyword txl_keyword contained append-each* apply aret ash
-syn keyword txl_keyword contained asin assoc assql atan
-syn keyword txl_keyword contained atan2 atom bignump bit
-syn keyword txl_keyword contained block boundp break-str call
+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 cdr ceil
-syn keyword txl_keyword contained chain chand chdir chmod
-syn keyword txl_keyword contained chr-isalnum chr-isalpha chr-isascii chr-isblank
-syn keyword txl_keyword contained chr-iscntrl chr-isdigit chr-isgraph chr-islower
-syn keyword txl_keyword contained chr-isprint chr-ispunct chr-isspace chr-isunisp
-syn keyword txl_keyword contained chr-isupper chr-isxdigit chr-num chr-str
-syn keyword txl_keyword contained chr-str-set chr-tolower chr-toupper chrp
-syn keyword txl_keyword contained clear-error 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-vec cos count-if
-syn keyword txl_keyword contained countq countql countqual cum-norm-dist
-syn keyword txl_keyword contained daemon dec define-modify-macro defmacro
-syn keyword txl_keyword contained defparm defplace defsymacro defun
-syn keyword txl_keyword contained defvar del delay delete-package
-syn keyword txl_keyword contained do dohash dotimes downcase-str
-syn keyword txl_keyword contained dup dupfd dwim each
-syn keyword txl_keyword contained each* empty ensure-dir env
+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 clear-error close-stream
+syn keyword txl_keyword contained closelog cmp-str collect-each collect-each*
+syn keyword txl_keyword contained comb compl-span-str cond conda
+syn keyword txl_keyword contained cons conses conses* consp
+syn keyword txl_keyword contained constantp copy copy-alist copy-cons
+syn keyword txl_keyword contained copy-hash copy-list copy-str copy-vec
+syn keyword txl_keyword contained cos count-if countq countql
+syn keyword txl_keyword contained countqual cum-norm-dist daemon dec
+syn keyword txl_keyword contained define-modify-macro define-place-macro defmacro defparm
+syn keyword txl_keyword contained defplace defsymacro defun defvar
+syn keyword txl_keyword contained del delay delete-package 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
@@ -85,7 +101,8 @@ syn keyword txl_keyword contained glob-noescape glob-nomagic glob-nosort glob-on
syn keyword txl_keyword contained glob-period glob-tilde glob-tilde-check greater
syn keyword txl_keyword contained group-by gun hash hash-alist
syn keyword txl_keyword contained hash-construct hash-count hash-diff hash-eql
-syn keyword txl_keyword contained hash-equal hash-isec hash-keys hash-pairs
+syn keyword txl_keyword contained hash-equal hash-from-pairs hash-isec hash-keys
+syn keyword txl_keyword contained hash-list hash-pairs hash-proper-subset hash-subset
syn keyword txl_keyword contained hash-uni hash-update hash-update-1 hash-values
syn keyword txl_keyword contained hashp have html-decode html-encode
syn keyword txl_keyword contained iapply identity ido if
@@ -111,76 +128,78 @@ 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 macro-form-p macro-time
-syn keyword txl_keyword contained macroexpand macroexpand-1 macrolet major
-syn keyword txl_keyword contained make-catenated-stream make-env make-hash make-lazy-cons
-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-sym make-time make-time-utc make-trie
-syn keyword txl_keyword contained makedev makunbound mapcar mapcar*
-syn keyword txl_keyword contained mapdo mapf maphash mappend
-syn keyword txl_keyword contained mappend* mask match-fun match-regex
-syn keyword txl_keyword contained match-regex-right match-regst match-regst-right match-str
-syn keyword txl_keyword contained match-str-tree max member member-if
-syn keyword txl_keyword contained memq memql memqual merge
-syn keyword txl_keyword contained min minor minusp mkdir
-syn keyword txl_keyword contained mknod mkstring mlet mod
-syn keyword txl_keyword contained multi multi-sort n-choose-k n-perm-k
-syn keyword txl_keyword contained nconc nilf none not
-syn keyword txl_keyword contained notf nreverse null nullify
-syn keyword txl_keyword contained num-chr num-str numberp oand
-syn keyword txl_keyword contained oddp op open-command open-directory
-syn keyword txl_keyword contained open-file open-fileno open-files open-files*
-syn keyword txl_keyword contained open-pipe open-process open-tail openlog
-syn keyword txl_keyword contained opip or orf packagep
-syn keyword txl_keyword contained pad partition partition* partition-by
-syn keyword txl_keyword contained perm pipe 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 seqp set set-diff set-hash-userdata
-syn keyword txl_keyword contained set-sig-handler setenv sethash setitimer
-syn keyword txl_keyword contained setlogmask setq 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 splice split-str split-str-set
+syn keyword txl_keyword contained logtrunc logxor mac-param-bind macro-form-p
+syn keyword txl_keyword contained macro-time macroexpand macroexpand-1 macrolet
+syn keyword txl_keyword contained major make-catenated-stream make-env make-hash
+syn keyword txl_keyword contained make-lazy-cons make-like make-package make-random-state
+syn keyword txl_keyword contained make-similar-hash make-string-byte-input-stream make-string-input-stream make-string-output-stream
+syn keyword txl_keyword contained make-strlist-output-stream make-sym make-time make-time-utc
+syn keyword txl_keyword contained make-trie makedev makunbound mapcar
+syn keyword txl_keyword contained mapcar* mapdo mapf maphash
+syn keyword txl_keyword contained mappend mappend* mask match-fun
+syn keyword txl_keyword contained match-regex match-regex-right match-regst match-regst-right
+syn keyword txl_keyword contained match-str match-str-tree max member
+syn keyword txl_keyword contained member-if memq memql memqual
+syn keyword txl_keyword contained merge min minor minusp
+syn keyword txl_keyword contained mkdir mknod mkstring mlet
+syn keyword txl_keyword contained mod multi multi-sort n-choose-k
+syn keyword txl_keyword contained n-perm-k nconc nilf ninth
+syn keyword txl_keyword contained none not notf nreverse
+syn keyword txl_keyword contained nthcdr null nullify num-chr
+syn keyword txl_keyword contained num-str numberp oand oddp
+syn keyword txl_keyword contained op open-command open-directory open-file
+syn keyword txl_keyword contained open-fileno open-files open-files* open-pipe
+syn keyword txl_keyword contained open-process open-tail openlog opip
+syn keyword txl_keyword contained or orf packagep pad
+syn keyword txl_keyword contained partition partition* partition-by 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-rdhup poll-wrband pop pos
+syn keyword txl_keyword contained pos-if pos-max pos-min posq
+syn keyword txl_keyword contained posql posqual pppred ppred
+syn keyword txl_keyword contained pprinl pprint pprof pred
+syn keyword txl_keyword contained prinl print prof prog1
+syn keyword txl_keyword contained progn 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 quasi
+syn keyword txl_keyword contained quasilist quote rand random
+syn keyword txl_keyword contained random-fixnum random-state-p range range*
+syn keyword txl_keyword contained range-regex rcomb read readlink
+syn keyword txl_keyword contained real-time-stream-p reduce-left reduce-right ref
+syn keyword txl_keyword contained refset regex-compile regex-parse regexp
+syn keyword txl_keyword contained regsub rehome-sym remhash remove-if
+syn keyword txl_keyword contained remove-if* remove-path remq remq*
+syn keyword txl_keyword contained remql remql* remqual remqual*
+syn keyword txl_keyword contained rename-path repeat replace replace-list
+syn keyword txl_keyword contained replace-str replace-vec rest ret
+syn keyword txl_keyword contained retf return return-from reverse
+syn keyword txl_keyword contained rlcp rlet rotate rperm
+syn keyword txl_keyword contained rplaca rplacd run s-ifblk
+syn keyword txl_keyword contained s-ifchr s-ifdir s-ififo s-iflnk
+syn keyword txl_keyword contained s-ifmt s-ifreg s-ifsock s-irgrp
+syn keyword txl_keyword contained s-iroth s-irusr s-irwxg s-irwxo
+syn keyword txl_keyword contained s-irwxu s-isgid s-isuid s-isvtx
+syn keyword txl_keyword contained s-iwgrp s-iwoth s-iwusr s-ixgrp
+syn keyword txl_keyword contained s-ixoth s-ixusr search search-regex
+syn keyword txl_keyword contained search-regst search-str search-str-tree second
+syn keyword txl_keyword contained seek-stream select seqp set
+syn keyword txl_keyword contained set-diff set-hash-userdata set-sig-handler setenv
+syn keyword txl_keyword contained sethash setitimer setlogmask setq
+syn keyword txl_keyword contained seventh sh shift 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-lost sig-pipe sig-poll sig-prof
+syn keyword txl_keyword contained sig-pwr sig-quit sig-segv sig-stkflt
+syn keyword txl_keyword contained sig-stop sig-sys sig-term sig-trap
+syn keyword txl_keyword contained sig-tstp sig-ttin sig-ttou sig-urg
+syn keyword txl_keyword contained sig-usr1 sig-usr2 sig-vtalrm sig-winch
+syn keyword txl_keyword contained sig-xcpu sig-xfsz sign-extend sin
+syn keyword txl_keyword contained sixth size-vec some sort
+syn keyword txl_keyword contained sort-group source-loc source-loc-str span-str
+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 stdlib str< str<= str=
syn keyword txl_keyword contained str> str>= stream-get-prop stream-set-prop
@@ -188,32 +207,34 @@ syn keyword txl_keyword contained streamp string-extend string-lt stringp
syn keyword txl_keyword contained sub sub-list sub-str sub-vec
syn keyword txl_keyword contained succ swap symacrolet symbol-function
syn keyword txl_keyword contained symbol-name symbol-package symbol-value symbolp
-syn keyword txl_keyword contained symlink sys-qquote sys-splice sys-unquote
-syn keyword txl_keyword contained sys:*lisp1* sys:eval-err sys:get-fb sys:get-vb
-syn keyword txl_keyword contained sys:l1-setq sys:l1-val sys:sym-clobber-expander sys:sym-delete-expander
-syn keyword txl_keyword contained sys:sym-update-expander syslog tan tb
-syn keyword txl_keyword contained tc 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-usec tofloat
-syn keyword txl_keyword contained toint tok-str tok-where tostring
-syn keyword txl_keyword contained tostringp tprint transpose tree-bind
-syn keyword txl_keyword contained tree-case tree-find trie-add trie-compress
-syn keyword txl_keyword contained trie-lookup-begin trie-lookup-feed-char trie-value-at trim-str
-syn keyword txl_keyword contained true trunc trunc-rem tuples
-syn keyword txl_keyword contained txr-case txr-if 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 usleep uw-protect vec
-syn keyword txl_keyword contained vec-push vec-set-length vecref vector
-syn keyword txl_keyword contained vector-list vectorp w-continued w-coredump
-syn keyword txl_keyword contained w-exitstatus w-ifcontinued w-ifexited w-ifsignaled
-syn keyword txl_keyword contained w-ifstopped w-nohang w-stopsig w-termsig
-syn keyword txl_keyword contained w-untraced wait weave when
-syn keyword txl_keyword contained whenlet where while while*
-syn keyword txl_keyword contained whilet width with-clobber-expander with-delete-expander
-syn keyword txl_keyword contained with-gensyms with-saved-vars with-update-expander wrap
-syn keyword txl_keyword contained wrap* zap zerop zip
+syn keyword txl_keyword contained symlink sys-lisp1-value 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 tf third
+syn keyword txl_keyword contained throw throwf time time-fields-local
+syn keyword txl_keyword contained time-fields-utc time-string-local time-string-utc time-usec
+syn keyword txl_keyword contained tofloat toint tok-str tok-where
+syn keyword txl_keyword contained tostring tostringp tprint transpose
+syn keyword txl_keyword contained tree-bind tree-case tree-find trie-add
+syn keyword txl_keyword contained trie-compress trie-lookup-begin trie-lookup-feed-char trie-value-at
+syn keyword txl_keyword contained trim-str true trunc trunc-rem
+syn keyword txl_keyword contained tuples txr-case txr-case-impl txr-if
+syn keyword txl_keyword contained txr-when typeof unget-byte unget-char
+syn keyword txl_keyword contained uniq unique unless unquote
+syn keyword txl_keyword contained unsetenv until until* upcase-str
+syn keyword txl_keyword contained update url-decode url-encode usleep
+syn keyword txl_keyword contained uw-protect 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 with-clobber-expander with-delete-expander with-gensyms with-resources
+syn keyword txl_keyword contained with-saved-vars with-update-expander wrap wrap*
+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
@@ -229,38 +250,45 @@ 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_char "@[ \t]*\\x[0-9A-Fa-f]\+"
-syn match txr_char "@[ \t]*\\[0-9]\+"
-syn match txr_variable "@[ \t]*[*]\?[ \t]*[A-Za-z_][A-Za-z0-9_]*"
-syn match txr_splicevar "@[ \t,*]*[A-Za-z_][A-Za-z0-9_]*"
-syn match txr_regdir "@[ \t]*/\(\\/\|[^/]\|\\\n\)*/"
+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_metanum "@[0-9]\+"
-syn match txr_nested_error "[^\t `]\+" contained
+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[A-Fa-f0-9]\+" contained
-syn match txr_chr "#\\o[0-9]\+" contained
-syn match txr_chr "#\\[^ \t\nA-Za-z0-9_]" contained
-syn match txr_chr "#\\[A-Za-z0-9_]\+" 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[+\-]\?[0-1]\+" contained
-syn match txr_ident "[A-Za-z0-9!$%&*+\-<=>?\\_~]*[A-Za-z!$#%&*+\-<=>?\\^_~][A-Za-z0-9!$#%&*+\-<=>?\\^_~]*" contained
-syn match txl_ident "[:@][A-Za-z0-9!$%&*+\-<=>?\\\^_~/]\+" contained
-syn match txr_braced_ident "[:][A-Za-z0-9!$%&*+\-<=>?\\\^_~/]\+" contained
-syn match txl_ident "[A-Za-z0-9!$%&*+\-<=>?\\_~/]*[A-Za-z!$#%&*+\-<=>?\\^_~/][A-Za-z0-9!$#%&*+\-<=>?\\^_~/]*" contained
-syn match txr_num "[+\-]\?[0-9]\+\([^A-Za-z0-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-z0-9!$#%&*+\-<=>?\\^_~/]\|\n\)"me=e-1 contained
-syn match txr_num "[+\-]\?[0-9]\+\([eE][+\-]\?[0-9]\+\)\([^A-Za-z0-9!$#%&*+\-<=>?\\^_~/]\|\n\)"me=e-1 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
@@ -271,16 +299,16 @@ 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,txr_ident,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_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=+#\?\*\?"+ skip=+\\\\\|\\"\|\\\n+ end=+"\|\n+
-syn region txr_quasilit contained start=+#\?\*\?`+ skip=+\\\\\|\\`\|\\\n+ end=+`\|\n+ contains=txr_splicevar,txr_metanum,txr_bracevar,txr_mlist,txr_mbracket
-syn region txr_regex contained start="/" skip="\\\\\|\\/\|\\\n" end="/\|\n"
-syn region txl_regex contained start="#/" skip="\\\\\|\\/\|\\\n" end="/\|\n"
+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
@@ -301,6 +329,11 @@ 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