summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-10-11 08:15:13 -0700
committerKaz Kylheku <kaz@kylheku.com>2014-10-11 08:15:13 -0700
commitff18ec7c29456025f7e4e29c4d24f5efa1913ca8 (patch)
treecf0dcb762fab19e1df88902bf0e7a89f4a794f7a
parent570a4cd9315f1a2189cb6d1877aa13a78ec00f0a (diff)
downloadtxr-ff18ec7c29456025f7e4e29c4d24f5efa1913ca8.tar.gz
txr-ff18ec7c29456025f7e4e29c4d24f5efa1913ca8.tar.bz2
txr-ff18ec7c29456025f7e4e29c4d24f5efa1913ca8.zip
* eval.c (eval_init): Register chr_isblank and chr_isunisp as
intrinsics. * lib.c (chr_isblank, chr_isunisp): New functions. * lib.h (chr_isblank, chr_isunisp): Declared. * regex.h (spaces): Declaration for existing variable added. * txr.1: Documented chr-isblank and chr-isunisp. * genvim.txr: Add missing sysif.c. * txr.vim: Regenerated.
-rw-r--r--ChangeLog17
-rw-r--r--eval.c2
-rw-r--r--genvim.txr2
-rw-r--r--lib.c10
-rw-r--r--lib.h2
-rw-r--r--regex.h2
-rw-r--r--txr.155
-rw-r--r--txr.vim276
8 files changed, 227 insertions, 139 deletions
diff --git a/ChangeLog b/ChangeLog
index 19a8586d..64fb39a0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2014-10-11 Kaz Kylheku <kaz@kylheku.com>
+
+ * eval.c (eval_init): Register chr_isblank and chr_isunisp as
+ intrinsics.
+
+ * lib.c (chr_isblank, chr_isunisp): New functions.
+
+ * lib.h (chr_isblank, chr_isunisp): Declared.
+
+ * regex.h (spaces): Declaration for existing variable added.
+
+ * txr.1: Documented chr-isblank and chr-isunisp.
+
+ * genvim.txr: Add missing sysif.c.
+
+ * txr.vim: Regenerated.
+
2014-10-09 Kaz Kylheku <kaz@kylheku.com>
Fix gc safety issue in abs_path_p function.
diff --git a/eval.c b/eval.c
index 9063c2c5..4c48079f 100644
--- a/eval.c
+++ b/eval.c
@@ -3787,6 +3787,8 @@ void eval_init(void)
reg_fun(intern(lit("chr-isprint"), user_package), func_n1(chr_isprint));
reg_fun(intern(lit("chr-ispunct"), user_package), func_n1(chr_ispunct));
reg_fun(intern(lit("chr-isspace"), user_package), func_n1(chr_isspace));
+ reg_fun(intern(lit("chr-isblank"), user_package), func_n1(chr_isblank));
+ reg_fun(intern(lit("chr-isunisp"), user_package), func_n1(chr_isunisp));
reg_fun(intern(lit("chr-isupper"), user_package), func_n1(chr_isupper));
reg_fun(intern(lit("chr-isxdigit"), user_package), func_n1(chr_isxdigit));
reg_fun(intern(lit("chr-toupper"), user_package), func_n1(chr_toupper));
diff --git a/genvim.txr b/genvim.txr
index 25dfa04c..fcabea66 100644
--- a/genvim.txr
+++ b/genvim.txr
@@ -8,7 +8,7 @@ static void dir_tables_init(void)
}
@(end)
@(next @(open-files '("eval.c" "rand.c" "signal.c" "stream.c" "gc.c"
- "syslog.c" "filter.c" "txr.c" "arith.c")))
+ "syslog.c" "filter.c" "txr.c" "arith.c" "sysif.c")))
@(collect)
@ (block)
@ (cases)
diff --git a/lib.c b/lib.c
index 2c4db220..c90b4823 100644
--- a/lib.c
+++ b/lib.c
@@ -3085,6 +3085,16 @@ val chr_isspace(val ch)
return c_true(iswspace(c_chr(ch)));
}
+val chr_isblank(val ch)
+{
+ return c_true(ch == chr(' ') || ch == chr('\t'));
+}
+
+val chr_isunisp(val ch)
+{
+ return c_true(wcschr(spaces, c_chr(ch)));
+}
+
val chr_isupper(val ch)
{
return c_true(iswupper(c_chr(ch)));
diff --git a/lib.h b/lib.h
index e0afffac..f9fdf904 100644
--- a/lib.h
+++ b/lib.h
@@ -611,6 +611,8 @@ val chr_islower(val ch);
val chr_isprint(val ch);
val chr_ispunct(val ch);
val chr_isspace(val ch);
+val chr_isblank(val ch);
+val chr_isunisp(val ch);
val chr_isupper(val ch);
val chr_isxdigit(val ch);
val chr_toupper(val ch);
diff --git a/regex.h b/regex.h
index f19d4ec9..b2252d6e 100644
--- a/regex.h
+++ b/regex.h
@@ -27,6 +27,8 @@
extern val space_k, digit_k, word_char_k;
extern val cspace_k, cdigit_k, cword_char_k;
+extern wchar_t spaces[];
+
val regex_compile(val regex, val error_stream);
val regexp(val);
val search_regex(val haystack, val needle_regex, val start_num, val from_end);
diff --git a/txr.1 b/txr.1
index 7f4b5cb8..c0ac5a8a 100644
--- a/txr.1
+++ b/txr.1
@@ -15996,6 +15996,61 @@ and
For all other characters, it returns
.codn nil .
+.coNP Function @ chr-isblank
+.synb
+.mets (chr-isblank << char )
+.syne
+.desc
+This function returns
+.code t
+if
+.meta char
+is a space or tab: the character
+.code #\espace
+or
+.codn #\etab .
+For all other characters, it returns
+.codn nil .
+
+.coNP Function @ chr-isunisp
+.synb
+.mets (chr-isunisp << char )
+.syne
+.desc
+This function returns
+.code t
+if
+.meta char
+is a Unicode whitespace character. This the case for
+all the characters for which
+.code chr-isspace
+returns
+.codn t.
+It also returns
+.code t
+for these additional characters:
+.codn #\exa0 ,
+.codn #\ex1680 ,
+.codn #\ex180e ,
+.codn #\ex2000 ,
+.codn #\ex2001 ,
+.codn #\ex2002 ,
+.codn #\ex2003 ,
+.codn #\ex2004 ,
+.codn #\ex2005 ,
+.codn #\ex2006 ,
+.codn #\ex2007 ,
+.codn #\ex2008 ,
+.codn #\ex2009 ,
+.codn #\ex200a ,
+.codn #\ex2028 ,
+.codn #\ex2029 ,
+.codn #\ex205f ,
+and
+.codn #\ex3000 .
+For all other characters, it returns
+.codn nil .
+
.coNP Function @ chr-isupper
.synb
.mets (chr-isupper < char )
diff --git a/txr.vim b/txr.vim
index 02e4d73a..c82b805b 100644
--- a/txr.vim
+++ b/txr.vim
@@ -53,144 +53,144 @@ syn keyword txl_keyword contained break-str call car caseq
syn keyword txl_keyword contained caseql casequal cat-str cat-vec
syn keyword txl_keyword contained catch cdr ceil chain
syn keyword txl_keyword contained chdir chr-isalnum chr-isalpha chr-isascii
-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-isupper
-syn keyword txl_keyword contained chr-isxdigit chr-num chr-str chr-str-set
-syn keyword txl_keyword contained chr-tolower chr-toupper chrp close-stream
-syn keyword txl_keyword contained closelog cmp-str collect-each collect-each*
-syn keyword txl_keyword contained comb compl-span-str cond cons
-syn keyword txl_keyword contained conses conses* consp 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 defmacro defsymacro
-syn keyword txl_keyword contained defun defvar del delay
-syn keyword txl_keyword contained delete-package do dohash downcase-str
-syn keyword txl_keyword contained dwim each each* empty
-syn keyword txl_keyword contained env env-fbind env-hash env-vbind
-syn keyword txl_keyword contained eq eql equal errno
-syn keyword txl_keyword contained error eval evenp exit
-syn keyword txl_keyword contained exp expt exptmod false
-syn keyword txl_keyword contained fbind fboundp fifth filter-equal
-syn keyword txl_keyword contained filter-string-tree 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 flo-int flo-str floatp floor
-syn keyword txl_keyword contained flush-stream for for* force
-syn keyword txl_keyword contained format fourth fun func-get-env
-syn keyword txl_keyword contained func-get-form func-set-env functionp gcd
-syn keyword txl_keyword contained gen generate gensym get-byte
-syn keyword txl_keyword contained get-char get-hash-userdata 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 gethash getitimer getpid getppid
-syn keyword txl_keyword contained giterate group-by gun hash
-syn keyword txl_keyword contained hash-alist hash-construct hash-count hash-diff
-syn keyword txl_keyword contained hash-eql hash-equal hash-isec hash-keys
-syn keyword txl_keyword contained hash-pairs hash-uni hash-update hash-update-1
-syn keyword txl_keyword contained hash-values hashp html-decode html-encode
-syn keyword txl_keyword contained iapply identity ido if
-syn keyword txl_keyword contained iff iffi inc inhash
-syn keyword txl_keyword contained int-flo int-str integerp intern
-syn keyword txl_keyword contained interp-fun-p interpose ip ipf
-syn keyword txl_keyword contained isqrt itimer-prov itimer-real itimer-virtual
-syn keyword txl_keyword contained juxt keep-if keep-if* 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 lcons-fun
-syn keyword txl_keyword contained lconsp ldiff length length-list
-syn keyword txl_keyword contained length-str length-str-< length-str-<= length-str->
-syn keyword txl_keyword contained length-str->= length-vec let let*
-syn keyword txl_keyword contained link lisp-parse list list*
-syn keyword txl_keyword contained list-str list-vector listp 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 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 mapcar mapcar* mapdo
-syn keyword txl_keyword contained maphash mappend mappend* mask
-syn keyword txl_keyword contained match-fun match-regex match-regex-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 mkdir mknod
-syn keyword txl_keyword contained mkstring mod multi multi-sort
-syn keyword txl_keyword contained n-choose-k n-perm-k nconc nilf
-syn keyword txl_keyword contained none not nreverse null
-syn keyword txl_keyword contained nullify num-chr num-str numberp
-syn keyword txl_keyword contained oddp op open-command open-directory
-syn keyword txl_keyword contained open-file open-files open-files* open-pipe
-syn keyword txl_keyword contained open-process open-tail openlog or
-syn keyword txl_keyword contained orf packagep partition partition*
-syn keyword txl_keyword contained partition-by perm pop pos
-syn keyword txl_keyword contained pos-if pos-max pos-min posq
-syn keyword txl_keyword contained posql posqual pprinl pprint
-syn keyword txl_keyword contained pprof prinl print prof
-syn keyword txl_keyword contained prog1 progn prop proper-listp
-syn keyword txl_keyword contained push pushhash put-byte put-char
-syn keyword txl_keyword contained put-line put-lines put-string put-strings
-syn keyword txl_keyword contained pwd qquote quasi quasilist
-syn keyword txl_keyword contained quote rand random random-fixnum
-syn keyword txl_keyword contained random-state-p range range* range-regex
-syn keyword txl_keyword contained rcomb read readlink real-time-stream-p
-syn keyword txl_keyword contained reduce-left reduce-right ref refset
-syn keyword txl_keyword contained regex-compile regex-parse regexp 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-vec rest ret retf
-syn keyword txl_keyword contained return return-from reverse rlcp
-syn keyword txl_keyword contained rperm rplaca rplacd run
-syn keyword txl_keyword contained s-ifblk s-ifchr s-ifdir s-ififo
-syn keyword txl_keyword contained s-iflnk s-ifmt s-ifreg s-ifsock
-syn keyword txl_keyword contained s-irgrp s-iroth s-irusr s-irwxg
-syn keyword txl_keyword contained s-irwxo s-irwxu s-isgid s-isuid
-syn keyword txl_keyword contained s-isvtx s-iwgrp s-iwoth s-iwusr
-syn keyword txl_keyword contained s-ixgrp s-ixoth s-ixusr search
-syn keyword txl_keyword contained search-regex 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 sethash
-syn keyword txl_keyword contained setitimer setlogmask sh 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 sin sixth
-syn keyword txl_keyword contained size-vec some sort source-loc
-syn keyword txl_keyword contained source-loc-str span-str splice split-str
-syn keyword txl_keyword contained split-str-set sqrt 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 symacrolet
-syn keyword txl_keyword contained symbol-function symbol-name symbol-package symbol-value
-syn keyword txl_keyword contained symbolp symlink sys-qquote sys-splice
-syn keyword txl_keyword contained sys-unquote syslog tan 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 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 tuples
-syn keyword txl_keyword contained typeof unget-byte unget-char uniq
-syn keyword txl_keyword contained unless unquote 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 when where while with-saved-vars
-syn keyword txl_keyword contained zerop zip
+syn keyword txl_keyword contained chr-isblank chr-iscntrl chr-isdigit chr-isgraph
+syn keyword txl_keyword contained chr-islower chr-isprint chr-ispunct chr-isspace
+syn keyword txl_keyword contained chr-isunisp chr-isupper chr-isxdigit chr-num
+syn keyword txl_keyword contained chr-str chr-str-set chr-tolower chr-toupper
+syn keyword txl_keyword contained chrp close-stream closelog cmp-str
+syn keyword txl_keyword contained collect-each collect-each* comb compl-span-str
+syn keyword txl_keyword contained cond cons conses conses*
+syn keyword txl_keyword contained consp 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 defmacro defsymacro defun defvar
+syn keyword txl_keyword contained del delay delete-package do
+syn keyword txl_keyword contained dohash downcase-str dwim each
+syn keyword txl_keyword contained each* empty 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 exit exp expt
+syn keyword txl_keyword contained exptmod false fbind fboundp
+syn keyword txl_keyword contained fifth filter-equal filter-string-tree find
+syn keyword txl_keyword contained find-if find-max find-min find-package
+syn keyword txl_keyword contained first fixnump flatten flatten*
+syn keyword txl_keyword contained flet flip flo-int flo-str
+syn keyword txl_keyword contained floatp floor flush-stream for
+syn keyword txl_keyword contained for* force format fourth
+syn keyword txl_keyword contained fun func-get-env func-get-form func-set-env
+syn keyword txl_keyword contained functionp gcd gen generate
+syn keyword txl_keyword contained gensym get-byte get-char get-hash-userdata
+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 gethash getitimer
+syn keyword txl_keyword contained getpid getppid giterate group-by
+syn keyword txl_keyword contained gun hash hash-alist hash-construct
+syn keyword txl_keyword contained hash-count hash-diff hash-eql hash-equal
+syn keyword txl_keyword contained hash-isec hash-keys hash-pairs hash-uni
+syn keyword txl_keyword contained hash-update hash-update-1 hash-values hashp
+syn keyword txl_keyword contained html-decode html-encode iapply identity
+syn keyword txl_keyword contained ido if iff iffi
+syn keyword txl_keyword contained inc inhash int-flo int-str
+syn keyword txl_keyword contained integerp intern interp-fun-p interpose
+syn keyword txl_keyword contained ip ipf isqrt itimer-prov
+syn keyword txl_keyword contained itimer-real itimer-virtual juxt keep-if
+syn keyword txl_keyword contained keep-if* 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 lbind 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 let let* link lisp-parse
+syn keyword txl_keyword contained list list* list-str list-vector
+syn keyword txl_keyword contained listp log log-alert log-auth
+syn keyword txl_keyword contained log-authpriv log-cons log-crit log-daemon
+syn keyword txl_keyword contained log-debug log-emerg log-err log-info
+syn keyword txl_keyword contained log-ndelay log-notice log-nowait log-odelay
+syn keyword txl_keyword contained log-perror log-pid log-user log-warning
+syn keyword txl_keyword contained log10 log2 logand logior
+syn keyword txl_keyword contained lognot logtest logtrunc logxor
+syn keyword txl_keyword contained macro-form-p macro-time macroexpand macroexpand-1
+syn keyword txl_keyword contained macrolet major make-catenated-stream make-env
+syn keyword txl_keyword contained make-hash make-lazy-cons make-like make-package
+syn keyword txl_keyword contained make-random-state make-similar-hash make-string-byte-input-stream make-string-input-stream
+syn keyword txl_keyword contained make-string-output-stream make-strlist-output-stream make-sym make-time
+syn keyword txl_keyword contained make-time-utc make-trie makedev mapcar
+syn keyword txl_keyword contained mapcar* mapdo maphash mappend
+syn keyword txl_keyword contained mappend* mask match-fun match-regex
+syn keyword txl_keyword contained match-regex-right match-str match-str-tree max
+syn keyword txl_keyword contained member member-if memq memql
+syn keyword txl_keyword contained memqual merge min minor
+syn keyword txl_keyword contained mkdir mknod mkstring 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 nreverse null nullify num-chr
+syn keyword txl_keyword contained num-str numberp oddp op
+syn keyword txl_keyword contained open-command open-directory open-file open-files
+syn keyword txl_keyword contained open-files* open-pipe open-process open-tail
+syn keyword txl_keyword contained openlog or orf packagep
+syn keyword txl_keyword contained partition partition* partition-by perm
+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 pprinl pprint pprof prinl
+syn keyword txl_keyword contained print prof prog1 progn
+syn keyword txl_keyword contained prop proper-listp push pushhash
+syn keyword txl_keyword contained put-byte put-char put-line put-lines
+syn keyword txl_keyword contained put-string put-strings pwd qquote
+syn keyword txl_keyword contained quasi quasilist quote rand
+syn keyword txl_keyword contained random random-fixnum random-state-p range
+syn keyword txl_keyword contained range* range-regex rcomb read
+syn keyword txl_keyword contained readlink real-time-stream-p reduce-left reduce-right
+syn keyword txl_keyword contained ref refset regex-compile regex-parse
+syn keyword txl_keyword contained regexp regsub rehome-sym remhash
+syn keyword txl_keyword contained remove-if remove-if* remove-path remq
+syn keyword txl_keyword contained remq* remql remql* remqual
+syn keyword txl_keyword contained remqual* rename-path repeat replace
+syn keyword txl_keyword contained replace-list replace-str replace-vec rest
+syn keyword txl_keyword contained ret retf return return-from
+syn keyword txl_keyword contained reverse rlcp 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-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 sethash setitimer setlogmask
+syn keyword txl_keyword contained sh sig-abrt sig-alrm sig-bus
+syn keyword txl_keyword contained sig-check sig-chld sig-cont sig-fpe
+syn keyword txl_keyword contained sig-hup sig-ill sig-int sig-io
+syn keyword txl_keyword contained sig-iot sig-kill sig-lost sig-pipe
+syn keyword txl_keyword contained sig-poll sig-prof sig-pwr sig-quit
+syn keyword txl_keyword contained sig-segv sig-stkflt sig-stop sig-sys
+syn keyword txl_keyword contained sig-term sig-trap sig-tstp sig-ttin
+syn keyword txl_keyword contained sig-ttou sig-urg sig-usr1 sig-usr2
+syn keyword txl_keyword contained sig-vtalrm sig-winch sig-xcpu sig-xfsz
+syn keyword txl_keyword contained sin sixth size-vec some
+syn keyword txl_keyword contained sort source-loc source-loc-str span-str
+syn keyword txl_keyword contained splice split-str split-str-set sqrt
+syn keyword txl_keyword contained stat stdlib str< str<=
+syn keyword txl_keyword contained str= str> str>= stream-get-prop
+syn keyword txl_keyword contained stream-set-prop streamp string-extend string-lt
+syn keyword txl_keyword contained stringp sub sub-list sub-str
+syn keyword txl_keyword contained sub-vec symacrolet symbol-function symbol-name
+syn keyword txl_keyword contained symbol-package symbol-value symbolp symlink
+syn keyword txl_keyword contained sys-qquote sys-splice sys-unquote syslog
+syn keyword txl_keyword contained tan 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 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 tuples typeof unget-byte
+syn keyword txl_keyword contained unget-char uniq unless unquote
+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 when where
+syn keyword txl_keyword contained while with-saved-vars zerop zip
syn match txr_error "@[\t ]*[*]\?[\t ]*."
syn match txr_nested_error "[^\t `]\+" contained