summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-09-01 21:49:00 -0700
committerKaz Kylheku <kaz@kylheku.com>2014-09-01 21:49:00 -0700
commit0207bdeab644efddce25225c7344aabfb6d73f1f (patch)
tree7de26f21398caa905761ef7be5a3aa2a8f8c0a78
parent2218cb8cef4962308bc5b4825e1f07fced9ebbc1 (diff)
downloadtxr-0207bdeab644efddce25225c7344aabfb6d73f1f.tar.gz
txr-0207bdeab644efddce25225c7344aabfb6d73f1f.tar.bz2
txr-0207bdeab644efddce25225c7344aabfb6d73f1f.zip
* arith.c (arith_init): Register some variables: *flo-dig*,
*flo-min*, *flo-max*, *flo-epsilon*, *pi* and *e*. * genvim.txr: Include arith.c in scan for symbols. * lib.c (init): arith_init() must now be called after eval_init(). * txr.1: Documented new variables.. * txr.vim: Updated.
-rw-r--r--ChangeLog13
-rw-r--r--arith.c15
-rw-r--r--genvim.txr2
-rw-r--r--lib.c2
-rw-r--r--txr.140
-rw-r--r--txr.vim311
6 files changed, 223 insertions, 160 deletions
diff --git a/ChangeLog b/ChangeLog
index fc8fe69e..a8dad0df 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2014-09-02 Kaz Kylheku <kaz@kylheku.com>
+
+ * arith.c (arith_init): Register some variables: *flo-dig*,
+ *flo-min*, *flo-max*, *flo-epsilon*, *pi* and *e*.
+
+ * genvim.txr: Include arith.c in scan for symbols.
+
+ * lib.c (init): arith_init() must now be called after eval_init().
+
+ * txr.1: Documented new variables..
+
+ * txr.vim: Updated.
+
2014-08-29 Kaz Kylheku <kaz@kylheku.com>
Version 97.
diff --git a/arith.c b/arith.c
index 63381967..d107afbb 100644
--- a/arith.c
+++ b/arith.c
@@ -34,11 +34,13 @@
#include <math.h>
#include <signal.h>
#include <ctype.h>
+#include <float.h>
#include "config.h"
#include "lib.h"
#include "signal.h"
#include "unwind.h"
#include "gc.h"
+#include "eval.h"
#include "arith.h"
#define TAG_PAIR(A, B) ((A) << TAG_SHIFT | (B))
@@ -2078,4 +2080,17 @@ void arith_init(void)
mp_init(&INT_PTR_MAX_MP);
mp_set_intptr(&INT_PTR_MAX_MP, INT_PTR_MAX);
log2_init();
+
+ reg_var(intern(lit("*flo-dig*"), user_package), num_fast(DBL_DIG));
+ reg_var(intern(lit("*flo-max*"), user_package), flo(DBL_MAX));
+ reg_var(intern(lit("*flo-min*"), user_package), flo(DBL_MIN));
+ reg_var(intern(lit("*flo-epsilon*"), user_package), flo(DBL_EPSILON));
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+ reg_var(intern(lit("*pi*"), user_package), flo(M_PI));
+#ifndef M_E
+#define M_E 2.71828182845904523536
+#endif
+ reg_var(intern(lit("*e*"), user_package), flo(M_E));
}
diff --git a/genvim.txr b/genvim.txr
index d41b2466..e9e6e7e5 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"
- "syslog.c" "filter.c" "txr.c")))
+ "syslog.c" "filter.c" "txr.c" "arith.c")))
@(collect)
@ (block)
@ (cases)
diff --git a/lib.c b/lib.c
index a95e68a5..7bfccdaa 100644
--- a/lib.c
+++ b/lib.c
@@ -6623,9 +6623,9 @@ void init(const wchar_t *pn, mem_t *(*oom)(mem_t *, size_t),
oom_realloc = oom;
gc_init(stack_bottom);
obj_init();
- arith_init();
uw_init();
eval_init();
+ arith_init();
rand_init();
stream_init();
#if HAVE_POSIX_SIGS
diff --git a/txr.1 b/txr.1
index 6691babc..23de5cbc 100644
--- a/txr.1
+++ b/txr.1
@@ -10888,9 +10888,6 @@ a one-element sequence containing nil. The nullify function reduces all empty
sequences to nil, thereby correcting the behavior of code which traverses
sequences using cdr, and tests for termination with nil.
-.TP
-
-
.SH MATH LIBRARY
.SS Arithmetic functions +, -
@@ -11413,6 +11410,43 @@ the function flo-int.
If <value> is a floating-point number, then it is converted by toint
as if by the function int-flo.
+.SS Variables *flo-min*, *flo-max* and *flo-epsilon*
+
+.TP
+Description:
+
+These variables hold, respectively: the smallest positive floating-point
+value; the largest positive floating-point value; and the difference
+between 1.0 and the smallest representable value greater than 1.0.
+
+The *flo-min* and *flo-max* define the floating-point range, which consists
+of five regions: values from (- *flo-max*) to (- *flo-min*); the value
+0.0, and values from *flo-min* to *flo-max*.
+
+.SS Variable *flo-dig*
+
+This variable holds an integer representing the number of decimal digits
+in a decimal floating-point number such that this number can be converted
+to a TXR floating-point number, and back to decimal, without a change in any of
+the digits. This holds regardless of the value of the number, provided that it
+does not exceed the floating-point range.
+
+.TP
+Description:
+
+These variables hold, respectively: the smallest positive floating-point
+value; the largest positive floating-point value; and the difference
+between 1.0 and the smallest representable value greater than 1.0.
+
+.SS Variables *pi* and *e*
+
+.TP
+Description:
+
+These variables hold an approximation of the mathematical constants pi and e.
+To four digits of precision, pi is 3.142 and e is 2.718. The *pi* and *e*
+approximations are accurate to *flo-dig* decimal digits.
+
.SH BIT OPERATIONS
In TXR Lisp, similarly to Common Lisp, bit operations on integers are based
diff --git a/txr.vim b/txr.vim
index 9efcd856..f7320c1f 100644
--- a/txr.vim
+++ b/txr.vim
@@ -34,161 +34,162 @@ syn keyword txr_keyword contained set skip some text
syn keyword txr_keyword contained throw trailer try until
syn keyword txr_keyword contained var
-syn keyword txl_keyword contained * *args* *full-args* *gensym-counter*
-syn keyword txl_keyword contained *keyword-package* *random-state* *self-path* *stddebug*
-syn keyword txl_keyword contained *stderr* *stdin* *stdlog* *stdnull*
-syn keyword txl_keyword contained *stdout* *txr-version* *user-package* +
-syn keyword txl_keyword contained - / /= <
-syn keyword txl_keyword contained <= = > >=
-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 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 car caseq caseql casequal
-syn keyword txl_keyword contained cat-str cat-vec catch cdr
-syn keyword txl_keyword contained ceil chain chdir chr-isalnum
-syn keyword txl_keyword contained chr-isalpha chr-isascii 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-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-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 * *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* *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 *user-package* + - /
+syn keyword txl_keyword contained /= < <= =
+syn keyword txl_keyword contained > >= abs abs-path-p
+syn keyword txl_keyword contained acons acons-new aconsql-new acos
+syn keyword txl_keyword contained ado alist-nremove alist-remove all
+syn keyword txl_keyword contained and andf ap apf
+syn keyword txl_keyword contained append append* append-each append-each*
+syn keyword txl_keyword contained apply ash asin assoc
+syn keyword txl_keyword contained assql atan atan2 atom
+syn keyword txl_keyword contained bignump bit block boundp
+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-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