add eqv hash tables; add hash-update
svn: r12018
This commit is contained in:
parent
c08e09ae6c
commit
ec68bafa9c
|
@ -736,7 +736,9 @@
|
|||
(lambda ()
|
||||
(out (if (hash-table? obj 'equal)
|
||||
"#hash"
|
||||
"#hasheq"))
|
||||
(if (hash-table? obj 'eqv)
|
||||
"#hasheqv"
|
||||
"#hasheq")))
|
||||
(wr-lst (hash-table-map obj (lambda (k v)
|
||||
(cons k (make-hide v))))
|
||||
#f depth
|
||||
|
@ -855,7 +857,9 @@
|
|||
[(hash-table? obj)
|
||||
(out (if (hash-table? obj 'equal)
|
||||
"#hash"
|
||||
"#hasheq"))
|
||||
(if (hash-table? obj 'eqv)
|
||||
"#hasheqv"
|
||||
"#hasheq")))
|
||||
(pp-list (hash-table-map obj cons) extra pp-expr #f depth
|
||||
pair? car cdr pair-open pair-close)]
|
||||
[(and (box? obj) print-box?)
|
||||
|
|
|
@ -316,42 +316,62 @@ Equivalent to @scheme[(namespace-require `(for-syntax ,req))].}
|
|||
Raises @scheme[exn:fail], because the operations are not supported.}
|
||||
|
||||
|
||||
@defproc[(hash-table? [v any/c] [flag (one-of/c 'weak 'equal)] ...)
|
||||
hash-table?]{
|
||||
@defproc*[([(hash-table? [v any/c])
|
||||
hash-table?]
|
||||
[(hash-table? [v any/c] [flag (one-of/c 'weak 'equal 'eqv)])
|
||||
hash-table?]
|
||||
[(hash-table? [v any/c]
|
||||
[flag (one-of/c 'weak 'equal 'eqv)]
|
||||
[flag (one-of/c 'weak 'equal 'eqv)])
|
||||
hash-table?])]{
|
||||
|
||||
Returns @scheme[#t] if @scheme[v] like a hash table created by
|
||||
@scheme[make-hash-table] or @scheme[make-immutable-hash-table] with
|
||||
the given @scheme[flag]s (or more), @scheme[#f] otherwise. Each
|
||||
provided @scheme[flag] must be distinct; if the second @scheme[flag]
|
||||
is redundant, the @scheme[exn:fail:contract] exception is raised.}
|
||||
provided @scheme[flag] must be distinct and @scheme['equal] cannot be
|
||||
used with @scheme['eqv], otherwise the @scheme[exn:fail:contract]
|
||||
exception is raised.}
|
||||
|
||||
|
||||
@defproc[(make-hash-table [flag (one-of/c 'weak 'equal)] ...)
|
||||
hash-table?]{
|
||||
@defproc*[([(make-hash-table)
|
||||
hash-table?]
|
||||
[(make-hash-table [flag (one-of/c 'weak 'equal 'eqv)])
|
||||
hash-table?]
|
||||
[(make-hash-table [flag (one-of/c 'weak 'equal 'eqv)]
|
||||
[flag (one-of/c 'weak 'equal 'eqv)])
|
||||
hash-table?])]{
|
||||
|
||||
Creates and returns a new hash table. If provided, each @scheme[flag]
|
||||
must one of the following:
|
||||
|
||||
@itemize{
|
||||
|
||||
@item{@indexed-scheme['weak] --- creates a hash table with weakly-held
|
||||
keys via @scheme[make-weak-hash] or @scheme[make-weak-hasheq]}
|
||||
@item{@indexed-scheme['weak] --- creates a hash table with
|
||||
weakly-held keys via @scheme[make-weak-hash],
|
||||
@scheme[make-weak-hasheq], or @scheme[make-weak-hasheqv].}
|
||||
|
||||
@item{@indexed-scheme['equal] --- creates a hash table that compares
|
||||
keys using @scheme[equal?] instead of @scheme[eq?] using
|
||||
@scheme[make-hash] or @scheme[make-weak-hash].}
|
||||
|
||||
@item{@indexed-scheme['eqv] --- creates a hash table that compares
|
||||
keys using @scheme[eqv?] instead of @scheme[eq?] using
|
||||
@scheme[make-hasheqv] or @scheme[make-weak-hasheqv].}
|
||||
|
||||
}
|
||||
|
||||
By default, key comparisons use @scheme[eq?]. If the second
|
||||
@scheme[flag] is redundant, the @scheme[exn:fail:contract] exception
|
||||
is raised.}
|
||||
By default, key comparisons use @scheme[eq?] (i.e., the hash table is
|
||||
created with @scheme[make-hasheq]). If the second @scheme[flag] is
|
||||
redundant or @scheme['equal] is provided with @scheme['eqv], the
|
||||
@scheme[exn:fail:contract] exception is raised.}
|
||||
|
||||
|
||||
@defproc[(make-immutable-hash-table [assocs (listof pair?)]
|
||||
[flag (one-of/c 'equal)]
|
||||
...)
|
||||
(and/c hash-table? immutable?)]{
|
||||
@defproc*[([(make-immutable-hash-table [assocs (listof pair?)])
|
||||
(and/c hash-table? immutable?)]
|
||||
[(make-immutable-hash-table [assocs (listof pair?)]
|
||||
[flag (one-of/c 'equal 'eqv)])
|
||||
(and/c hash-table? immutable?)])]{
|
||||
|
||||
Like @scheme[make-immutable-hash] or @scheme[make-immutable-hasheq],
|
||||
depending on whether an @scheme['equal] @scheme[flag] is provided.}
|
||||
Like @scheme[make-immutable-hash], @scheme[make-immutable-hasheq], or
|
||||
@scheme[make-immutable-hasheqv], depending on whether an
|
||||
@scheme['equal] or @scheme['eqv] @scheme[flag] is provided.}
|
||||
|
|
|
@ -12,6 +12,8 @@
|
|||
dict-ref
|
||||
dict-set!
|
||||
dict-set
|
||||
dict-update!
|
||||
dict-update
|
||||
dict-remove!
|
||||
dict-remove
|
||||
dict-count
|
||||
|
@ -206,6 +208,20 @@
|
|||
[else
|
||||
(raise-type-error 'dict-set "dict" 0 d key val)]))
|
||||
|
||||
(define dict-update!
|
||||
(case-lambda
|
||||
[(d key xform)
|
||||
(dict-set! d key (xform (dict-ref d key)))]
|
||||
[(d key xform default)
|
||||
(dict-set! d key (xform (dict-ref d key default)))]))
|
||||
|
||||
(define dict-update
|
||||
(case-lambda
|
||||
[(d key xform)
|
||||
(dict-set d key (xform (dict-ref d key)))]
|
||||
[(d key xform default)
|
||||
(dict-set d key (xform (dict-ref d key default)))]))
|
||||
|
||||
(define (dict-remove! d key)
|
||||
(cond
|
||||
[(hash? d) (hash-remove! d key)]
|
||||
|
|
|
@ -23,7 +23,8 @@
|
|||
(#%provide require require-for-syntax require-for-template require-for-label
|
||||
provide provide-for-syntax provide-for-label
|
||||
(all-from-except "private/more-scheme.ss" case old-case
|
||||
log-fatal log-error log-warning log-info log-debug)
|
||||
log-fatal log-error log-warning log-info log-debug
|
||||
hash-update hash-update!)
|
||||
(rename old-case case)
|
||||
(all-from "private/misc.ss")
|
||||
(all-from-except "private/stxcase-scheme.ss" _)
|
||||
|
|
|
@ -349,10 +349,39 @@
|
|||
(define-log log-info info)
|
||||
(define-log log-debug debug)
|
||||
|
||||
(define-values (hash-update hash-update!)
|
||||
(let* ([not-there (gensym)]
|
||||
[up (lambda (who mut? ref set ht key xform default)
|
||||
(unless (and (hash? ht)
|
||||
(or (not mut?)
|
||||
(not (immutable? ht))))
|
||||
(raise-type-error who (if mut? "mutable hash" "hash") ht))
|
||||
(unless (and (procedure? xform)
|
||||
(procedure-arity-includes? xform 1))
|
||||
(raise-type-error who "procedure (arity 1)" xform))
|
||||
(let ([v (ref ht key default)])
|
||||
(if (eq? v not-there)
|
||||
(raise-mismatch-error who "no value found for key: " key)
|
||||
(set ht key (xform v)))))])
|
||||
(let ([hash-update
|
||||
(case-lambda
|
||||
[(ht key xform default)
|
||||
(up 'hash-update #f hash-ref hash-set ht key xform default)]
|
||||
[(ht key xform)
|
||||
(hash-update ht key xform not-there)])]
|
||||
[hash-update!
|
||||
(case-lambda
|
||||
[(ht key xform default)
|
||||
(up 'hash-update! #t hash-ref hash-set! ht key xform default)]
|
||||
[(ht key xform)
|
||||
(hash-update! ht key xform not-there)])])
|
||||
(values hash-update hash-update!))))
|
||||
|
||||
(#%provide case old-case do
|
||||
parameterize parameterize* current-parameterization call-with-parameterization
|
||||
parameterize-break current-break-parameterization call-with-break-parameterization
|
||||
with-handlers with-handlers* call-with-exception-handler
|
||||
set!-values
|
||||
let/cc fluid-let time
|
||||
log-fatal log-error log-warning log-info log-debug))
|
||||
log-fatal log-error log-warning log-info log-debug
|
||||
hash-update hash-update!))
|
||||
|
|
|
@ -54,12 +54,18 @@
|
|||
(make-hash)
|
||||
(if (eq? a 'weak)
|
||||
(make-weak-hasheq)
|
||||
(raise-mismatch-error 'make-hash-table "bad argument: " a)))]
|
||||
[(a b) (if (or (and (eq? a 'equal)
|
||||
(if (eq? a 'eqv)
|
||||
(make-hasheqv)
|
||||
(raise-mismatch-error 'make-hash-table "bad argument: " a))))]
|
||||
[(a b) (if (or (and (or (eq? a 'equal)
|
||||
(eq? a 'eqv))
|
||||
(eq? b 'weak))
|
||||
(and (eq? a 'weak)
|
||||
(eq? b 'equal)))
|
||||
(make-weak-hash)
|
||||
(or (eq? b 'equal)
|
||||
(eq? b 'eqv))))
|
||||
(if (or (eq? a 'eqv) (eq? b 'eqv))
|
||||
(make-weak-hasheqv)
|
||||
(make-weak-hash))
|
||||
(raise-mismatch-error 'make-hash-table "bad arguments: " (list a b)))]))
|
||||
|
||||
(define make-immutable-hash-table
|
||||
|
@ -67,23 +73,30 @@
|
|||
[(l) (make-immutable-hasheq l)]
|
||||
[(l a) (if (eq? a 'equal)
|
||||
(make-immutable-hash l)
|
||||
(raise-mismatch-error 'make-immutable-hash-table "bad argument: " a))]))
|
||||
(if (eq? a 'eqv)
|
||||
(make-immutable-hasheqv l)
|
||||
(raise-mismatch-error 'make-immutable-hash-table "bad argument: " a)))]))
|
||||
|
||||
(define hash-table?
|
||||
(case-lambda
|
||||
[(v) (hash? v)]
|
||||
[(v a) (if (eq? a 'equal)
|
||||
(and (hash? v)
|
||||
(not (hash-eq? v)))
|
||||
(not (hash-eq? v))
|
||||
(not (hash-eqv? v)))
|
||||
(if (eq? a 'weak)
|
||||
(and (hash? v)
|
||||
(hash-weak? v))
|
||||
(raise-mismatch-error 'hash-table? "bad argument: " a)))]
|
||||
[(v a b) (if (or (and (eq? a 'equal)
|
||||
(if (eq? a 'eqv)
|
||||
(hash-eqv? v)
|
||||
(raise-mismatch-error 'hash-table? "bad argument: " a))))]
|
||||
[(v a b) (if (or (and (or (eq? a 'equal) (eq? a 'eqv))
|
||||
(eq? b 'weak))
|
||||
(and (eq? a 'weak)
|
||||
(eq? b 'equal)))
|
||||
(or (eq? b 'equal) (eq? b 'eqv))))
|
||||
(and (hash? v)
|
||||
(not (hash-eq? v))
|
||||
(if (or (eq? a 'eqv) (eq? b 'eqv))
|
||||
(hash-eqv? v)
|
||||
(not (or (hash-eq? v) (hash-eqv? v))))
|
||||
(hash-weak? v))
|
||||
(raise-mismatch-error 'hash-table? "bad arguments: " (list a b)))])))
|
||||
|
|
|
@ -163,6 +163,43 @@ result:
|
|||
|
||||
|
||||
|
||||
@defproc[(dict-update! [dict (and/c dict? (not/c immutable?))]
|
||||
[key any/c]
|
||||
[updater (any/c . -> . any/c)]
|
||||
[failure-result any/c (lambda () (raise (make-exn:fail ....)))]) void?]{
|
||||
|
||||
Composes @scheme[dict-ref] and @scheme[dict-set!] to update an
|
||||
existing mapping in @scheme[dict].
|
||||
|
||||
@examples[
|
||||
#:eval dict-eval
|
||||
(define h (make-hash))
|
||||
(dict-update! h 'a add1)
|
||||
(dict-update! h 'a add1 0)
|
||||
h
|
||||
(define v (vector #f #f #f))
|
||||
(dict-update! v 0 not)
|
||||
v
|
||||
]}
|
||||
|
||||
|
||||
@defproc[(dict-update [dict dict?]
|
||||
[key any/c]
|
||||
[updater (any/c . -> . any/c)]
|
||||
[failure-result any/c (lambda () (raise (make-exn:fail ....)))])
|
||||
(and/c dict? immutable?)]{
|
||||
|
||||
Composes @scheme[dict-ref] and @scheme[dict-set] to functionally
|
||||
update an existing mapping in @scheme[dict].
|
||||
|
||||
@examples[
|
||||
#:eval dict-eval
|
||||
(dict-update #hash() 'a add1)
|
||||
(dict-update #hash() 'a add1 0)
|
||||
(dict-update #hash((a . "apple") (b . "beer")) 'b string-length)
|
||||
]}
|
||||
|
||||
|
||||
@defproc[(dict-remove! [dict (and/c dict? (not/c immutable?))]
|
||||
[key any/c])
|
||||
void?]{
|
||||
|
|
|
@ -7,10 +7,10 @@
|
|||
|
||||
A @deftech{hash table} (or simply @deftech{hash}) maps each of its
|
||||
keys to a single value. For a given hash table, keys are equivalent
|
||||
via @scheme[equal?] or @scheme[eq?], and keys are retained either
|
||||
strongly or weakly (see @secref["weakbox"]). A hash table is also
|
||||
either mutable or immutable; immutable tables support constant-time
|
||||
functional update.
|
||||
via @scheme[equal?], @scheme[eqv?], or @scheme[eq?], and keys are
|
||||
retained either strongly or weakly (see @secref["weakbox"]). A hash
|
||||
table is also either mutable or immutable; immutable tables support
|
||||
constant-time functional update.
|
||||
|
||||
A hash table can be used as a two-valued @tech{sequence} (see
|
||||
@secref["sequences"]). The keys and values of the hash table serve as
|
||||
|
@ -22,13 +22,14 @@ keys and values. See also @scheme[in-hash], @scheme[in-hash-keys],
|
|||
@scheme[in-hash-values], and @scheme[in-hash-pairs].
|
||||
|
||||
Two hash tables cannot be @scheme[equal?] unless they use the same
|
||||
key-comparison procedure (@scheme[equal?] or @scheme[eq?]), both hold keys
|
||||
strongly or weakly, and have the same mutability.
|
||||
key-comparison procedure (@scheme[equal?], @scheme[eqv?], or
|
||||
@scheme[eq?]), both hold keys strongly or weakly, and have the same
|
||||
mutability.
|
||||
|
||||
@bold{Caveats concerning concurrent modification:} A mutable hash
|
||||
table can be manipulated with @scheme[hash-ref], @scheme[hash-set!],
|
||||
and @scheme[hash-remove!] concurrently by multiple threads, and the
|
||||
operations are protected by a table-specific semaphore as needed. Two
|
||||
operations are protected by a table-specific semaphore as needed. Three
|
||||
caveats apply, however:
|
||||
|
||||
@itemize{
|
||||
|
@ -50,6 +51,11 @@ caveats apply, however:
|
|||
otherwise the traversal skips a deleted key or uses the remapped
|
||||
key's new value).}
|
||||
|
||||
@item{The @scheme[hash-update!] function uses a table's semaphore
|
||||
independently for the @scheme[hash-ref] and @scheme[hash-set!] parts
|
||||
of its functionality, which means that the update as a whole is not
|
||||
``atomic.''}
|
||||
|
||||
}
|
||||
|
||||
@bold{Caveat concerning mutable keys:} If a key into an
|
||||
|
@ -63,10 +69,15 @@ for insertion and lookup operations becomes unpredictable.
|
|||
Returns @scheme[#t] if @scheme[v] is a @tech{hash table}, @scheme[#f]
|
||||
otherwise.}
|
||||
|
||||
@defproc[(hash-eqv? [hash hash?]) boolean?]{
|
||||
|
||||
Returns @scheme[#t] if @scheme[hash] compares keys with @scheme[eqv?],
|
||||
@scheme[#f] if it compares with @scheme[equal?] or @scheme[eq?].}
|
||||
|
||||
@defproc[(hash-eq? [hash hash?]) boolean?]{
|
||||
|
||||
Returns @scheme[#t] if @scheme[hash] compares keys with @scheme[eq?],
|
||||
@scheme[#f] if it compares with @scheme[equal?].}
|
||||
@scheme[#f] if it compares with @scheme[equal?] or @scheme[eqv?].}
|
||||
|
||||
|
||||
@defproc[(hash-weak? [hash hash?]) boolean?]{
|
||||
|
@ -82,6 +93,12 @@ uses @scheme[equal?] to compare keys. See also
|
|||
@scheme[make-custom-hash].}
|
||||
|
||||
|
||||
@defproc[(make-hasheqv) (and/c hash? hash-eqv?)]{
|
||||
|
||||
Creates an empty mutable hash table that holds keys strongly and that
|
||||
uses @scheme[eqv?] to compare keys.}
|
||||
|
||||
|
||||
@defproc[(make-hasheq) (and/c hash? hash-eq?)]{
|
||||
|
||||
Creates an empty mutable hash table that holds keys strongly and that
|
||||
|
@ -95,6 +112,12 @@ uses @scheme[equal?] to compare keys. See also
|
|||
@scheme[make-weak-custom-hash].}
|
||||
|
||||
|
||||
@defproc[(make-weak-hasheqv) (and/c hash? hash-eqv? hash-weak?)]{
|
||||
|
||||
Creates an empty mutable hash table that holds keys weakly and that
|
||||
uses @scheme[eqv?] to compare keys.}
|
||||
|
||||
|
||||
@defproc[(make-weak-hasheq) (and/c hash? hash-eq? hash-weak?)]{
|
||||
|
||||
Creates an empty mutable hash table that holds keys weakly and that
|
||||
|
@ -111,6 +134,12 @@ value. The mappings are added to the table in the order that they
|
|||
appear in @scheme[assocs], so later mappings can hide earlier
|
||||
mappings.}
|
||||
|
||||
@defproc[(make-immutable-hasheqv [assocs (listof pair?)])
|
||||
(and/c hash? hash-eqv? immutable?)]{
|
||||
|
||||
Like @scheme[make-immutable-hash], but the resulting hash table
|
||||
compares keys with @scheme[eqv?].}
|
||||
|
||||
@defproc[(make-immutable-hasheq [assocs (listof pair?)])
|
||||
(and/c hash? hash-eq? immutable?)]{
|
||||
|
||||
|
@ -156,6 +185,33 @@ result:
|
|||
}}
|
||||
|
||||
|
||||
@defproc[(hash-update! [hash (and/c hash? (not/c immutable?))]
|
||||
[key any/c]
|
||||
[updater (any/c . -> . any/c)]
|
||||
[failure-result any/c (lambda ()
|
||||
(raise (make-exn:fail:contract ....)))])
|
||||
void?]{
|
||||
|
||||
Composes @scheme[hash-ref] and @scheme[hash-set!] to update an
|
||||
existing mapping in @scheme[hash], where the optional
|
||||
@scheme[failure-result] argument is used as in @scheme[hash-ref] when
|
||||
no mapping exists for @scheme[key] already. See the caveat above about
|
||||
concurrent updates.}
|
||||
|
||||
|
||||
@defproc[(hash-update [hash (and/c hash? immutable?)]
|
||||
[key any/c]
|
||||
[updater (any/c . -> . any/c)]
|
||||
[failure-result any/c (lambda ()
|
||||
(raise (make-exn:fail:contract ....)))])
|
||||
(and/c hash? immutable?)]{
|
||||
|
||||
Composes @scheme[hash-ref] and @scheme[hash-set] to functionally
|
||||
update an existing mapping in @scheme[hash], where the optional
|
||||
@scheme[failure-result] argument is used as in @scheme[hash-ref] when
|
||||
no mapping exists for @scheme[key] already.}
|
||||
|
||||
|
||||
@defproc[(hash-remove! [hash (and/c hash? (not/c immutable?))]
|
||||
[key any/c])
|
||||
void?]{
|
||||
|
@ -259,6 +315,14 @@ returned integer is the same. Furthermore, for the result integer
|
|||
implies @scheme[(eq? k j)].}
|
||||
|
||||
|
||||
@defproc[(eqv-hash-code [v any/c]) exact-integer?]{
|
||||
|
||||
Returns an exact integer; for any two @scheme[eqv?] values, the
|
||||
returned integer is the same. Furthermore, for the result integer
|
||||
@scheme[k] and any other exact integer @scheme[j], @scheme[(= k j)]
|
||||
implies @scheme[(eq? k j)].}
|
||||
|
||||
|
||||
@defproc[(equal-hash-code [v any/c]) exact-integer?]{
|
||||
|
||||
Returns an exact integer; for any two @scheme[equal?] values, the
|
||||
|
|
|
@ -616,7 +616,11 @@ A @as-index{@litchar{#hasheq}} starts a hash table like
|
|||
@litchar{#hash}, except that it constructs a hash table based on
|
||||
@scheme[eq?] instead of @scheme[equal?].
|
||||
|
||||
In either case, the table is constructed by adding each mapping to the
|
||||
A @as-index{@litchar{#hasheqv}} starts a hash table like
|
||||
@litchar{#hash}, except that it constructs a hash table based on
|
||||
@scheme[eqv?] instead of @scheme[equal?].
|
||||
|
||||
In all cases, the table is constructed by adding each mapping to the
|
||||
hash table from left to right, so later mappings can hide earlier
|
||||
mappings if the keys are equivalent.
|
||||
|
||||
|
|
|
@ -313,6 +313,7 @@
|
|||
(test #t immutable? (make-immutable-hasheq '((a . b))))
|
||||
(test #t immutable? (make-immutable-hash '((a . b))))
|
||||
(test #f immutable? (make-hasheq))
|
||||
(test #f immutable? (make-hasheqv))
|
||||
(test #f immutable? (make-hash))
|
||||
(test #f immutable? (make-weak-hasheq))
|
||||
(test #f immutable? (make-weak-hash))
|
||||
|
@ -1904,12 +1905,15 @@
|
|||
|
||||
(arity-test make-hash 0 0)
|
||||
(arity-test make-hasheq 0 0)
|
||||
(arity-test make-hasheqv 0 0)
|
||||
(arity-test make-weak-hash 0 0)
|
||||
(arity-test make-weak-hasheq 0 0)
|
||||
(arity-test make-weak-hasheqv 0 0)
|
||||
|
||||
(define (hash-tests make-hash make-hasheq
|
||||
make-weak-hash make-weak-hasheq
|
||||
hash-ref hash-set! hash-remove! hash-count
|
||||
(define (hash-tests make-hash make-hasheq make-hasheqv
|
||||
make-weak-hash make-weak-hasheq make-weak-hasheqv
|
||||
hash-ref hash-set! hash-update!
|
||||
hash-remove! hash-count
|
||||
hash-map hash-for-each
|
||||
hash-iterate-first hash-iterate-next
|
||||
hash-iterate-value hash-iterate-key
|
||||
|
@ -1932,15 +1936,36 @@
|
|||
(make-hasheq))]
|
||||
[l (list 1 2 3)])
|
||||
(test #t eq? (eq-hash-code l) (eq-hash-code l))
|
||||
(test #t eq? (eqv-hash-code l) (eqv-hash-code l))
|
||||
(test #t eq? (equal-hash-code l) (equal-hash-code l))
|
||||
(test #t eq? (equal-hash-code l) (equal-hash-code (list 1 2 3)))
|
||||
(hash-set! h1 l 'ok)
|
||||
(test 'ok hash-ref h1 l)
|
||||
(hash-update! h1 l (curry cons 'more))
|
||||
(test '(more . ok) hash-ref h1 l)
|
||||
(hash-update! h1 l cdr)
|
||||
(test 'nope hash-ref h1 (list 1 2 3) (lambda () 'nope))
|
||||
(test '(((1 2 3) . ok)) hash-map h1 (lambda (k v) (cons k v)))
|
||||
(hash-remove! h1 l)
|
||||
(test 'nope hash-ref h1 l (lambda () 'nope)))
|
||||
(test 'nope hash-ref h1 l (lambda () 'nope))
|
||||
(err/rt-test (hash-update! h1 l add1))
|
||||
(hash-update! h1 l add1 0)
|
||||
(test 1 hash-ref h1 l)
|
||||
(hash-remove! h1 l))
|
||||
|
||||
(let ([h1 (if weak?
|
||||
(make-weak-hasheqv)
|
||||
(make-hasheqv))]
|
||||
[n (expt 2 500)]
|
||||
[q (/ 1 2)]
|
||||
[s (make-string 2 #\q)])
|
||||
(hash-set! h1 n 'power)
|
||||
(hash-set! h1 q 'half)
|
||||
(hash-set! h1 s 'string)
|
||||
(test 'power hash-ref h1 (expt (read (open-input-string "2")) 500))
|
||||
(test 'half hash-ref h1 (/ 1 (read (open-input-string "2"))))
|
||||
(test #f hash-ref h1 (make-string (read (open-input-string "2")) #\q) #f))
|
||||
|
||||
(let ([h1 (if weak?
|
||||
(make-weak-hash)
|
||||
(make-hash))]
|
||||
|
@ -2066,9 +2091,10 @@
|
|||
|
||||
(save)))) ; prevents gcing of the ht-registered values
|
||||
|
||||
(hash-tests make-hash make-hasheq
|
||||
make-weak-hash make-weak-hasheq
|
||||
hash-ref hash-set! hash-remove! hash-count
|
||||
(hash-tests make-hash make-hasheq make-hasheqv
|
||||
make-weak-hash make-weak-hasheq make-weak-hasheqv
|
||||
hash-ref hash-set! hash-update!
|
||||
hash-remove! hash-count
|
||||
hash-map hash-for-each
|
||||
hash-iterate-first hash-iterate-next
|
||||
hash-iterate-value hash-iterate-key
|
||||
|
@ -2078,9 +2104,13 @@
|
|||
(apply proc (unbox ht) args)))])
|
||||
(hash-tests (lambda () (box #hash()))
|
||||
(lambda () (box #hasheq()))
|
||||
#f #f
|
||||
(lambda () (box #hasheqv()))
|
||||
#f #f #f
|
||||
(ub-wrap hash-ref)
|
||||
(lambda (ht k v) (set-box! ht (hash-set (unbox ht) k v)))
|
||||
(case-lambda
|
||||
[(ht k u) (set-box! ht (hash-update (unbox ht) k u))]
|
||||
[(ht k u def) (set-box! ht (hash-update (unbox ht) k u def))])
|
||||
(lambda (ht k) (set-box! ht (hash-remove (unbox ht) k)))
|
||||
(ub-wrap hash-count)
|
||||
(ub-wrap hash-map)
|
||||
|
@ -2093,18 +2123,35 @@
|
|||
|
||||
(test #f hash? 5)
|
||||
(test #t hash? (make-hasheq))
|
||||
(test #t hash? (make-hasheqv))
|
||||
(test #t hash-eq? (make-hasheq))
|
||||
(test #f hash-eq? (make-hash))
|
||||
(test #f hash-eq? (make-hasheqv))
|
||||
(test #t hash-eq? (make-weak-hasheq))
|
||||
(test #f hash-eq? (make-weak-hash))
|
||||
(test #f hash-eq? (make-weak-hasheqv))
|
||||
(test #f hash-eqv? (make-hasheq))
|
||||
(test #f hash-eqv? (make-hash))
|
||||
(test #t hash-eqv? (make-hasheqv))
|
||||
(test #f hash-eqv? (make-weak-hasheq))
|
||||
(test #f hash-eqv? (make-weak-hash))
|
||||
(test #t hash-eqv? (make-weak-hasheqv))
|
||||
(test #f hash-weak? (make-hasheq))
|
||||
(test #f hash-weak? (make-hash))
|
||||
(test #f hash-weak? (make-hasheqv))
|
||||
(test #t hash-weak? (make-weak-hasheq))
|
||||
(test #t hash-weak? (make-weak-hash))
|
||||
(test #t hash-weak? (make-weak-hasheqv))
|
||||
|
||||
(err/rt-test (hash-eq? 5))
|
||||
(err/rt-test (hash-eqv? 5))
|
||||
(err/rt-test (hash-weak? 5))
|
||||
|
||||
(let ([a (expt 2 500)]
|
||||
[b (expt (read (open-input-string "2")) 500)])
|
||||
(test #t equal? (eqv-hash-code a) (eqv-hash-code b))
|
||||
(test #t equal? (equal-hash-code a) (equal-hash-code b)))
|
||||
|
||||
;; Check for proper clearing of weak hash tables
|
||||
;; (internally, value should get cleared along with key):
|
||||
(let ([ht (make-weak-hasheq)])
|
||||
|
@ -2139,6 +2186,28 @@
|
|||
(err/rt-test (hash-remove! 1 2))
|
||||
(err/rt-test (hash-ref (make-hasheq) 2) exn:application:mismatch?)
|
||||
|
||||
(let ([mk (lambda (mk)
|
||||
(let ([ht (mk)])
|
||||
(hash-set! ht make-hash 2)
|
||||
ht))])
|
||||
(test #t equal? (mk make-hash) (mk make-hash))
|
||||
(test #t equal? (mk make-hasheq) (mk make-hasheq))
|
||||
(test #t equal? (mk make-hasheqv) (mk make-hasheqv))
|
||||
(test #f equal? (mk make-hash) (mk make-hasheq))
|
||||
(test #f equal? (mk make-hash) (mk make-hasheqv))
|
||||
(test #f equal? (mk make-hasheq) (mk make-hasheqv))
|
||||
(test #f equal? (mk make-hash) (mk make-weak-hash))
|
||||
(test #f equal? (mk make-hasheq) (mk make-weak-hasheq))
|
||||
(test #f equal? (mk make-hasheqv) (mk make-weak-hasheqv)))
|
||||
(let ([mk (lambda (mk)
|
||||
(mk `((1 . 2))))])
|
||||
(test #t equal? (mk make-immutable-hash) (mk make-immutable-hash))
|
||||
(test #t equal? (mk make-immutable-hasheq) (mk make-immutable-hasheq))
|
||||
(test #t equal? (mk make-immutable-hasheqv) (mk make-immutable-hasheqv))
|
||||
(test #f equal? (mk make-immutable-hash) (mk make-immutable-hasheq))
|
||||
(test #f equal? (mk make-immutable-hash) (mk make-immutable-hasheqv))
|
||||
(test #f equal? (mk make-immutable-hasheq) (mk make-immutable-hasheqv)))
|
||||
|
||||
(define im-t (make-immutable-hasheq null))
|
||||
(test #t hash? im-t)
|
||||
(test #t hash-eq? im-t)
|
||||
|
|
|
@ -295,6 +295,7 @@
|
|||
(err/rt-test (readstr "#hash") exn:fail:read:eof?)
|
||||
(err/rt-test (readstr "#hashe") exn:fail:read:eof?)
|
||||
(err/rt-test (readstr "#hasheq") exn:fail:read:eof?)
|
||||
(err/rt-test (readstr "#hasheqv") exn:fail:read:eof?)
|
||||
(err/rt-test (readstr "#hash(") exn:fail:read:eof?)
|
||||
(err/rt-test (readstr "#hash((1") exn:fail:read:eof?)
|
||||
(err/rt-test (readstr "#hash((1 .") exn:fail:read:eof?)
|
||||
|
@ -331,12 +332,16 @@
|
|||
(test-ht (readstr "#hash{(1 . 2)}") 1 #f 1 2)
|
||||
(test-ht (readstr "#hash{[1 . 2]}") 1 #f 1 2)
|
||||
(test-ht (readstr "#hasheq((1 . 2))") 1 #t 1 2)
|
||||
(test-ht (readstr "#hasheqv((1 . 2))") 1 #f 1 2)
|
||||
(test-ht (readstr "#hash((\"apple\" . 1))") 1 #f "apple" 1)
|
||||
(test-ht (readstr "#hasheq((\"apple\" . 1))") 1 #t "apple" #f)
|
||||
(test-ht (readstr "#hasheqv((\"apple\" . 1))") 1 #f "apple" #f)
|
||||
(test-ht (readstr "#hash((\"apple\" . 1) (\"apple\" . 10))") 1 #f "apple" 10)
|
||||
(test-ht (readstr "#hasheq((\"apple\" . 1) (\"apple\" . 10))") 2 #t "apple" #f)
|
||||
(test-ht (readstr "#hasheqv((\"apple\" . 1) (\"apple\" . 10))") 2 #f "apple" #f)
|
||||
(test-ht (readstr "#hash((apple . 1) (apple . 10))") 1 #f 'apple 10)
|
||||
(test-ht (readstr "#hasheq((apple . 1) (apple . 10))") 1 #t 'apple 10)
|
||||
(test-ht (readstr "#hasheqv((apple . 1) (apple . 10))") 1 #f 'apple 10)
|
||||
(test-ht (readstr "#hasheq((#0=\"apple\" . 1) (#0# . 10))") 1 #t "apple" #f)
|
||||
(test-ht (readstr "#hash((#0=\"apple\" . 1) (\"banana\" . #0#))") 2 #f "banana" "apple")
|
||||
(test-ht (readstr "#hash((a . 1) (b . 2) (c . 3) (e . 4) (f . 5) (g . 6) (h . 7) (i . 8))") 8 #f 'f 5)
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
Version 4.1.1.2
|
||||
Added eqv-based hash tables
|
||||
Added hash-update and hash-update!
|
||||
|
||||
Version 4.1.1.1
|
||||
Changed -X and -S to complete directory relative to pwd, and
|
||||
changed -S to add after main collects
|
||||
|
|
|
@ -205,6 +205,7 @@ scheme_bucket_table_equal
|
|||
scheme_clone_bucket_table
|
||||
scheme_make_hash_table
|
||||
scheme_make_hash_table_equal
|
||||
scheme_make_hash_table_eqv
|
||||
scheme_hash_set
|
||||
scheme_hash_get
|
||||
scheme_eq_hash_get
|
||||
|
@ -212,6 +213,7 @@ scheme_hash_set_atomic
|
|||
scheme_hash_get_atomic
|
||||
scheme_hash_table_equal
|
||||
scheme_is_hash_table_equal
|
||||
scheme_is_hash_table_eqv
|
||||
scheme_clone_hash_table
|
||||
scheme_make_hash_tree
|
||||
scheme_hash_tree_set
|
||||
|
@ -220,6 +222,7 @@ scheme_hash_tree_next
|
|||
scheme_hash_tree_index
|
||||
scheme_hash_tree_equal
|
||||
scheme_is_hash_tree_equal
|
||||
scheme_is_hash_tree_eqv
|
||||
scheme_make_prim
|
||||
scheme_make_noneternal_prim
|
||||
scheme_make_prim_w_arity
|
||||
|
@ -519,6 +522,8 @@ scheme_equal_hash_key
|
|||
scheme_equal_hash_key2
|
||||
scheme_recur_equal_hash_key
|
||||
scheme_recur_equal_hash_key2
|
||||
scheme_eqv_hash_key
|
||||
scheme_eqv_hash_key2
|
||||
scheme_set_type_equality
|
||||
scheme_recur_equal
|
||||
scheme_build_list
|
||||
|
|
|
@ -216,6 +216,7 @@ scheme_bucket_table_equal
|
|||
scheme_clone_bucket_table
|
||||
scheme_make_hash_table
|
||||
scheme_make_hash_table_equal
|
||||
scheme_make_hash_table_eqv
|
||||
scheme_hash_set
|
||||
scheme_hash_get
|
||||
scheme_eq_hash_get
|
||||
|
@ -223,6 +224,7 @@ scheme_hash_set_atomic
|
|||
scheme_hash_get_atomic
|
||||
scheme_hash_table_equal
|
||||
scheme_is_hash_table_equal
|
||||
scheme_is_hash_table_eqv
|
||||
scheme_clone_hash_table
|
||||
scheme_make_hash_tree
|
||||
scheme_hash_tree_set
|
||||
|
@ -231,6 +233,7 @@ scheme_hash_tree_next
|
|||
scheme_hash_tree_index
|
||||
scheme_hash_tree_equal
|
||||
scheme_is_hash_tree_equal
|
||||
scheme_is_hash_tree_eqv
|
||||
scheme_make_prim
|
||||
scheme_make_noneternal_prim
|
||||
scheme_make_prim_w_arity
|
||||
|
@ -531,6 +534,8 @@ scheme_equal_hash_key
|
|||
scheme_equal_hash_key2
|
||||
scheme_recur_equal_hash_key
|
||||
scheme_recur_equal_hash_key2
|
||||
scheme_eqv_hash_key
|
||||
scheme_eqv_hash_key2
|
||||
scheme_set_type_equality
|
||||
scheme_recur_equal
|
||||
scheme_build_list
|
||||
|
|
|
@ -193,6 +193,7 @@ EXPORTS
|
|||
scheme_clone_bucket_table
|
||||
scheme_make_hash_table
|
||||
scheme_make_hash_table_equal
|
||||
scheme_make_hash_table_eqv
|
||||
scheme_hash_set
|
||||
scheme_hash_get
|
||||
scheme_eq_hash_get
|
||||
|
@ -200,6 +201,7 @@ EXPORTS
|
|||
scheme_hash_get_atomic
|
||||
scheme_hash_table_equal
|
||||
scheme_is_hash_table_equal
|
||||
scheme_is_hash_table_eqv
|
||||
scheme_clone_hash_table
|
||||
scheme_make_hash_tree
|
||||
scheme_hash_tree_set
|
||||
|
@ -208,6 +210,7 @@ EXPORTS
|
|||
scheme_hash_tree_index
|
||||
scheme_hash_tree_equal
|
||||
scheme_is_hash_tree_equal
|
||||
scheme_is_hash_tree_eqv
|
||||
scheme_make_prim
|
||||
scheme_make_noneternal_prim
|
||||
scheme_make_prim_w_arity
|
||||
|
@ -507,6 +510,8 @@ EXPORTS
|
|||
scheme_equal_hash_key2
|
||||
scheme_recur_equal_hash_key
|
||||
scheme_recur_equal_hash_key2
|
||||
scheme_eqv_hash_key
|
||||
scheme_eqv_hash_key2
|
||||
scheme_set_type_equality
|
||||
scheme_recur_equal
|
||||
scheme_build_list
|
||||
|
|
|
@ -208,6 +208,7 @@ EXPORTS
|
|||
scheme_clone_bucket_table
|
||||
scheme_make_hash_table
|
||||
scheme_make_hash_table_equal
|
||||
scheme_make_hash_table_eqv
|
||||
scheme_hash_set
|
||||
scheme_hash_get
|
||||
scheme_eq_hash_get
|
||||
|
@ -215,6 +216,7 @@ EXPORTS
|
|||
scheme_hash_get_atomic
|
||||
scheme_hash_table_equal
|
||||
scheme_is_hash_table_equal
|
||||
scheme_is_hash_table_eqv
|
||||
scheme_clone_hash_table
|
||||
scheme_make_hash_tree
|
||||
scheme_hash_tree_set
|
||||
|
@ -223,6 +225,7 @@ EXPORTS
|
|||
scheme_hash_tree_index
|
||||
scheme_hash_tree_equal
|
||||
scheme_is_hash_tree_equal
|
||||
scheme_is_hash_tree_eqv
|
||||
scheme_make_prim
|
||||
scheme_make_noneternal_prim
|
||||
scheme_make_prim_w_arity
|
||||
|
@ -523,6 +526,8 @@ EXPORTS
|
|||
scheme_equal_hash_key2
|
||||
scheme_recur_equal_hash_key
|
||||
scheme_recur_equal_hash_key2
|
||||
scheme_eqv_hash_key
|
||||
scheme_eqv_hash_key2
|
||||
scheme_set_type_equality
|
||||
scheme_recur_equal
|
||||
scheme_build_list
|
||||
|
|
|
@ -1,75 +1,75 @@
|
|||
{
|
||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,49,46,49,50,0,0,0,1,0,0,6,0,9,0,
|
||||
13,0,20,0,23,0,36,0,41,0,48,0,53,0,58,0,65,0,69,0,78,
|
||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,49,46,50,50,0,0,0,1,0,0,6,0,9,0,
|
||||
13,0,26,0,29,0,34,0,41,0,46,0,51,0,58,0,65,0,69,0,78,
|
||||
0,84,0,98,0,112,0,115,0,119,0,121,0,132,0,134,0,148,0,155,0,
|
||||
177,0,179,0,193,0,253,0,23,1,32,1,41,1,51,1,68,1,107,1,146,
|
||||
1,215,1,4,2,92,2,137,2,142,2,162,2,53,3,73,3,124,3,190,3,
|
||||
75,4,233,4,20,5,31,5,110,5,0,0,119,7,0,0,65,98,101,103,105,
|
||||
110,29,11,11,63,108,101,116,66,100,101,102,105,110,101,62,111,114,72,112,97,
|
||||
114,97,109,101,116,101,114,105,122,101,64,108,101,116,42,66,117,110,108,101,115,
|
||||
115,64,99,111,110,100,64,119,104,101,110,66,108,101,116,114,101,99,63,97,110,
|
||||
110,29,11,11,63,108,101,116,72,112,97,114,97,109,101,116,101,114,105,122,101,
|
||||
62,111,114,64,108,101,116,42,66,117,110,108,101,115,115,64,99,111,110,100,64,
|
||||
119,104,101,110,66,108,101,116,114,101,99,66,100,101,102,105,110,101,63,97,110,
|
||||
100,68,104,101,114,101,45,115,116,120,65,113,117,111,116,101,29,94,2,14,68,
|
||||
35,37,107,101,114,110,101,108,11,29,94,2,14,68,35,37,112,97,114,97,109,
|
||||
122,11,62,105,102,63,115,116,120,61,115,70,108,101,116,45,118,97,108,117,101,
|
||||
115,61,120,73,108,101,116,114,101,99,45,118,97,108,117,101,115,66,108,97,109,
|
||||
98,100,97,1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,
|
||||
45,107,101,121,61,118,73,100,101,102,105,110,101,45,118,97,108,117,101,115,98,
|
||||
10,35,11,8,174,227,94,159,2,16,35,35,159,2,15,35,35,16,20,2,3,
|
||||
2,2,2,4,2,2,2,11,2,2,2,5,2,2,2,6,2,2,2,7,2,
|
||||
2,2,8,2,2,2,9,2,2,2,10,2,2,2,12,2,2,97,36,11,8,
|
||||
174,227,93,159,2,15,35,36,16,2,2,13,161,2,2,36,2,13,2,2,2,
|
||||
13,97,10,11,11,8,174,227,16,0,97,10,37,11,8,174,227,16,0,13,16,
|
||||
10,35,11,8,186,227,94,159,2,16,35,35,159,2,15,35,35,16,20,2,3,
|
||||
2,2,2,4,2,2,2,10,2,2,2,5,2,2,2,6,2,2,2,7,2,
|
||||
2,2,8,2,2,2,9,2,2,2,11,2,2,2,12,2,2,97,36,11,8,
|
||||
186,227,93,159,2,15,35,36,16,2,2,13,161,2,2,36,2,13,2,2,2,
|
||||
13,97,10,11,11,8,186,227,16,0,97,10,37,11,8,186,227,16,0,13,16,
|
||||
4,35,29,11,11,2,2,11,18,98,64,104,101,114,101,8,31,8,30,8,29,
|
||||
8,28,8,27,27,248,22,190,3,23,196,1,249,22,183,3,80,158,38,35,251,
|
||||
8,28,8,27,27,248,22,132,4,23,196,1,249,22,189,3,80,158,38,35,251,
|
||||
22,73,2,17,248,22,88,23,200,2,12,249,22,63,2,1,248,22,90,23,202,
|
||||
1,27,248,22,190,3,23,196,1,249,22,183,3,80,158,38,35,251,22,73,2,
|
||||
1,27,248,22,132,4,23,196,1,249,22,189,3,80,158,38,35,251,22,73,2,
|
||||
17,248,22,88,23,200,2,249,22,63,2,1,248,22,90,23,202,1,12,27,248,
|
||||
22,65,248,22,190,3,23,197,1,28,248,22,71,23,194,2,20,15,159,36,35,
|
||||
36,28,248,22,71,248,22,65,23,195,2,248,22,64,193,249,22,183,3,80,158,
|
||||
22,65,248,22,132,4,23,197,1,28,248,22,71,23,194,2,20,15,159,36,35,
|
||||
36,28,248,22,71,248,22,65,23,195,2,248,22,64,193,249,22,189,3,80,158,
|
||||
38,35,251,22,73,2,17,248,22,64,23,200,2,249,22,63,2,12,248,22,65,
|
||||
23,202,1,11,18,100,10,8,31,8,30,8,29,8,28,8,27,16,4,11,11,
|
||||
2,18,3,1,7,101,110,118,57,57,52,52,16,4,11,11,2,19,3,1,7,
|
||||
101,110,118,57,57,52,53,27,248,22,65,248,22,190,3,23,197,1,28,248,22,
|
||||
2,18,3,1,7,101,110,118,57,57,53,54,16,4,11,11,2,19,3,1,7,
|
||||
101,110,118,57,57,53,55,27,248,22,65,248,22,132,4,23,197,1,28,248,22,
|
||||
71,23,194,2,20,15,159,36,35,36,28,248,22,71,248,22,65,23,195,2,248,
|
||||
22,64,193,249,22,183,3,80,158,38,35,250,22,73,2,20,248,22,73,249,22,
|
||||
22,64,193,249,22,189,3,80,158,38,35,250,22,73,2,20,248,22,73,249,22,
|
||||
73,248,22,73,2,21,248,22,64,23,202,2,251,22,73,2,17,2,21,2,21,
|
||||
249,22,63,2,5,248,22,65,23,205,1,18,100,11,8,31,8,30,8,29,8,
|
||||
28,8,27,16,4,11,11,2,18,3,1,7,101,110,118,57,57,52,55,16,4,
|
||||
11,11,2,19,3,1,7,101,110,118,57,57,52,56,248,22,190,3,193,27,248,
|
||||
22,190,3,194,249,22,63,248,22,73,248,22,64,196,248,22,65,195,27,248,22,
|
||||
65,248,22,190,3,23,197,1,249,22,183,3,80,158,38,35,28,248,22,51,248,
|
||||
22,184,3,248,22,64,23,198,2,27,249,22,2,32,0,89,162,8,44,36,42,
|
||||
9,222,33,39,248,22,190,3,248,22,88,23,200,2,250,22,73,2,22,248,22,
|
||||
28,8,27,16,4,11,11,2,18,3,1,7,101,110,118,57,57,53,57,16,4,
|
||||
11,11,2,19,3,1,7,101,110,118,57,57,54,48,248,22,132,4,193,27,248,
|
||||
22,132,4,194,249,22,63,248,22,73,248,22,64,196,248,22,65,195,27,248,22,
|
||||
65,248,22,132,4,23,197,1,249,22,189,3,80,158,38,35,28,248,22,51,248,
|
||||
22,190,3,248,22,64,23,198,2,27,249,22,2,32,0,89,162,8,44,36,42,
|
||||
9,222,33,39,248,22,132,4,248,22,88,23,200,2,250,22,73,2,22,248,22,
|
||||
73,249,22,73,248,22,73,248,22,64,23,204,2,250,22,74,2,23,249,22,2,
|
||||
22,64,23,204,2,248,22,90,23,206,2,249,22,63,248,22,64,23,202,1,249,
|
||||
22,2,22,88,23,200,1,250,22,74,2,20,249,22,2,32,0,89,162,8,44,
|
||||
36,46,9,222,33,40,248,22,190,3,248,22,64,201,248,22,65,198,27,248,22,
|
||||
190,3,194,249,22,63,248,22,73,248,22,64,196,248,22,65,195,27,248,22,65,
|
||||
248,22,190,3,23,197,1,249,22,183,3,80,158,38,35,250,22,74,2,22,249,
|
||||
22,2,32,0,89,162,8,44,36,46,9,222,33,42,248,22,190,3,248,22,64,
|
||||
201,248,22,65,198,27,248,22,65,248,22,190,3,196,27,248,22,190,3,248,22,
|
||||
64,195,249,22,183,3,80,158,39,35,28,248,22,71,195,250,22,74,2,20,9,
|
||||
248,22,65,199,250,22,73,2,3,248,22,73,248,22,64,199,250,22,74,2,7,
|
||||
248,22,65,201,248,22,65,202,27,248,22,65,248,22,190,3,23,197,1,27,249,
|
||||
22,1,22,77,249,22,2,22,190,3,248,22,190,3,248,22,64,199,249,22,183,
|
||||
36,46,9,222,33,40,248,22,132,4,248,22,64,201,248,22,65,198,27,248,22,
|
||||
132,4,194,249,22,63,248,22,73,248,22,64,196,248,22,65,195,27,248,22,65,
|
||||
248,22,132,4,23,197,1,249,22,189,3,80,158,38,35,250,22,74,2,22,249,
|
||||
22,2,32,0,89,162,8,44,36,46,9,222,33,42,248,22,132,4,248,22,64,
|
||||
201,248,22,65,198,27,248,22,65,248,22,132,4,196,27,248,22,132,4,248,22,
|
||||
64,195,249,22,189,3,80,158,39,35,28,248,22,71,195,250,22,74,2,20,9,
|
||||
248,22,65,199,250,22,73,2,3,248,22,73,248,22,64,199,250,22,74,2,6,
|
||||
248,22,65,201,248,22,65,202,27,248,22,65,248,22,132,4,23,197,1,27,249,
|
||||
22,1,22,77,249,22,2,22,132,4,248,22,132,4,248,22,64,199,249,22,189,
|
||||
3,80,158,39,35,251,22,73,1,22,119,105,116,104,45,99,111,110,116,105,110,
|
||||
117,97,116,105,111,110,45,109,97,114,107,2,24,250,22,74,1,23,101,120,116,
|
||||
101,110,100,45,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,21,
|
||||
95,1,27,99,111,110,116,105,110,117,97,116,105,111,110,45,109,97,114,107,45,
|
||||
115,101,116,45,102,105,114,115,116,11,2,24,201,250,22,74,2,20,9,248,22,
|
||||
65,203,27,248,22,65,248,22,190,3,23,197,1,28,248,22,71,23,194,2,20,
|
||||
15,159,36,35,36,249,22,183,3,80,158,38,35,27,248,22,190,3,248,22,64,
|
||||
23,198,2,28,249,22,154,8,62,61,62,248,22,184,3,248,22,88,23,197,2,
|
||||
65,203,27,248,22,65,248,22,132,4,23,197,1,28,248,22,71,23,194,2,20,
|
||||
15,159,36,35,36,249,22,189,3,80,158,38,35,27,248,22,132,4,248,22,64,
|
||||
23,198,2,28,249,22,160,8,62,61,62,248,22,190,3,248,22,88,23,197,2,
|
||||
250,22,73,2,20,248,22,73,249,22,73,21,93,2,25,248,22,64,199,250,22,
|
||||
74,2,9,249,22,73,2,25,249,22,73,248,22,97,203,2,25,248,22,65,202,
|
||||
251,22,73,2,17,28,249,22,154,8,248,22,184,3,248,22,64,23,201,2,64,
|
||||
74,2,8,249,22,73,2,25,249,22,73,248,22,97,203,2,25,248,22,65,202,
|
||||
251,22,73,2,17,28,249,22,160,8,248,22,190,3,248,22,64,23,201,2,64,
|
||||
101,108,115,101,10,248,22,64,23,198,2,250,22,74,2,20,9,248,22,65,23,
|
||||
201,1,249,22,63,2,9,248,22,65,23,203,1,99,8,31,8,30,8,29,8,
|
||||
28,8,27,16,4,11,11,2,18,3,1,7,101,110,118,57,57,55,48,16,4,
|
||||
11,11,2,19,3,1,7,101,110,118,57,57,55,49,18,158,94,10,64,118,111,
|
||||
105,100,8,47,27,248,22,65,248,22,190,3,196,249,22,183,3,80,158,38,35,
|
||||
28,248,22,51,248,22,184,3,248,22,64,197,250,22,73,2,26,248,22,73,248,
|
||||
22,64,199,248,22,88,198,27,248,22,184,3,248,22,64,197,250,22,73,2,26,
|
||||
201,1,249,22,63,2,8,248,22,65,23,203,1,99,8,31,8,30,8,29,8,
|
||||
28,8,27,16,4,11,11,2,18,3,1,7,101,110,118,57,57,56,50,16,4,
|
||||
11,11,2,19,3,1,7,101,110,118,57,57,56,51,18,158,94,10,64,118,111,
|
||||
105,100,8,47,27,248,22,65,248,22,132,4,196,249,22,189,3,80,158,38,35,
|
||||
28,248,22,51,248,22,190,3,248,22,64,197,250,22,73,2,26,248,22,73,248,
|
||||
22,64,199,248,22,88,198,27,248,22,190,3,248,22,64,197,250,22,73,2,26,
|
||||
248,22,73,248,22,64,197,250,22,74,2,23,248,22,65,199,248,22,65,202,159,
|
||||
35,20,103,159,35,16,1,2,1,16,0,83,158,41,20,100,138,69,35,37,109,
|
||||
105,110,45,115,116,120,2,2,11,10,11,10,35,80,158,35,35,20,103,159,35,
|
||||
|
@ -78,28 +78,28 @@
|
|||
11,11,11,11,11,11,16,10,2,3,2,4,2,5,2,6,2,7,2,8,2,
|
||||
9,2,10,2,11,2,12,35,45,36,11,11,16,0,16,0,16,0,35,35,11,
|
||||
11,11,16,0,16,0,16,0,35,35,16,11,16,5,93,2,13,20,15,159,35,
|
||||
35,35,35,20,103,159,35,16,0,16,1,33,32,10,16,5,93,2,8,89,162,
|
||||
35,35,35,20,103,159,35,16,0,16,1,33,32,10,16,5,93,2,7,89,162,
|
||||
8,44,36,52,9,223,0,33,33,35,20,103,159,35,16,1,20,25,159,36,2,
|
||||
2,2,13,16,0,11,16,5,93,2,10,89,162,8,44,36,52,9,223,0,33,
|
||||
2,2,13,16,0,11,16,5,93,2,9,89,162,8,44,36,52,9,223,0,33,
|
||||
34,35,20,103,159,35,16,1,20,25,159,36,2,2,2,13,16,0,11,16,5,
|
||||
93,2,12,89,162,8,44,36,52,9,223,0,33,35,35,20,103,159,35,16,1,
|
||||
20,25,159,36,2,2,2,13,16,1,33,36,11,16,5,93,2,5,89,162,8,
|
||||
44,36,55,9,223,0,33,37,35,20,103,159,35,16,1,20,25,159,36,2,2,
|
||||
2,13,16,1,33,38,11,16,5,93,2,3,89,162,8,44,36,57,9,223,0,
|
||||
33,41,35,20,103,159,35,16,1,20,25,159,36,2,2,2,13,16,0,11,16,
|
||||
5,93,2,11,89,162,8,44,36,52,9,223,0,33,43,35,20,103,159,35,16,
|
||||
1,20,25,159,36,2,2,2,13,16,0,11,16,5,93,2,7,89,162,8,44,
|
||||
5,93,2,10,89,162,8,44,36,52,9,223,0,33,43,35,20,103,159,35,16,
|
||||
1,20,25,159,36,2,2,2,13,16,0,11,16,5,93,2,6,89,162,8,44,
|
||||
36,53,9,223,0,33,44,35,20,103,159,35,16,1,20,25,159,36,2,2,2,
|
||||
13,16,0,11,16,5,93,2,6,89,162,8,44,36,54,9,223,0,33,45,35,
|
||||
13,16,0,11,16,5,93,2,4,89,162,8,44,36,54,9,223,0,33,45,35,
|
||||
20,103,159,35,16,1,20,25,159,36,2,2,2,13,16,0,11,16,5,93,2,
|
||||
9,89,162,8,44,36,57,9,223,0,33,46,35,20,103,159,35,16,1,20,25,
|
||||
159,36,2,2,2,13,16,1,33,48,11,16,5,93,2,4,89,162,8,44,36,
|
||||
8,89,162,8,44,36,57,9,223,0,33,46,35,20,103,159,35,16,1,20,25,
|
||||
159,36,2,2,2,13,16,1,33,48,11,16,5,93,2,11,89,162,8,44,36,
|
||||
53,9,223,0,33,49,35,20,103,159,35,16,1,20,25,159,36,2,2,2,13,
|
||||
16,0,11,16,0,94,2,15,2,16,93,2,15,9,9,35,0};
|
||||
EVAL_ONE_SIZED_STR((char *)expr, 2032);
|
||||
}
|
||||
{
|
||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,49,46,49,60,0,0,0,1,0,0,3,0,16,0,
|
||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,49,46,50,60,0,0,0,1,0,0,3,0,16,0,
|
||||
21,0,38,0,53,0,71,0,87,0,97,0,115,0,135,0,151,0,169,0,200,
|
||||
0,229,0,251,0,9,1,15,1,29,1,34,1,44,1,52,1,80,1,112,1,
|
||||
157,1,202,1,226,1,9,2,11,2,68,2,158,3,199,3,33,5,137,5,241,
|
||||
|
@ -131,177 +131,177 @@
|
|||
111,114,32,98,121,116,101,32,115,116,114,105,110,103,6,36,36,99,97,110,110,
|
||||
111,116,32,97,100,100,32,97,32,115,117,102,102,105,120,32,116,111,32,97,32,
|
||||
114,111,111,116,32,112,97,116,104,58,32,5,0,27,20,14,159,80,158,36,50,
|
||||
250,80,158,39,51,249,22,27,11,80,158,41,50,22,170,12,10,248,22,147,5,
|
||||
23,196,2,28,248,22,144,6,23,194,2,12,87,94,248,22,157,8,23,194,1,
|
||||
250,80,158,39,51,249,22,27,11,80,158,41,50,22,176,12,10,248,22,153,5,
|
||||
23,196,2,28,248,22,150,6,23,194,2,12,87,94,248,22,163,8,23,194,1,
|
||||
248,80,159,37,53,36,195,28,248,22,71,23,195,2,9,27,248,22,64,23,196,
|
||||
2,27,28,248,22,151,13,23,195,2,23,194,1,28,248,22,150,13,23,195,2,
|
||||
249,22,152,13,23,196,1,250,80,158,42,48,248,22,166,13,2,20,11,10,250,
|
||||
80,158,40,48,248,22,166,13,2,20,23,197,1,10,28,23,193,2,249,22,63,
|
||||
248,22,154,13,249,22,152,13,23,198,1,247,22,167,13,27,248,22,65,23,200,
|
||||
1,28,248,22,71,23,194,2,9,27,248,22,64,23,195,2,27,28,248,22,151,
|
||||
13,23,195,2,23,194,1,28,248,22,150,13,23,195,2,249,22,152,13,23,196,
|
||||
1,250,80,158,47,48,248,22,166,13,2,20,11,10,250,80,158,45,48,248,22,
|
||||
166,13,2,20,23,197,1,10,28,23,193,2,249,22,63,248,22,154,13,249,22,
|
||||
152,13,23,198,1,247,22,167,13,248,80,159,45,52,36,248,22,65,23,199,1,
|
||||
2,27,28,248,22,157,13,23,195,2,23,194,1,28,248,22,156,13,23,195,2,
|
||||
249,22,158,13,23,196,1,250,80,158,42,48,248,22,172,13,2,20,11,10,250,
|
||||
80,158,40,48,248,22,172,13,2,20,23,197,1,10,28,23,193,2,249,22,63,
|
||||
248,22,160,13,249,22,158,13,23,198,1,247,22,173,13,27,248,22,65,23,200,
|
||||
1,28,248,22,71,23,194,2,9,27,248,22,64,23,195,2,27,28,248,22,157,
|
||||
13,23,195,2,23,194,1,28,248,22,156,13,23,195,2,249,22,158,13,23,196,
|
||||
1,250,80,158,47,48,248,22,172,13,2,20,11,10,250,80,158,45,48,248,22,
|
||||
172,13,2,20,23,197,1,10,28,23,193,2,249,22,63,248,22,160,13,249,22,
|
||||
158,13,23,198,1,247,22,173,13,248,80,159,45,52,36,248,22,65,23,199,1,
|
||||
87,94,23,193,1,248,80,159,43,52,36,248,22,65,23,197,1,87,94,23,193,
|
||||
1,27,248,22,65,23,198,1,28,248,22,71,23,194,2,9,27,248,22,64,23,
|
||||
195,2,27,28,248,22,151,13,23,195,2,23,194,1,28,248,22,150,13,23,195,
|
||||
2,249,22,152,13,23,196,1,250,80,158,45,48,248,22,166,13,2,20,11,10,
|
||||
250,80,158,43,48,248,22,166,13,2,20,23,197,1,10,28,23,193,2,249,22,
|
||||
63,248,22,154,13,249,22,152,13,23,198,1,247,22,167,13,248,80,159,43,52,
|
||||
36,248,22,65,23,199,1,248,80,159,41,52,36,248,22,65,196,27,248,22,191,
|
||||
12,23,195,2,28,23,193,2,192,87,94,23,193,1,28,248,22,149,6,23,195,
|
||||
2,27,248,22,149,13,195,28,192,192,248,22,150,13,195,11,87,94,28,28,248,
|
||||
22,128,13,23,195,2,10,27,248,22,191,12,23,196,2,28,23,193,2,192,87,
|
||||
94,23,193,1,28,248,22,149,6,23,196,2,27,248,22,149,13,23,197,2,28,
|
||||
23,193,2,192,87,94,23,193,1,248,22,150,13,23,197,2,11,12,250,22,184,
|
||||
195,2,27,28,248,22,157,13,23,195,2,23,194,1,28,248,22,156,13,23,195,
|
||||
2,249,22,158,13,23,196,1,250,80,158,45,48,248,22,172,13,2,20,11,10,
|
||||
250,80,158,43,48,248,22,172,13,2,20,23,197,1,10,28,23,193,2,249,22,
|
||||
63,248,22,160,13,249,22,158,13,23,198,1,247,22,173,13,248,80,159,43,52,
|
||||
36,248,22,65,23,199,1,248,80,159,41,52,36,248,22,65,196,27,248,22,133,
|
||||
13,23,195,2,28,23,193,2,192,87,94,23,193,1,28,248,22,155,6,23,195,
|
||||
2,27,248,22,155,13,195,28,192,192,248,22,156,13,195,11,87,94,28,28,248,
|
||||
22,134,13,23,195,2,10,27,248,22,133,13,23,196,2,28,23,193,2,192,87,
|
||||
94,23,193,1,28,248,22,155,6,23,196,2,27,248,22,155,13,23,197,2,28,
|
||||
23,193,2,192,87,94,23,193,1,248,22,156,13,23,197,2,11,12,250,22,190,
|
||||
8,76,110,111,114,109,97,108,45,112,97,116,104,45,99,97,115,101,6,42,42,
|
||||
112,97,116,104,32,40,102,111,114,32,97,110,121,32,115,121,115,116,101,109,41,
|
||||
32,111,114,32,118,97,108,105,100,45,112,97,116,104,32,115,116,114,105,110,103,
|
||||
23,197,2,28,28,248,22,128,13,23,195,2,249,22,154,8,248,22,129,13,23,
|
||||
197,2,2,21,249,22,154,8,247,22,168,7,2,21,27,28,248,22,149,6,23,
|
||||
196,2,23,195,2,248,22,158,7,248,22,132,13,23,197,2,28,249,22,179,13,
|
||||
23,197,2,28,28,248,22,134,13,23,195,2,249,22,160,8,248,22,135,13,23,
|
||||
197,2,2,21,249,22,160,8,247,22,174,7,2,21,27,28,248,22,155,6,23,
|
||||
196,2,23,195,2,248,22,164,7,248,22,138,13,23,197,2,28,249,22,185,13,
|
||||
0,21,35,114,120,34,94,91,92,92,93,91,92,92,93,91,63,93,91,92,92,
|
||||
93,34,23,195,2,28,248,22,149,6,195,248,22,135,13,195,194,27,248,22,188,
|
||||
6,23,195,1,249,22,136,13,248,22,161,7,250,22,185,13,0,6,35,114,120,
|
||||
34,47,34,28,249,22,179,13,0,22,35,114,120,34,91,47,92,92,93,91,46,
|
||||
32,93,43,91,47,92,92,93,42,36,34,23,201,2,23,199,1,250,22,185,13,
|
||||
93,34,23,195,2,28,248,22,155,6,195,248,22,141,13,195,194,27,248,22,130,
|
||||
7,23,195,1,249,22,142,13,248,22,167,7,250,22,191,13,0,6,35,114,120,
|
||||
34,47,34,28,249,22,185,13,0,22,35,114,120,34,91,47,92,92,93,91,46,
|
||||
32,93,43,91,47,92,92,93,42,36,34,23,201,2,23,199,1,250,22,191,13,
|
||||
0,19,35,114,120,34,91,32,46,93,43,40,91,47,92,92,93,42,41,36,34,
|
||||
23,202,1,6,2,2,92,49,80,158,43,36,2,21,28,248,22,149,6,194,248,
|
||||
22,135,13,194,193,87,94,28,27,248,22,191,12,23,196,2,28,23,193,2,192,
|
||||
87,94,23,193,1,28,248,22,149,6,23,196,2,27,248,22,149,13,23,197,2,
|
||||
28,23,193,2,192,87,94,23,193,1,248,22,150,13,23,197,2,11,12,250,22,
|
||||
184,8,23,196,2,2,22,23,197,2,28,248,22,149,13,23,195,2,12,248,22,
|
||||
146,11,249,22,155,10,248,22,178,6,250,22,133,7,2,23,23,200,1,23,201,
|
||||
1,247,22,23,87,94,28,27,248,22,191,12,23,196,2,28,23,193,2,192,87,
|
||||
94,23,193,1,28,248,22,149,6,23,196,2,27,248,22,149,13,23,197,2,28,
|
||||
23,193,2,192,87,94,23,193,1,248,22,150,13,23,197,2,11,12,250,22,184,
|
||||
8,23,196,2,2,22,23,197,2,28,248,22,149,13,23,195,2,12,248,22,146,
|
||||
11,249,22,155,10,248,22,178,6,250,22,133,7,2,23,23,200,1,23,201,1,
|
||||
247,22,23,87,94,87,94,28,27,248,22,191,12,23,196,2,28,23,193,2,192,
|
||||
87,94,23,193,1,28,248,22,149,6,23,196,2,27,248,22,149,13,23,197,2,
|
||||
28,23,193,2,192,87,94,23,193,1,248,22,150,13,23,197,2,11,12,250,22,
|
||||
184,8,195,2,22,23,197,2,28,248,22,149,13,23,195,2,12,248,22,146,11,
|
||||
249,22,155,10,248,22,178,6,250,22,133,7,2,23,199,23,201,1,247,22,23,
|
||||
249,22,3,89,162,8,44,36,49,9,223,2,33,34,196,248,22,146,11,249,22,
|
||||
185,10,23,196,1,247,22,23,87,94,250,80,159,38,39,36,2,7,196,197,251,
|
||||
23,202,1,6,2,2,92,49,80,158,43,36,2,21,28,248,22,155,6,194,248,
|
||||
22,141,13,194,193,87,94,28,27,248,22,133,13,23,196,2,28,23,193,2,192,
|
||||
87,94,23,193,1,28,248,22,155,6,23,196,2,27,248,22,155,13,23,197,2,
|
||||
28,23,193,2,192,87,94,23,193,1,248,22,156,13,23,197,2,11,12,250,22,
|
||||
190,8,23,196,2,2,22,23,197,2,28,248,22,155,13,23,195,2,12,248,22,
|
||||
152,11,249,22,161,10,248,22,184,6,250,22,139,7,2,23,23,200,1,23,201,
|
||||
1,247,22,23,87,94,28,27,248,22,133,13,23,196,2,28,23,193,2,192,87,
|
||||
94,23,193,1,28,248,22,155,6,23,196,2,27,248,22,155,13,23,197,2,28,
|
||||
23,193,2,192,87,94,23,193,1,248,22,156,13,23,197,2,11,12,250,22,190,
|
||||
8,23,196,2,2,22,23,197,2,28,248,22,155,13,23,195,2,12,248,22,152,
|
||||
11,249,22,161,10,248,22,184,6,250,22,139,7,2,23,23,200,1,23,201,1,
|
||||
247,22,23,87,94,87,94,28,27,248,22,133,13,23,196,2,28,23,193,2,192,
|
||||
87,94,23,193,1,28,248,22,155,6,23,196,2,27,248,22,155,13,23,197,2,
|
||||
28,23,193,2,192,87,94,23,193,1,248,22,156,13,23,197,2,11,12,250,22,
|
||||
190,8,195,2,22,23,197,2,28,248,22,155,13,23,195,2,12,248,22,152,11,
|
||||
249,22,161,10,248,22,184,6,250,22,139,7,2,23,199,23,201,1,247,22,23,
|
||||
249,22,3,89,162,8,44,36,49,9,223,2,33,34,196,248,22,152,11,249,22,
|
||||
191,10,23,196,1,247,22,23,87,94,250,80,159,38,39,36,2,7,196,197,251,
|
||||
80,159,39,41,36,2,7,32,0,89,162,8,44,36,44,9,222,33,36,197,198,
|
||||
32,38,89,162,43,41,58,65,99,108,111,111,112,222,33,39,28,248,22,71,23,
|
||||
199,2,87,94,23,198,1,248,23,196,1,251,22,133,7,2,24,23,199,1,28,
|
||||
248,22,71,23,203,2,87,94,23,202,1,23,201,1,250,22,1,22,145,13,23,
|
||||
204,1,23,205,1,23,198,1,27,249,22,145,13,248,22,64,23,202,2,23,199,
|
||||
2,28,248,22,140,13,23,194,2,27,250,22,1,22,145,13,23,197,1,23,202,
|
||||
2,28,248,22,140,13,23,194,2,192,87,94,23,193,1,27,248,22,65,23,202,
|
||||
1,28,248,22,71,23,194,2,87,94,23,193,1,248,23,199,1,251,22,133,7,
|
||||
199,2,87,94,23,198,1,248,23,196,1,251,22,139,7,2,24,23,199,1,28,
|
||||
248,22,71,23,203,2,87,94,23,202,1,23,201,1,250,22,1,22,151,13,23,
|
||||
204,1,23,205,1,23,198,1,27,249,22,151,13,248,22,64,23,202,2,23,199,
|
||||
2,28,248,22,146,13,23,194,2,27,250,22,1,22,151,13,23,197,1,23,202,
|
||||
2,28,248,22,146,13,23,194,2,192,87,94,23,193,1,27,248,22,65,23,202,
|
||||
1,28,248,22,71,23,194,2,87,94,23,193,1,248,23,199,1,251,22,139,7,
|
||||
2,24,23,202,1,28,248,22,71,23,206,2,87,94,23,205,1,23,204,1,250,
|
||||
22,1,22,145,13,23,207,1,23,208,1,23,201,1,27,249,22,145,13,248,22,
|
||||
64,23,197,2,23,202,2,28,248,22,140,13,23,194,2,27,250,22,1,22,145,
|
||||
13,23,197,1,204,28,248,22,140,13,193,192,253,2,38,203,204,205,206,23,15,
|
||||
22,1,22,151,13,23,207,1,23,208,1,23,201,1,27,249,22,151,13,248,22,
|
||||
64,23,197,2,23,202,2,28,248,22,146,13,23,194,2,27,250,22,1,22,151,
|
||||
13,23,197,1,204,28,248,22,146,13,193,192,253,2,38,203,204,205,206,23,15,
|
||||
248,22,65,201,253,2,38,202,203,204,205,206,248,22,65,200,87,94,23,193,1,
|
||||
27,248,22,65,23,201,1,28,248,22,71,23,194,2,87,94,23,193,1,248,23,
|
||||
198,1,251,22,133,7,2,24,23,201,1,28,248,22,71,23,205,2,87,94,23,
|
||||
204,1,23,203,1,250,22,1,22,145,13,23,206,1,23,207,1,23,200,1,27,
|
||||
249,22,145,13,248,22,64,23,197,2,23,201,2,28,248,22,140,13,23,194,2,
|
||||
27,250,22,1,22,145,13,23,197,1,203,28,248,22,140,13,193,192,253,2,38,
|
||||
198,1,251,22,139,7,2,24,23,201,1,28,248,22,71,23,205,2,87,94,23,
|
||||
204,1,23,203,1,250,22,1,22,151,13,23,206,1,23,207,1,23,200,1,27,
|
||||
249,22,151,13,248,22,64,23,197,2,23,201,2,28,248,22,146,13,23,194,2,
|
||||
27,250,22,1,22,151,13,23,197,1,203,28,248,22,146,13,193,192,253,2,38,
|
||||
202,203,204,205,206,248,22,65,201,253,2,38,201,202,203,204,205,248,22,65,200,
|
||||
27,247,22,168,13,253,2,38,198,199,200,201,202,198,87,95,28,28,248,22,128,
|
||||
13,23,194,2,10,27,248,22,191,12,23,195,2,28,23,193,2,192,87,94,23,
|
||||
193,1,28,248,22,149,6,23,195,2,27,248,22,149,13,23,196,2,28,23,193,
|
||||
2,192,87,94,23,193,1,248,22,150,13,23,196,2,11,12,252,22,184,8,23,
|
||||
200,2,2,25,35,23,198,2,23,199,2,28,28,248,22,149,6,23,195,2,10,
|
||||
248,22,137,7,23,195,2,87,94,23,194,1,12,252,22,184,8,23,200,2,2,
|
||||
26,36,23,198,2,23,199,1,91,159,38,11,90,161,38,35,11,248,22,148,13,
|
||||
23,197,2,87,94,23,195,1,87,94,28,192,12,250,22,185,8,23,201,1,2,
|
||||
27,247,22,174,13,253,2,38,198,199,200,201,202,198,87,95,28,28,248,22,134,
|
||||
13,23,194,2,10,27,248,22,133,13,23,195,2,28,23,193,2,192,87,94,23,
|
||||
193,1,28,248,22,155,6,23,195,2,27,248,22,155,13,23,196,2,28,23,193,
|
||||
2,192,87,94,23,193,1,248,22,156,13,23,196,2,11,12,252,22,190,8,23,
|
||||
200,2,2,25,35,23,198,2,23,199,2,28,28,248,22,155,6,23,195,2,10,
|
||||
248,22,143,7,23,195,2,87,94,23,194,1,12,252,22,190,8,23,200,2,2,
|
||||
26,36,23,198,2,23,199,1,91,159,38,11,90,161,38,35,11,248,22,154,13,
|
||||
23,197,2,87,94,23,195,1,87,94,28,192,12,250,22,191,8,23,201,1,2,
|
||||
27,23,199,1,249,22,7,194,195,91,159,37,11,90,161,37,35,11,87,95,28,
|
||||
28,248,22,128,13,23,196,2,10,27,248,22,191,12,23,197,2,28,23,193,2,
|
||||
192,87,94,23,193,1,28,248,22,149,6,23,197,2,27,248,22,149,13,23,198,
|
||||
2,28,23,193,2,192,87,94,23,193,1,248,22,150,13,23,198,2,11,12,252,
|
||||
22,184,8,2,10,2,25,35,23,200,2,23,201,2,28,28,248,22,149,6,23,
|
||||
197,2,10,248,22,137,7,23,197,2,12,252,22,184,8,2,10,2,26,36,23,
|
||||
200,2,23,201,2,91,159,38,11,90,161,38,35,11,248,22,148,13,23,199,2,
|
||||
87,94,23,195,1,87,94,28,23,193,2,12,250,22,185,8,2,10,2,27,23,
|
||||
201,2,249,22,7,23,195,1,23,196,1,27,249,22,137,13,250,22,184,13,0,
|
||||
28,248,22,134,13,23,196,2,10,27,248,22,133,13,23,197,2,28,23,193,2,
|
||||
192,87,94,23,193,1,28,248,22,155,6,23,197,2,27,248,22,155,13,23,198,
|
||||
2,28,23,193,2,192,87,94,23,193,1,248,22,156,13,23,198,2,11,12,252,
|
||||
22,190,8,2,10,2,25,35,23,200,2,23,201,2,28,28,248,22,155,6,23,
|
||||
197,2,10,248,22,143,7,23,197,2,12,252,22,190,8,2,10,2,26,36,23,
|
||||
200,2,23,201,2,91,159,38,11,90,161,38,35,11,248,22,154,13,23,199,2,
|
||||
87,94,23,195,1,87,94,28,23,193,2,12,250,22,191,8,2,10,2,27,23,
|
||||
201,2,249,22,7,23,195,1,23,196,1,27,249,22,143,13,250,22,190,13,0,
|
||||
18,35,114,120,35,34,40,91,46,93,91,94,46,93,42,124,41,36,34,248,22,
|
||||
133,13,23,201,1,28,248,22,149,6,23,203,2,249,22,161,7,23,204,1,8,
|
||||
63,23,202,1,28,248,22,128,13,23,199,2,248,22,129,13,23,199,1,87,94,
|
||||
23,198,1,247,22,130,13,28,248,22,191,12,194,249,22,145,13,195,194,192,91,
|
||||
159,37,11,90,161,37,35,11,87,95,28,28,248,22,128,13,23,196,2,10,27,
|
||||
248,22,191,12,23,197,2,28,23,193,2,192,87,94,23,193,1,28,248,22,149,
|
||||
6,23,197,2,27,248,22,149,13,23,198,2,28,23,193,2,192,87,94,23,193,
|
||||
1,248,22,150,13,23,198,2,11,12,252,22,184,8,2,11,2,25,35,23,200,
|
||||
2,23,201,2,28,28,248,22,149,6,23,197,2,10,248,22,137,7,23,197,2,
|
||||
12,252,22,184,8,2,11,2,26,36,23,200,2,23,201,2,91,159,38,11,90,
|
||||
161,38,35,11,248,22,148,13,23,199,2,87,94,23,195,1,87,94,28,23,193,
|
||||
2,12,250,22,185,8,2,11,2,27,23,201,2,249,22,7,23,195,1,23,196,
|
||||
1,27,249,22,137,13,249,22,147,7,250,22,185,13,0,9,35,114,120,35,34,
|
||||
91,46,93,34,248,22,133,13,23,203,1,6,1,1,95,28,248,22,149,6,23,
|
||||
202,2,249,22,161,7,23,203,1,8,63,23,201,1,28,248,22,128,13,23,199,
|
||||
2,248,22,129,13,23,199,1,87,94,23,198,1,247,22,130,13,28,248,22,191,
|
||||
12,194,249,22,145,13,195,194,192,249,247,22,180,4,194,11,249,80,158,37,46,
|
||||
9,9,249,80,158,37,46,195,9,27,247,22,170,13,249,80,158,38,47,28,23,
|
||||
195,2,27,248,22,166,7,6,11,11,80,76,84,67,79,76,76,69,67,84,83,
|
||||
28,192,192,6,0,0,6,0,0,27,28,23,196,1,250,22,145,13,248,22,166,
|
||||
13,69,97,100,100,111,110,45,100,105,114,247,22,164,7,6,8,8,99,111,108,
|
||||
139,13,23,201,1,28,248,22,155,6,23,203,2,249,22,167,7,23,204,1,8,
|
||||
63,23,202,1,28,248,22,134,13,23,199,2,248,22,135,13,23,199,1,87,94,
|
||||
23,198,1,247,22,136,13,28,248,22,133,13,194,249,22,151,13,195,194,192,91,
|
||||
159,37,11,90,161,37,35,11,87,95,28,28,248,22,134,13,23,196,2,10,27,
|
||||
248,22,133,13,23,197,2,28,23,193,2,192,87,94,23,193,1,28,248,22,155,
|
||||
6,23,197,2,27,248,22,155,13,23,198,2,28,23,193,2,192,87,94,23,193,
|
||||
1,248,22,156,13,23,198,2,11,12,252,22,190,8,2,11,2,25,35,23,200,
|
||||
2,23,201,2,28,28,248,22,155,6,23,197,2,10,248,22,143,7,23,197,2,
|
||||
12,252,22,190,8,2,11,2,26,36,23,200,2,23,201,2,91,159,38,11,90,
|
||||
161,38,35,11,248,22,154,13,23,199,2,87,94,23,195,1,87,94,28,23,193,
|
||||
2,12,250,22,191,8,2,11,2,27,23,201,2,249,22,7,23,195,1,23,196,
|
||||
1,27,249,22,143,13,249,22,153,7,250,22,191,13,0,9,35,114,120,35,34,
|
||||
91,46,93,34,248,22,139,13,23,203,1,6,1,1,95,28,248,22,155,6,23,
|
||||
202,2,249,22,167,7,23,203,1,8,63,23,201,1,28,248,22,134,13,23,199,
|
||||
2,248,22,135,13,23,199,1,87,94,23,198,1,247,22,136,13,28,248,22,133,
|
||||
13,194,249,22,151,13,195,194,192,249,247,22,186,4,194,11,249,80,158,37,46,
|
||||
9,9,249,80,158,37,46,195,9,27,247,22,176,13,249,80,158,38,47,28,23,
|
||||
195,2,27,248,22,172,7,6,11,11,80,76,84,67,79,76,76,69,67,84,83,
|
||||
28,192,192,6,0,0,6,0,0,27,28,23,196,1,250,22,151,13,248,22,172,
|
||||
13,69,97,100,100,111,110,45,100,105,114,247,22,170,7,6,8,8,99,111,108,
|
||||
108,101,99,116,115,11,27,248,80,159,41,52,36,250,22,77,23,203,1,248,22,
|
||||
73,248,22,166,13,72,99,111,108,108,101,99,116,115,45,100,105,114,23,204,1,
|
||||
73,248,22,172,13,72,99,111,108,108,101,99,116,115,45,100,105,114,23,204,1,
|
||||
28,23,194,2,249,22,63,23,196,1,23,195,1,192,32,48,89,162,8,44,38,
|
||||
54,2,19,222,33,49,27,249,22,177,13,23,197,2,23,198,2,28,23,193,2,
|
||||
54,2,19,222,33,49,27,249,22,183,13,23,197,2,23,198,2,28,23,193,2,
|
||||
87,94,23,196,1,27,248,22,88,23,195,2,27,27,248,22,97,23,197,1,27,
|
||||
249,22,177,13,23,201,2,23,196,2,28,23,193,2,87,94,23,194,1,27,248,
|
||||
249,22,183,13,23,201,2,23,196,2,28,23,193,2,87,94,23,194,1,27,248,
|
||||
22,88,23,195,2,27,250,2,48,23,203,2,23,204,1,248,22,97,23,199,1,
|
||||
28,249,22,143,7,23,196,2,2,28,249,22,77,23,202,2,194,249,22,63,248,
|
||||
22,136,13,23,197,1,23,195,1,87,95,23,199,1,23,193,1,28,249,22,143,
|
||||
7,23,196,2,2,28,249,22,77,23,200,2,9,249,22,63,248,22,136,13,23,
|
||||
197,1,9,28,249,22,143,7,23,196,2,2,28,249,22,77,197,194,87,94,23,
|
||||
196,1,249,22,63,248,22,136,13,23,197,1,194,87,94,23,193,1,28,249,22,
|
||||
143,7,23,198,2,2,28,249,22,77,195,9,87,94,23,194,1,249,22,63,248,
|
||||
22,136,13,23,199,1,9,87,95,28,28,248,22,137,7,194,10,248,22,149,6,
|
||||
194,12,250,22,184,8,2,14,6,21,21,98,121,116,101,32,115,116,114,105,110,
|
||||
28,249,22,149,7,23,196,2,2,28,249,22,77,23,202,2,194,249,22,63,248,
|
||||
22,142,13,23,197,1,23,195,1,87,95,23,199,1,23,193,1,28,249,22,149,
|
||||
7,23,196,2,2,28,249,22,77,23,200,2,9,249,22,63,248,22,142,13,23,
|
||||
197,1,9,28,249,22,149,7,23,196,2,2,28,249,22,77,197,194,87,94,23,
|
||||
196,1,249,22,63,248,22,142,13,23,197,1,194,87,94,23,193,1,28,249,22,
|
||||
149,7,23,198,2,2,28,249,22,77,195,9,87,94,23,194,1,249,22,63,248,
|
||||
22,142,13,23,199,1,9,87,95,28,28,248,22,143,7,194,10,248,22,155,6,
|
||||
194,12,250,22,190,8,2,14,6,21,21,98,121,116,101,32,115,116,114,105,110,
|
||||
103,32,111,114,32,115,116,114,105,110,103,196,28,28,248,22,72,195,249,22,4,
|
||||
22,191,12,196,11,12,250,22,184,8,2,14,6,13,13,108,105,115,116,32,111,
|
||||
102,32,112,97,116,104,115,197,250,2,48,197,195,28,248,22,149,6,197,248,22,
|
||||
160,7,197,196,32,51,89,162,8,44,39,57,2,19,222,33,54,32,52,89,162,
|
||||
22,133,13,196,11,12,250,22,190,8,2,14,6,13,13,108,105,115,116,32,111,
|
||||
102,32,112,97,116,104,115,197,250,2,48,197,195,28,248,22,155,6,197,248,22,
|
||||
166,7,197,196,32,51,89,162,8,44,39,57,2,19,222,33,54,32,52,89,162,
|
||||
8,44,38,54,70,102,111,117,110,100,45,101,120,101,99,222,33,53,28,23,193,
|
||||
2,91,159,38,11,90,161,38,35,11,248,22,148,13,23,199,2,87,95,23,195,
|
||||
1,23,194,1,27,28,23,198,2,27,248,22,153,13,23,201,2,28,249,22,156,
|
||||
8,23,195,2,23,202,2,11,28,248,22,149,13,23,194,2,250,2,52,23,201,
|
||||
2,23,202,2,249,22,145,13,23,200,2,23,198,1,250,2,52,23,201,2,23,
|
||||
202,2,23,196,1,11,28,23,193,2,192,87,94,23,193,1,27,28,248,22,191,
|
||||
12,23,196,2,27,249,22,145,13,23,198,2,23,201,2,28,28,248,22,140,13,
|
||||
193,10,248,22,139,13,193,192,11,11,28,23,193,2,192,87,94,23,193,1,28,
|
||||
23,199,2,11,27,248,22,153,13,23,202,2,28,249,22,156,8,23,195,2,23,
|
||||
203,1,11,28,248,22,149,13,23,194,2,250,2,52,23,202,1,23,203,1,249,
|
||||
22,145,13,23,201,1,23,198,1,250,2,52,201,202,195,194,28,248,22,71,23,
|
||||
197,2,11,27,248,22,152,13,248,22,64,23,199,2,27,249,22,145,13,23,196,
|
||||
1,23,197,2,28,248,22,139,13,23,194,2,250,2,52,198,199,195,87,94,23,
|
||||
193,1,27,248,22,65,23,200,1,28,248,22,71,23,194,2,11,27,248,22,152,
|
||||
13,248,22,64,23,196,2,27,249,22,145,13,23,196,1,23,200,2,28,248,22,
|
||||
139,13,23,194,2,250,2,52,201,202,195,87,94,23,193,1,27,248,22,65,23,
|
||||
197,1,28,248,22,71,23,194,2,11,27,248,22,152,13,248,22,64,195,27,249,
|
||||
22,145,13,23,196,1,202,28,248,22,139,13,193,250,2,52,204,205,195,251,2,
|
||||
51,204,205,206,248,22,65,199,87,95,28,27,248,22,191,12,23,196,2,28,23,
|
||||
193,2,192,87,94,23,193,1,28,248,22,149,6,23,196,2,27,248,22,149,13,
|
||||
23,197,2,28,23,193,2,192,87,94,23,193,1,248,22,150,13,23,197,2,11,
|
||||
12,250,22,184,8,2,15,6,25,25,112,97,116,104,32,111,114,32,115,116,114,
|
||||
2,91,159,38,11,90,161,38,35,11,248,22,154,13,23,199,2,87,95,23,195,
|
||||
1,23,194,1,27,28,23,198,2,27,248,22,159,13,23,201,2,28,249,22,162,
|
||||
8,23,195,2,23,202,2,11,28,248,22,155,13,23,194,2,250,2,52,23,201,
|
||||
2,23,202,2,249,22,151,13,23,200,2,23,198,1,250,2,52,23,201,2,23,
|
||||
202,2,23,196,1,11,28,23,193,2,192,87,94,23,193,1,27,28,248,22,133,
|
||||
13,23,196,2,27,249,22,151,13,23,198,2,23,201,2,28,28,248,22,146,13,
|
||||
193,10,248,22,145,13,193,192,11,11,28,23,193,2,192,87,94,23,193,1,28,
|
||||
23,199,2,11,27,248,22,159,13,23,202,2,28,249,22,162,8,23,195,2,23,
|
||||
203,1,11,28,248,22,155,13,23,194,2,250,2,52,23,202,1,23,203,1,249,
|
||||
22,151,13,23,201,1,23,198,1,250,2,52,201,202,195,194,28,248,22,71,23,
|
||||
197,2,11,27,248,22,158,13,248,22,64,23,199,2,27,249,22,151,13,23,196,
|
||||
1,23,197,2,28,248,22,145,13,23,194,2,250,2,52,198,199,195,87,94,23,
|
||||
193,1,27,248,22,65,23,200,1,28,248,22,71,23,194,2,11,27,248,22,158,
|
||||
13,248,22,64,23,196,2,27,249,22,151,13,23,196,1,23,200,2,28,248,22,
|
||||
145,13,23,194,2,250,2,52,201,202,195,87,94,23,193,1,27,248,22,65,23,
|
||||
197,1,28,248,22,71,23,194,2,11,27,248,22,158,13,248,22,64,195,27,249,
|
||||
22,151,13,23,196,1,202,28,248,22,145,13,193,250,2,52,204,205,195,251,2,
|
||||
51,204,205,206,248,22,65,199,87,95,28,27,248,22,133,13,23,196,2,28,23,
|
||||
193,2,192,87,94,23,193,1,28,248,22,155,6,23,196,2,27,248,22,155,13,
|
||||
23,197,2,28,23,193,2,192,87,94,23,193,1,248,22,156,13,23,197,2,11,
|
||||
12,250,22,190,8,2,15,6,25,25,112,97,116,104,32,111,114,32,115,116,114,
|
||||
105,110,103,32,40,115,97,110,115,32,110,117,108,41,23,197,2,28,28,23,195,
|
||||
2,28,27,248,22,191,12,23,197,2,28,23,193,2,192,87,94,23,193,1,28,
|
||||
248,22,149,6,23,197,2,27,248,22,149,13,23,198,2,28,23,193,2,192,87,
|
||||
94,23,193,1,248,22,150,13,23,198,2,11,248,22,149,13,23,196,2,11,10,
|
||||
12,250,22,184,8,2,15,6,29,29,35,102,32,111,114,32,114,101,108,97,116,
|
||||
2,28,27,248,22,133,13,23,197,2,28,23,193,2,192,87,94,23,193,1,28,
|
||||
248,22,155,6,23,197,2,27,248,22,155,13,23,198,2,28,23,193,2,192,87,
|
||||
94,23,193,1,248,22,156,13,23,198,2,11,248,22,155,13,23,196,2,11,10,
|
||||
12,250,22,190,8,2,15,6,29,29,35,102,32,111,114,32,114,101,108,97,116,
|
||||
105,118,101,32,112,97,116,104,32,111,114,32,115,116,114,105,110,103,23,198,2,
|
||||
28,28,248,22,149,13,23,195,2,91,159,38,11,90,161,38,35,11,248,22,148,
|
||||
13,23,198,2,249,22,154,8,194,68,114,101,108,97,116,105,118,101,11,27,248,
|
||||
22,166,7,6,4,4,80,65,84,72,251,2,51,23,199,1,23,200,1,23,201,
|
||||
1,28,23,197,2,27,249,80,158,43,47,23,200,1,9,28,249,22,154,8,247,
|
||||
22,168,7,2,21,249,22,63,248,22,136,13,5,1,46,23,195,1,192,9,27,
|
||||
248,22,152,13,23,196,1,28,248,22,139,13,193,250,2,52,198,199,195,11,250,
|
||||
80,158,38,48,196,197,11,250,80,158,38,48,196,11,11,87,94,249,22,140,6,
|
||||
247,22,176,4,195,248,22,166,5,249,22,163,3,35,249,22,147,3,197,198,27,
|
||||
28,28,248,22,155,13,23,195,2,91,159,38,11,90,161,38,35,11,248,22,154,
|
||||
13,23,198,2,249,22,160,8,194,68,114,101,108,97,116,105,118,101,11,27,248,
|
||||
22,172,7,6,4,4,80,65,84,72,251,2,51,23,199,1,23,200,1,23,201,
|
||||
1,28,23,197,2,27,249,80,158,43,47,23,200,1,9,28,249,22,160,8,247,
|
||||
22,174,7,2,21,249,22,63,248,22,142,13,5,1,46,23,195,1,192,9,27,
|
||||
248,22,158,13,23,196,1,28,248,22,145,13,193,250,2,52,198,199,195,11,250,
|
||||
80,158,38,48,196,197,11,250,80,158,38,48,196,11,11,87,94,249,22,146,6,
|
||||
247,22,182,4,195,248,22,172,5,249,22,169,3,35,249,22,153,3,197,198,27,
|
||||
28,23,197,2,87,95,23,196,1,23,195,1,23,197,1,87,94,23,197,1,27,
|
||||
248,22,166,13,2,20,27,249,80,158,40,48,23,196,1,11,27,27,248,22,166,
|
||||
3,23,200,1,28,192,192,35,27,27,248,22,166,3,23,202,1,28,192,192,35,
|
||||
249,22,143,5,23,197,1,83,158,39,20,97,95,89,162,8,44,35,47,9,224,
|
||||
3,2,33,58,23,195,1,23,196,1,27,248,22,128,5,23,195,1,248,80,159,
|
||||
248,22,172,13,2,20,27,249,80,158,40,48,23,196,1,11,27,27,248,22,172,
|
||||
3,23,200,1,28,192,192,35,27,27,248,22,172,3,23,202,1,28,192,192,35,
|
||||
249,22,149,5,23,197,1,83,158,39,20,97,95,89,162,8,44,35,47,9,224,
|
||||
3,2,33,58,23,195,1,23,196,1,27,248,22,134,5,23,195,1,248,80,159,
|
||||
38,53,36,193,159,35,20,103,159,35,16,1,65,98,101,103,105,110,16,0,83,
|
||||
158,41,20,100,138,67,35,37,117,116,105,108,115,2,1,11,11,10,10,42,80,
|
||||
158,35,35,20,103,159,37,16,17,30,2,1,2,2,193,30,2,1,2,3,193,
|
||||
|
@ -319,7 +319,7 @@
|
|||
0,16,0,16,0,35,35,16,0,16,17,83,158,35,16,2,89,162,43,36,48,
|
||||
2,19,223,0,33,29,80,159,35,53,36,83,158,35,16,2,89,162,8,44,36,
|
||||
55,2,19,223,0,33,30,80,159,35,52,36,83,158,35,16,2,32,0,89,162,
|
||||
43,36,44,2,2,222,33,31,80,159,35,35,36,83,158,35,16,2,249,22,151,
|
||||
43,36,44,2,2,222,33,31,80,159,35,35,36,83,158,35,16,2,249,22,157,
|
||||
6,7,92,7,92,80,159,35,36,36,83,158,35,16,2,89,162,43,36,53,2,
|
||||
4,223,0,33,32,80,159,35,37,36,83,158,35,16,2,32,0,89,162,8,44,
|
||||
37,49,2,5,222,33,33,80,159,35,38,36,83,158,35,16,2,32,0,89,162,
|
||||
|
@ -332,8 +332,8 @@
|
|||
35,16,2,32,0,89,162,43,36,43,2,12,222,33,44,80,159,35,45,36,83,
|
||||
158,35,16,2,83,158,38,20,96,96,2,13,89,162,43,35,43,9,223,0,33,
|
||||
45,89,162,43,36,44,9,223,0,33,46,89,162,43,37,54,9,223,0,33,47,
|
||||
80,159,35,46,36,83,158,35,16,2,27,248,22,173,13,248,22,160,7,27,28,
|
||||
249,22,154,8,247,22,168,7,2,21,6,1,1,59,6,1,1,58,250,22,133,
|
||||
80,159,35,46,36,83,158,35,16,2,27,248,22,179,13,248,22,166,7,27,28,
|
||||
249,22,160,8,247,22,174,7,2,21,6,1,1,59,6,1,1,58,250,22,139,
|
||||
7,6,14,14,40,91,94,126,97,93,42,41,126,97,40,46,42,41,23,196,2,
|
||||
23,196,1,89,162,8,44,37,47,2,14,223,0,33,50,80,159,35,47,36,83,
|
||||
158,35,16,2,83,158,38,20,96,96,2,15,89,162,8,44,38,53,9,223,0,
|
||||
|
@ -344,12 +344,12 @@
|
|||
EVAL_ONE_SIZED_STR((char *)expr, 5080);
|
||||
}
|
||||
{
|
||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,49,46,49,8,0,0,0,1,0,0,6,0,19,0,
|
||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,49,46,50,8,0,0,0,1,0,0,6,0,19,0,
|
||||
34,0,48,0,62,0,76,0,111,0,0,0,255,0,0,0,65,113,117,111,116,
|
||||
101,29,94,2,1,67,35,37,117,116,105,108,115,11,29,94,2,1,69,35,37,
|
||||
110,101,116,119,111,114,107,11,29,94,2,1,68,35,37,112,97,114,97,109,122,
|
||||
11,29,94,2,1,68,35,37,101,120,112,111,98,115,11,29,94,2,1,68,35,
|
||||
37,107,101,114,110,101,108,11,98,10,35,11,8,176,229,97,159,2,2,35,35,
|
||||
37,107,101,114,110,101,108,11,98,10,35,11,8,188,229,97,159,2,2,35,35,
|
||||
159,2,3,35,35,159,2,4,35,35,159,2,5,35,35,159,2,6,35,35,16,
|
||||
0,159,35,20,103,159,35,16,1,65,98,101,103,105,110,16,0,83,158,41,20,
|
||||
100,138,69,35,37,98,117,105,108,116,105,110,29,11,11,11,10,10,18,96,11,
|
||||
|
@ -361,7 +361,7 @@
|
|||
EVAL_ONE_SIZED_STR((char *)expr, 292);
|
||||
}
|
||||
{
|
||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,49,46,49,52,0,0,0,1,0,0,3,0,14,0,
|
||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,49,46,50,52,0,0,0,1,0,0,3,0,14,0,
|
||||
41,0,47,0,60,0,74,0,96,0,122,0,134,0,152,0,172,0,184,0,200,
|
||||
0,223,0,3,1,8,1,13,1,18,1,23,1,54,1,58,1,66,1,74,1,
|
||||
82,1,185,1,230,1,250,1,29,2,64,2,98,2,108,2,155,2,165,2,172,
|
||||
|
@ -383,48 +383,48 @@
|
|||
64,108,111,111,112,1,29,115,116,97,110,100,97,114,100,45,109,111,100,117,108,
|
||||
101,45,110,97,109,101,45,114,101,115,111,108,118,101,114,63,108,105,98,67,105,
|
||||
103,110,111,114,101,100,249,22,14,195,80,158,37,45,249,80,159,37,48,36,195,
|
||||
10,27,28,23,195,2,28,249,22,154,8,23,197,2,80,158,38,46,87,94,23,
|
||||
195,1,80,158,36,47,27,248,22,163,4,23,197,2,28,248,22,191,12,23,194,
|
||||
2,91,159,38,11,90,161,38,35,11,248,22,148,13,23,197,1,87,95,83,160,
|
||||
10,27,28,23,195,2,28,249,22,160,8,23,197,2,80,158,38,46,87,94,23,
|
||||
195,1,80,158,36,47,27,248,22,169,4,23,197,2,28,248,22,133,13,23,194,
|
||||
2,91,159,38,11,90,161,38,35,11,248,22,154,13,23,197,1,87,95,83,160,
|
||||
37,11,80,158,40,46,198,83,160,37,11,80,158,40,47,192,192,11,11,28,23,
|
||||
193,2,192,87,94,23,193,1,27,247,22,181,4,28,192,192,247,22,167,13,20,
|
||||
14,159,80,158,35,39,250,80,158,38,40,249,22,27,11,80,158,40,39,22,181,
|
||||
4,28,248,22,191,12,23,198,2,23,197,1,87,94,23,197,1,247,22,167,13,
|
||||
247,194,250,22,145,13,23,197,1,23,199,1,249,80,158,42,38,23,198,1,2,
|
||||
18,252,22,145,13,23,199,1,23,201,1,6,6,6,110,97,116,105,118,101,247,
|
||||
22,169,7,249,80,158,44,38,23,200,1,80,158,44,35,87,94,23,194,1,27,
|
||||
23,194,1,27,250,22,162,13,196,11,32,0,89,162,8,44,35,40,9,222,11,
|
||||
28,192,249,22,63,195,194,11,27,248,23,195,1,23,196,1,27,250,22,162,13,
|
||||
193,2,192,87,94,23,193,1,27,247,22,187,4,28,192,192,247,22,173,13,20,
|
||||
14,159,80,158,35,39,250,80,158,38,40,249,22,27,11,80,158,40,39,22,187,
|
||||
4,28,248,22,133,13,23,198,2,23,197,1,87,94,23,197,1,247,22,173,13,
|
||||
247,194,250,22,151,13,23,197,1,23,199,1,249,80,158,42,38,23,198,1,2,
|
||||
18,252,22,151,13,23,199,1,23,201,1,6,6,6,110,97,116,105,118,101,247,
|
||||
22,175,7,249,80,158,44,38,23,200,1,80,158,44,35,87,94,23,194,1,27,
|
||||
23,194,1,27,250,22,168,13,196,11,32,0,89,162,8,44,35,40,9,222,11,
|
||||
28,192,249,22,63,195,194,11,27,248,23,195,1,23,196,1,27,250,22,168,13,
|
||||
196,11,32,0,89,162,8,44,35,40,9,222,11,28,192,249,22,63,195,194,11,
|
||||
249,247,22,172,13,248,22,64,195,195,27,250,22,145,13,23,198,1,23,200,1,
|
||||
249,80,158,43,38,23,199,1,2,18,27,250,22,162,13,196,11,32,0,89,162,
|
||||
8,44,35,40,9,222,11,28,192,249,22,63,195,194,11,249,247,22,179,4,248,
|
||||
22,64,195,195,249,247,22,179,4,194,195,87,94,28,248,80,158,36,37,23,195,
|
||||
2,12,250,22,184,8,77,108,111,97,100,47,117,115,101,45,99,111,109,112,105,
|
||||
249,247,22,178,13,248,22,64,195,195,27,250,22,151,13,23,198,1,23,200,1,
|
||||
249,80,158,43,38,23,199,1,2,18,27,250,22,168,13,196,11,32,0,89,162,
|
||||
8,44,35,40,9,222,11,28,192,249,22,63,195,194,11,249,247,22,185,4,248,
|
||||
22,64,195,195,249,247,22,185,4,194,195,87,94,28,248,80,158,36,37,23,195,
|
||||
2,12,250,22,190,8,77,108,111,97,100,47,117,115,101,45,99,111,109,112,105,
|
||||
108,101,100,6,25,25,112,97,116,104,32,111,114,32,118,97,108,105,100,45,112,
|
||||
97,116,104,32,115,116,114,105,110,103,23,197,2,91,159,41,11,90,161,36,35,
|
||||
11,28,248,22,151,13,23,201,2,23,200,1,27,247,22,181,4,28,23,193,2,
|
||||
249,22,152,13,23,203,1,23,195,1,200,90,161,38,36,11,248,22,148,13,23,
|
||||
194,2,87,94,23,196,1,90,161,36,39,11,28,249,22,154,8,23,196,2,68,
|
||||
11,28,248,22,157,13,23,201,2,23,200,1,27,247,22,187,4,28,23,193,2,
|
||||
249,22,158,13,23,203,1,23,195,1,200,90,161,38,36,11,248,22,154,13,23,
|
||||
194,2,87,94,23,196,1,90,161,36,39,11,28,249,22,160,8,23,196,2,68,
|
||||
114,101,108,97,116,105,118,101,87,94,23,194,1,2,17,23,194,1,90,161,36,
|
||||
40,11,247,22,169,13,27,89,162,43,36,49,62,122,111,225,7,5,3,33,27,
|
||||
40,11,247,22,175,13,27,89,162,43,36,49,62,122,111,225,7,5,3,33,27,
|
||||
27,89,162,43,36,51,9,225,8,6,4,33,28,27,249,22,5,89,162,8,44,
|
||||
36,47,9,223,5,33,29,23,203,2,27,28,23,195,2,27,249,22,5,83,158,
|
||||
39,20,97,94,89,162,8,44,36,47,9,223,5,33,30,23,198,1,23,205,2,
|
||||
27,28,23,196,2,11,193,28,192,192,28,193,28,23,196,2,28,249,22,159,3,
|
||||
27,28,23,196,2,11,193,28,192,192,28,193,28,23,196,2,28,249,22,165,3,
|
||||
248,22,65,196,248,22,65,23,199,2,193,11,11,11,87,94,23,195,1,11,28,
|
||||
23,193,2,249,80,159,47,54,36,202,89,162,43,35,45,9,224,14,2,33,31,
|
||||
87,94,23,193,1,27,28,23,197,1,27,249,22,5,83,158,39,20,97,94,89,
|
||||
162,8,44,36,50,9,225,14,12,10,33,32,23,203,1,23,206,1,27,28,196,
|
||||
11,193,28,192,192,28,193,28,196,28,249,22,159,3,248,22,65,196,248,22,65,
|
||||
11,193,28,192,192,28,193,28,196,28,249,22,165,3,248,22,65,196,248,22,65,
|
||||
199,193,11,11,11,11,28,192,249,80,159,48,54,36,203,89,162,43,35,45,9,
|
||||
224,15,2,33,33,249,80,159,48,54,36,203,89,162,43,35,44,9,224,15,7,
|
||||
33,34,32,36,89,162,8,44,36,54,2,19,222,33,38,0,17,35,114,120,34,
|
||||
94,40,46,42,63,41,47,40,46,42,41,36,34,27,249,22,177,13,2,37,23,
|
||||
94,40,46,42,63,41,47,40,46,42,41,36,34,27,249,22,183,13,2,37,23,
|
||||
196,2,28,23,193,2,87,94,23,194,1,249,22,63,248,22,88,23,196,2,27,
|
||||
248,22,97,23,197,1,27,249,22,177,13,2,37,23,196,2,28,23,193,2,87,
|
||||
248,22,97,23,197,1,27,249,22,183,13,2,37,23,196,2,28,23,193,2,87,
|
||||
94,23,194,1,249,22,63,248,22,88,23,196,2,27,248,22,97,23,197,1,27,
|
||||
249,22,177,13,2,37,23,196,2,28,23,193,2,87,94,23,194,1,249,22,63,
|
||||
249,22,183,13,2,37,23,196,2,28,23,193,2,87,94,23,194,1,249,22,63,
|
||||
248,22,88,23,196,2,248,2,36,248,22,97,23,197,1,248,22,73,194,248,22,
|
||||
73,194,248,22,73,194,32,39,89,162,43,36,54,2,19,222,33,40,28,248,22,
|
||||
71,248,22,65,23,195,2,249,22,7,9,248,22,64,195,91,159,37,11,90,161,
|
||||
|
@ -435,96 +435,96 @@
|
|||
249,22,7,249,22,63,248,22,64,23,200,1,23,197,1,23,196,1,249,22,7,
|
||||
249,22,63,248,22,64,23,200,1,23,197,1,23,196,1,249,22,7,249,22,63,
|
||||
248,22,64,23,200,1,23,197,1,195,27,248,2,36,23,195,1,28,194,192,248,
|
||||
2,39,193,87,95,28,248,22,161,4,195,12,250,22,184,8,2,20,6,20,20,
|
||||
2,39,193,87,95,28,248,22,167,4,195,12,250,22,190,8,2,20,6,20,20,
|
||||
114,101,115,111,108,118,101,100,45,109,111,100,117,108,101,45,112,97,116,104,197,
|
||||
28,24,193,2,248,24,194,1,195,87,94,23,193,1,12,27,27,250,22,133,2,
|
||||
80,158,41,42,248,22,133,14,247,22,174,11,11,28,23,193,2,192,87,94,23,
|
||||
193,1,27,247,22,121,87,94,250,22,131,2,80,158,42,42,248,22,133,14,247,
|
||||
22,174,11,195,192,250,22,131,2,195,198,66,97,116,116,97,99,104,251,211,197,
|
||||
198,199,10,28,192,250,22,183,8,11,196,195,248,22,181,8,194,28,249,22,155,
|
||||
6,194,6,1,1,46,2,17,28,249,22,155,6,194,6,2,2,46,46,62,117,
|
||||
112,192,28,249,22,156,8,248,22,65,23,200,2,23,197,1,28,249,22,154,8,
|
||||
248,22,64,23,200,2,23,196,1,251,22,181,8,2,20,6,26,26,99,121,99,
|
||||
28,24,193,2,248,24,194,1,195,87,94,23,193,1,12,27,27,250,22,137,2,
|
||||
80,158,41,42,248,22,139,14,247,22,180,11,11,28,23,193,2,192,87,94,23,
|
||||
193,1,27,247,22,121,87,94,250,22,135,2,80,158,42,42,248,22,139,14,247,
|
||||
22,180,11,195,192,250,22,135,2,195,198,66,97,116,116,97,99,104,251,211,197,
|
||||
198,199,10,28,192,250,22,189,8,11,196,195,248,22,187,8,194,28,249,22,161,
|
||||
6,194,6,1,1,46,2,17,28,249,22,161,6,194,6,2,2,46,46,62,117,
|
||||
112,192,28,249,22,162,8,248,22,65,23,200,2,23,197,1,28,249,22,160,8,
|
||||
248,22,64,23,200,2,23,196,1,251,22,187,8,2,20,6,26,26,99,121,99,
|
||||
108,101,32,105,110,32,108,111,97,100,105,110,103,32,97,116,32,126,101,58,32,
|
||||
126,101,23,200,1,249,22,2,22,65,248,22,78,249,22,63,23,206,1,23,202,
|
||||
1,12,12,247,192,20,14,159,80,158,39,44,249,22,63,247,22,174,11,23,197,
|
||||
1,12,12,247,192,20,14,159,80,158,39,44,249,22,63,247,22,180,11,23,197,
|
||||
1,20,14,159,80,158,39,39,250,80,158,42,40,249,22,27,11,80,158,44,39,
|
||||
22,143,4,23,196,1,249,247,22,180,4,23,198,1,248,22,52,248,22,131,13,
|
||||
23,198,1,87,94,28,28,248,22,191,12,23,197,2,10,248,22,167,4,23,197,
|
||||
2,12,28,23,198,2,250,22,183,8,11,6,15,15,98,97,100,32,109,111,100,
|
||||
117,108,101,32,112,97,116,104,23,201,2,250,22,184,8,2,20,6,19,19,109,
|
||||
22,149,4,23,196,1,249,247,22,186,4,23,198,1,248,22,52,248,22,137,13,
|
||||
23,198,1,87,94,28,28,248,22,133,13,23,197,2,10,248,22,173,4,23,197,
|
||||
2,12,28,23,198,2,250,22,189,8,11,6,15,15,98,97,100,32,109,111,100,
|
||||
117,108,101,32,112,97,116,104,23,201,2,250,22,190,8,2,20,6,19,19,109,
|
||||
111,100,117,108,101,45,112,97,116,104,32,111,114,32,112,97,116,104,23,199,2,
|
||||
28,28,248,22,61,23,197,2,249,22,154,8,248,22,64,23,199,2,2,4,11,
|
||||
248,22,162,4,248,22,88,197,28,28,248,22,61,23,197,2,249,22,154,8,248,
|
||||
28,28,248,22,61,23,197,2,249,22,160,8,248,22,64,23,199,2,2,4,11,
|
||||
248,22,168,4,248,22,88,197,28,28,248,22,61,23,197,2,249,22,160,8,248,
|
||||
22,64,23,199,2,66,112,108,97,110,101,116,11,87,94,28,207,12,20,14,159,
|
||||
80,158,37,39,250,80,158,40,40,249,22,27,11,80,158,42,39,22,174,11,23,
|
||||
197,1,90,161,36,35,10,249,22,144,4,21,94,2,21,6,18,18,112,108,97,
|
||||
80,158,37,39,250,80,158,40,40,249,22,27,11,80,158,42,39,22,180,11,23,
|
||||
197,1,90,161,36,35,10,249,22,150,4,21,94,2,21,6,18,18,112,108,97,
|
||||
110,101,116,47,114,101,115,111,108,118,101,114,46,115,115,1,27,112,108,97,110,
|
||||
101,116,45,109,111,100,117,108,101,45,110,97,109,101,45,114,101,115,111,108,118,
|
||||
101,114,12,251,211,199,200,201,202,87,94,23,193,1,27,89,162,8,44,36,45,
|
||||
79,115,104,111,119,45,99,111,108,108,101,99,116,105,111,110,45,101,114,114,223,
|
||||
6,33,44,27,28,248,22,51,23,199,2,27,250,22,133,2,80,158,43,43,249,
|
||||
22,63,23,204,2,247,22,168,13,11,28,23,193,2,192,87,94,23,193,1,91,
|
||||
6,33,44,27,28,248,22,51,23,199,2,27,250,22,137,2,80,158,43,43,249,
|
||||
22,63,23,204,2,247,22,174,13,11,28,23,193,2,192,87,94,23,193,1,91,
|
||||
159,37,11,90,161,37,35,11,249,80,159,44,48,36,248,22,54,23,204,2,11,
|
||||
27,251,80,158,47,50,2,20,23,202,1,28,248,22,71,23,199,2,23,199,2,
|
||||
248,22,64,23,199,2,28,248,22,71,23,199,2,9,248,22,65,23,199,2,249,
|
||||
22,145,13,23,195,1,28,248,22,71,23,197,1,87,94,23,197,1,6,7,7,
|
||||
109,97,105,110,46,115,115,249,22,172,6,23,199,1,6,3,3,46,115,115,28,
|
||||
248,22,149,6,23,199,2,87,94,23,194,1,27,248,80,159,41,55,36,23,201,
|
||||
2,27,250,22,133,2,80,158,44,43,249,22,63,23,205,2,23,199,2,11,28,
|
||||
22,151,13,23,195,1,28,248,22,71,23,197,1,87,94,23,197,1,6,7,7,
|
||||
109,97,105,110,46,115,115,249,22,178,6,23,199,1,6,3,3,46,115,115,28,
|
||||
248,22,155,6,23,199,2,87,94,23,194,1,27,248,80,159,41,55,36,23,201,
|
||||
2,27,250,22,137,2,80,158,44,43,249,22,63,23,205,2,23,199,2,11,28,
|
||||
23,193,2,192,87,94,23,193,1,91,159,37,11,90,161,37,35,11,249,80,159,
|
||||
45,48,36,23,204,2,11,250,22,1,22,145,13,23,199,1,249,22,77,249,22,
|
||||
45,48,36,23,204,2,11,250,22,1,22,151,13,23,199,1,249,22,77,249,22,
|
||||
2,32,0,89,162,8,44,36,43,9,222,33,45,23,200,1,248,22,73,23,200,
|
||||
1,28,248,22,191,12,23,199,2,87,94,23,194,1,28,248,22,150,13,23,199,
|
||||
1,28,248,22,133,13,23,199,2,87,94,23,194,1,28,248,22,156,13,23,199,
|
||||
2,23,198,2,248,22,73,6,26,26,32,40,97,32,112,97,116,104,32,109,117,
|
||||
115,116,32,98,101,32,97,98,115,111,108,117,116,101,41,28,249,22,154,8,248,
|
||||
22,64,23,201,2,2,21,27,250,22,133,2,80,158,43,43,249,22,63,23,204,
|
||||
2,247,22,168,13,11,28,23,193,2,192,87,94,23,193,1,91,159,38,11,90,
|
||||
115,116,32,98,101,32,97,98,115,111,108,117,116,101,41,28,249,22,160,8,248,
|
||||
22,64,23,201,2,2,21,27,250,22,137,2,80,158,43,43,249,22,63,23,204,
|
||||
2,247,22,174,13,11,28,23,193,2,192,87,94,23,193,1,91,159,38,11,90,
|
||||
161,37,35,11,249,80,159,45,48,36,248,22,88,23,205,2,11,90,161,36,37,
|
||||
11,28,248,22,71,248,22,90,23,204,2,28,248,22,71,23,194,2,249,22,179,
|
||||
11,28,248,22,71,248,22,90,23,204,2,28,248,22,71,23,194,2,249,22,185,
|
||||
13,0,8,35,114,120,34,91,46,93,34,23,196,2,11,10,27,27,28,23,197,
|
||||
2,249,22,77,28,248,22,71,248,22,90,23,208,2,21,93,6,5,5,109,122,
|
||||
108,105,98,249,22,1,22,77,249,22,2,80,159,51,56,36,248,22,90,23,211,
|
||||
2,23,197,2,28,248,22,71,23,196,2,248,22,73,23,197,2,23,195,2,251,
|
||||
80,158,49,50,2,20,23,204,1,248,22,64,23,198,2,248,22,65,23,198,1,
|
||||
249,22,145,13,23,195,1,28,23,198,1,87,94,23,196,1,23,197,1,28,248,
|
||||
249,22,151,13,23,195,1,28,23,198,1,87,94,23,196,1,23,197,1,28,248,
|
||||
22,71,23,197,1,87,94,23,197,1,6,7,7,109,97,105,110,46,115,115,28,
|
||||
249,22,179,13,0,8,35,114,120,34,91,46,93,34,23,199,2,23,197,1,249,
|
||||
22,172,6,23,199,1,6,3,3,46,115,115,28,249,22,154,8,248,22,64,23,
|
||||
201,2,64,102,105,108,101,249,22,152,13,248,22,156,13,248,22,88,23,202,2,
|
||||
248,80,159,42,55,36,23,202,2,12,87,94,28,28,248,22,191,12,23,194,2,
|
||||
10,248,22,171,7,23,194,2,87,94,23,200,1,12,28,23,200,2,250,22,183,
|
||||
8,67,114,101,113,117,105,114,101,249,22,133,7,6,17,17,98,97,100,32,109,
|
||||
249,22,185,13,0,8,35,114,120,34,91,46,93,34,23,199,2,23,197,1,249,
|
||||
22,178,6,23,199,1,6,3,3,46,115,115,28,249,22,160,8,248,22,64,23,
|
||||
201,2,64,102,105,108,101,249,22,158,13,248,22,162,13,248,22,88,23,202,2,
|
||||
248,80,159,42,55,36,23,202,2,12,87,94,28,28,248,22,133,13,23,194,2,
|
||||
10,248,22,177,7,23,194,2,87,94,23,200,1,12,28,23,200,2,250,22,189,
|
||||
8,67,114,101,113,117,105,114,101,249,22,139,7,6,17,17,98,97,100,32,109,
|
||||
111,100,117,108,101,32,112,97,116,104,126,97,28,23,198,2,248,22,64,23,199,
|
||||
2,6,0,0,23,203,1,87,94,23,200,1,250,22,184,8,2,20,249,22,133,
|
||||
2,6,0,0,23,203,1,87,94,23,200,1,250,22,190,8,2,20,249,22,139,
|
||||
7,6,13,13,109,111,100,117,108,101,32,112,97,116,104,126,97,28,23,198,2,
|
||||
248,22,64,23,199,2,6,0,0,23,201,2,27,28,248,22,171,7,23,195,2,
|
||||
249,22,176,7,23,196,2,35,249,22,154,13,248,22,155,13,23,197,2,11,27,
|
||||
28,248,22,171,7,23,196,2,249,22,176,7,23,197,2,36,248,80,158,42,51,
|
||||
23,195,2,91,159,38,11,90,161,38,35,11,28,248,22,171,7,23,199,2,250,
|
||||
22,7,2,22,249,22,176,7,23,203,2,37,2,22,248,22,148,13,23,198,2,
|
||||
87,95,23,195,1,23,193,1,27,28,248,22,171,7,23,200,2,249,22,176,7,
|
||||
23,201,2,38,249,80,158,47,52,23,197,2,5,0,27,28,248,22,171,7,23,
|
||||
201,2,249,22,176,7,23,202,2,39,248,22,162,4,23,200,2,27,27,250,22,
|
||||
133,2,80,158,51,42,248,22,133,14,247,22,174,11,11,28,23,193,2,192,87,
|
||||
94,23,193,1,27,247,22,121,87,94,250,22,131,2,80,158,52,42,248,22,133,
|
||||
14,247,22,174,11,195,192,87,95,28,23,209,1,27,250,22,133,2,23,197,2,
|
||||
248,22,64,23,199,2,6,0,0,23,201,2,27,28,248,22,177,7,23,195,2,
|
||||
249,22,182,7,23,196,2,35,249,22,160,13,248,22,161,13,23,197,2,11,27,
|
||||
28,248,22,177,7,23,196,2,249,22,182,7,23,197,2,36,248,80,158,42,51,
|
||||
23,195,2,91,159,38,11,90,161,38,35,11,28,248,22,177,7,23,199,2,250,
|
||||
22,7,2,22,249,22,182,7,23,203,2,37,2,22,248,22,154,13,23,198,2,
|
||||
87,95,23,195,1,23,193,1,27,28,248,22,177,7,23,200,2,249,22,182,7,
|
||||
23,201,2,38,249,80,158,47,52,23,197,2,5,0,27,28,248,22,177,7,23,
|
||||
201,2,249,22,182,7,23,202,2,39,248,22,168,4,23,200,2,27,27,250,22,
|
||||
137,2,80,158,51,42,248,22,139,14,247,22,180,11,11,28,23,193,2,192,87,
|
||||
94,23,193,1,27,247,22,121,87,94,250,22,135,2,80,158,52,42,248,22,139,
|
||||
14,247,22,180,11,195,192,87,95,28,23,209,1,27,250,22,137,2,23,197,2,
|
||||
197,11,28,23,193,1,12,87,95,27,27,28,248,22,17,80,158,51,45,80,158,
|
||||
50,45,247,22,19,250,22,25,248,22,23,23,197,2,80,158,53,44,23,196,1,
|
||||
27,247,22,174,11,249,22,3,83,158,39,20,97,94,89,162,8,44,36,54,9,
|
||||
27,247,22,180,11,249,22,3,83,158,39,20,97,94,89,162,8,44,36,54,9,
|
||||
226,12,11,2,3,33,46,23,195,1,23,196,1,248,28,248,22,17,80,158,50,
|
||||
45,32,0,89,162,43,36,41,9,222,33,47,80,159,49,57,36,89,162,43,35,
|
||||
50,9,227,14,9,8,4,3,33,48,250,22,131,2,23,197,1,197,10,12,28,
|
||||
28,248,22,171,7,23,202,1,11,27,248,22,149,6,23,208,2,28,192,192,28,
|
||||
248,22,61,23,208,2,249,22,154,8,248,22,64,23,210,2,2,21,11,250,22,
|
||||
131,2,80,158,50,43,28,248,22,149,6,23,210,2,249,22,63,23,211,1,248,
|
||||
50,9,227,14,9,8,4,3,33,48,250,22,135,2,23,197,1,197,10,12,28,
|
||||
28,248,22,177,7,23,202,1,11,27,248,22,155,6,23,208,2,28,192,192,28,
|
||||
248,22,61,23,208,2,249,22,160,8,248,22,64,23,210,2,2,21,11,250,22,
|
||||
135,2,80,158,50,43,28,248,22,155,6,23,210,2,249,22,63,23,211,1,248,
|
||||
80,159,53,55,36,23,213,1,87,94,23,210,1,249,22,63,23,211,1,247,22,
|
||||
168,13,252,22,173,7,23,208,1,23,207,1,23,205,1,23,203,1,201,12,193,
|
||||
174,13,252,22,179,7,23,208,1,23,207,1,23,205,1,23,203,1,201,12,193,
|
||||
91,159,37,10,90,161,36,35,10,11,90,161,36,36,10,83,158,38,20,96,96,
|
||||
2,20,89,162,8,44,36,50,9,224,2,0,33,42,89,162,43,38,48,9,223,
|
||||
1,33,43,89,162,43,39,8,30,9,225,2,3,0,33,49,208,87,95,248,22,
|
||||
142,4,248,80,158,37,49,247,22,174,11,248,22,180,4,80,158,36,36,248,22,
|
||||
165,12,80,159,36,41,36,159,35,20,103,159,35,16,1,65,98,101,103,105,110,
|
||||
148,4,248,80,158,37,49,247,22,180,11,248,22,186,4,80,158,36,36,248,22,
|
||||
171,12,80,159,36,41,36,159,35,20,103,159,35,16,1,65,98,101,103,105,110,
|
||||
16,0,83,158,41,20,100,138,66,35,37,98,111,111,116,2,1,11,11,10,10,
|
||||
36,80,158,35,35,20,103,159,39,16,19,30,2,1,2,2,193,30,2,1,2,
|
||||
3,193,30,2,5,72,112,97,116,104,45,115,116,114,105,110,103,63,10,30,2,
|
||||
|
@ -545,11 +545,11 @@
|
|||
44,9,223,0,33,24,80,159,35,56,36,83,158,35,16,2,89,162,43,36,48,
|
||||
67,103,101,116,45,100,105,114,223,0,33,25,80,159,35,55,36,83,158,35,16,
|
||||
2,89,162,43,37,48,68,119,105,116,104,45,100,105,114,223,0,33,26,80,159,
|
||||
35,54,36,83,158,35,16,2,248,22,168,7,69,115,111,45,115,117,102,102,105,
|
||||
35,54,36,83,158,35,16,2,248,22,174,7,69,115,111,45,115,117,102,102,105,
|
||||
120,80,159,35,35,36,83,158,35,16,2,89,162,43,37,59,2,3,223,0,33,
|
||||
35,80,159,35,36,36,83,158,35,16,2,32,0,89,162,8,44,36,41,2,7,
|
||||
222,192,80,159,35,41,36,83,158,35,16,2,247,22,123,80,159,35,42,36,83,
|
||||
158,35,16,2,247,22,122,80,159,35,43,36,83,158,35,16,2,247,22,59,80,
|
||||
222,192,80,159,35,41,36,83,158,35,16,2,247,22,124,80,159,35,42,36,83,
|
||||
158,35,16,2,247,22,123,80,159,35,43,36,83,158,35,16,2,247,22,59,80,
|
||||
159,35,44,36,83,158,35,16,2,248,22,18,74,109,111,100,117,108,101,45,108,
|
||||
111,97,100,105,110,103,80,159,35,45,36,83,158,35,16,2,11,80,158,35,46,
|
||||
83,158,35,16,2,11,80,158,35,47,83,158,35,16,2,32,0,89,162,43,37,
|
||||
|
|
|
@ -1304,6 +1304,22 @@ long scheme_equal_hash_key2(Scheme_Object *o)
|
|||
return equal_hash_key2(o, &hi);
|
||||
}
|
||||
|
||||
long scheme_eqv_hash_key(Scheme_Object *o)
|
||||
{
|
||||
if (!SCHEME_INTP(o) && SCHEME_NUMBERP(o))
|
||||
return scheme_equal_hash_key(o);
|
||||
else
|
||||
return (PTR_TO_LONG(o) >> 2);
|
||||
}
|
||||
|
||||
long scheme_eqv_hash_key2(Scheme_Object *o)
|
||||
{
|
||||
if (!SCHEME_INTP(o) && SCHEME_NUMBERP(o))
|
||||
return scheme_equal_hash_key2(o);
|
||||
else
|
||||
return (PTR_TO_LONG(o) >> 3);
|
||||
}
|
||||
|
||||
static Scheme_Object *hash2_recur(int argc, Scheme_Object **argv, Scheme_Object *prim)
|
||||
{
|
||||
long v;
|
||||
|
@ -2116,7 +2132,7 @@ static RBNode *rb_remove(RBNode *s, unsigned long code)
|
|||
return remove_aux(s, code, &bh_dec);
|
||||
}
|
||||
|
||||
Scheme_Hash_Tree *scheme_make_hash_tree(int eql)
|
||||
Scheme_Hash_Tree *scheme_make_hash_tree(int kind)
|
||||
{
|
||||
Scheme_Hash_Tree *tree;
|
||||
|
||||
|
@ -2125,8 +2141,7 @@ Scheme_Hash_Tree *scheme_make_hash_tree(int eql)
|
|||
tree->count = 0;
|
||||
|
||||
tree->iso.so.type = scheme_hash_tree_type;
|
||||
if (eql)
|
||||
SCHEME_HASHTR_FLAGS(tree) |= 0x1;
|
||||
SCHEME_HASHTR_FLAGS(tree) |= (kind & 0x3);
|
||||
|
||||
return tree;
|
||||
}
|
||||
|
@ -2138,8 +2153,12 @@ Scheme_Hash_Tree *scheme_hash_tree_set(Scheme_Hash_Tree *tree, Scheme_Object *ke
|
|||
RBNode *root, *added;
|
||||
int delta;
|
||||
|
||||
if (SCHEME_HASHTR_FLAGS(tree) & 0x1) {
|
||||
h = (unsigned long)scheme_equal_hash_key(key);
|
||||
if (SCHEME_HASHTR_FLAGS(tree) & 0x3) {
|
||||
if (SCHEME_HASHTR_FLAGS(tree) & 0x1) {
|
||||
h = (unsigned long)scheme_equal_hash_key(key);
|
||||
} else {
|
||||
h = (unsigned long)scheme_eqv_hash_key(key);
|
||||
}
|
||||
} else {
|
||||
h = (unsigned long)PTR_TO_LONG((Scheme_Object *)key);
|
||||
}
|
||||
|
@ -2150,10 +2169,12 @@ Scheme_Hash_Tree *scheme_hash_tree_set(Scheme_Hash_Tree *tree, Scheme_Object *ke
|
|||
if (!added)
|
||||
return tree; /* nothing to remove */
|
||||
if (added->key) {
|
||||
int eql = (SCHEME_HASHTR_FLAGS(tree) & 0x1);
|
||||
int kind = (SCHEME_HASHTR_FLAGS(tree) & 0x3);
|
||||
|
||||
if ((eql && scheme_equal(added->key, key))
|
||||
|| (!eql && SAME_OBJ(added->key, key))) {
|
||||
if ((kind && ((kind == 1)
|
||||
? scheme_equal(added->key, key)
|
||||
: scheme_eqv(added->key, key)))
|
||||
|| (!kind && SAME_OBJ(added->key, key))) {
|
||||
/* remove single item */
|
||||
root = rb_remove(tree->root, h);
|
||||
|
||||
|
@ -2182,7 +2203,7 @@ Scheme_Hash_Tree *scheme_hash_tree_set(Scheme_Hash_Tree *tree, Scheme_Object *ke
|
|||
delta = 0;
|
||||
|
||||
if (added->val) {
|
||||
int eql = (SCHEME_HASHTR_FLAGS(tree) & 0x1);
|
||||
int kind = (SCHEME_HASHTR_FLAGS(tree) & 0x3);
|
||||
|
||||
if (!added->key) {
|
||||
/* Have a list of keys and vals. In this case, val can be NULL
|
||||
|
@ -2191,9 +2212,14 @@ Scheme_Hash_Tree *scheme_hash_tree_set(Scheme_Hash_Tree *tree, Scheme_Object *ke
|
|||
int cnt = 0;
|
||||
while (prs) {
|
||||
a = SCHEME_CAR(prs);
|
||||
if (eql) {
|
||||
if (scheme_equal(SCHEME_CAR(a), key))
|
||||
break;
|
||||
if (kind) {
|
||||
if (kind == 1) {
|
||||
if (scheme_equal(SCHEME_CAR(a), key))
|
||||
break;
|
||||
} else {
|
||||
if (scheme_eqv(SCHEME_CAR(a), key))
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
if (SAME_OBJ(SCHEME_CAR(a), key))
|
||||
break;
|
||||
|
@ -2231,8 +2257,11 @@ Scheme_Hash_Tree *scheme_hash_tree_set(Scheme_Hash_Tree *tree, Scheme_Object *ke
|
|||
} else {
|
||||
/* Currently have one value for this hash code */
|
||||
int same;
|
||||
if (eql) {
|
||||
same = scheme_equal(key, added->key);
|
||||
if (kind) {
|
||||
if (kind == 1)
|
||||
same = scheme_equal(key, added->key);
|
||||
else
|
||||
same = scheme_eqv(key, added->key);
|
||||
} else {
|
||||
same = SAME_OBJ(key, added->key);
|
||||
}
|
||||
|
@ -2271,25 +2300,32 @@ Scheme_Object *scheme_hash_tree_get(Scheme_Hash_Tree *tree, Scheme_Object *key)
|
|||
{
|
||||
unsigned long h;
|
||||
RBNode *rb;
|
||||
int kind = (SCHEME_HASHTR_FLAGS(tree) & 0x3);
|
||||
|
||||
if (SCHEME_HASHTR_FLAGS(tree) & 0x1) {
|
||||
h = (unsigned long)scheme_equal_hash_key(key);
|
||||
if (kind) {
|
||||
if (kind == 1)
|
||||
h = (unsigned long)scheme_equal_hash_key(key);
|
||||
else
|
||||
h = (unsigned long)scheme_eqv_hash_key(key);
|
||||
} else {
|
||||
h = (unsigned long)PTR_TO_LONG((Scheme_Object *)key);
|
||||
}
|
||||
|
||||
rb = rb_find(h, tree->root);
|
||||
if (rb) {
|
||||
int eql = (SCHEME_HASHTR_FLAGS(tree) & 0x1);
|
||||
|
||||
if (!rb->key) {
|
||||
/* Have list of keys & vals: */
|
||||
Scheme_Object *prs = rb->val, *a;
|
||||
while (prs) {
|
||||
a = SCHEME_CAR(prs);
|
||||
if (eql) {
|
||||
if (scheme_equal(SCHEME_CAR(a), key))
|
||||
return SCHEME_CDR(a);
|
||||
if (kind) {
|
||||
if (kind == 1) {
|
||||
if (scheme_equal(SCHEME_CAR(a), key))
|
||||
return SCHEME_CDR(a);
|
||||
} else {
|
||||
if (scheme_eqv(SCHEME_CAR(a), key))
|
||||
return SCHEME_CDR(a);
|
||||
}
|
||||
} else {
|
||||
if (SAME_OBJ(SCHEME_CAR(a), key))
|
||||
return SCHEME_CDR(a);
|
||||
|
@ -2297,9 +2333,14 @@ Scheme_Object *scheme_hash_tree_get(Scheme_Hash_Tree *tree, Scheme_Object *key)
|
|||
prs = SCHEME_CDR(prs);
|
||||
}
|
||||
} else {
|
||||
if (eql) {
|
||||
if (scheme_equal(key, rb->key))
|
||||
return rb->val;
|
||||
if (kind) {
|
||||
if (kind == 1) {
|
||||
if (scheme_equal(key, rb->key))
|
||||
return rb->val;
|
||||
} else {
|
||||
if (scheme_eqv(key, rb->key))
|
||||
return rb->val;
|
||||
}
|
||||
} else if (SAME_OBJ(key, rb->key))
|
||||
return rb->val;
|
||||
}
|
||||
|
@ -2381,7 +2422,7 @@ int scheme_hash_tree_equal_rec(Scheme_Hash_Tree *t1, Scheme_Hash_Tree *t2, void
|
|||
int i;
|
||||
|
||||
if ((t1->count != t2->count)
|
||||
|| ((SCHEME_HASHTR_FLAGS(t1) & 0x1) != (SCHEME_HASHTR_FLAGS(t2) & 0x1)))
|
||||
|| ((SCHEME_HASHTR_FLAGS(t1) & 0x3) != (SCHEME_HASHTR_FLAGS(t2) & 0x3)))
|
||||
return 0;
|
||||
|
||||
for (i = t1->count; i--; ) {
|
||||
|
|
|
@ -83,14 +83,18 @@ static Scheme_Object *set_box (int argc, Scheme_Object *argv[]);
|
|||
|
||||
static Scheme_Object *make_hash(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *make_hasheq(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *make_hasheqv(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *make_weak_hash(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *make_weak_hasheq(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *make_weak_hasheqv(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *make_immutable_hash(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *make_immutable_hasheq(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *make_immutable_hasheqv(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *hash_table_count(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *hash_table_copy(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *hash_p(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *hash_eq_p(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *hash_eqv_p(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *hash_weak_p(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *hash_table_put_bang(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *hash_table_put(int argc, Scheme_Object *argv[]);
|
||||
|
@ -106,6 +110,7 @@ static Scheme_Object *hash_table_iterate_key(int argc, Scheme_Object *argv[]);
|
|||
static Scheme_Object *eq_hash_code(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *equal_hash_code(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *equal_hash2_code(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *eqv_hash_code(int argc, Scheme_Object *argv[]);
|
||||
|
||||
static Scheme_Object *make_weak_box(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *weak_box_value(int argc, Scheme_Object *argv[]);
|
||||
|
@ -122,6 +127,7 @@ static Scheme_Object *placeholder_get(int argc, Scheme_Object *argv[]);
|
|||
static Scheme_Object *placeholder_p(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *make_hash_placeholder(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *make_hasheq_placeholder(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *make_hasheqv_placeholder(int argc, Scheme_Object *argv[]);
|
||||
static Scheme_Object *table_placeholder_p(int argc, Scheme_Object *argv[]);
|
||||
|
||||
#define BOX "box"
|
||||
|
@ -433,6 +439,11 @@ scheme_init_list (Scheme_Env *env)
|
|||
"make-hasheq",
|
||||
0, 0),
|
||||
env);
|
||||
scheme_add_global_constant("make-hasheqv",
|
||||
scheme_make_immed_prim(make_hasheqv,
|
||||
"make-hasheqv",
|
||||
0, 0),
|
||||
env);
|
||||
scheme_add_global_constant("make-weak-hash",
|
||||
scheme_make_immed_prim(make_weak_hash,
|
||||
"make-weak-hash",
|
||||
|
@ -443,6 +454,11 @@ scheme_init_list (Scheme_Env *env)
|
|||
"make-weak-hasheq",
|
||||
0, 0),
|
||||
env);
|
||||
scheme_add_global_constant("make-weak-hasheqv",
|
||||
scheme_make_immed_prim(make_weak_hasheqv,
|
||||
"make-weak-hasheqv",
|
||||
0, 0),
|
||||
env);
|
||||
scheme_add_global_constant("make-immutable-hash",
|
||||
scheme_make_immed_prim(make_immutable_hash,
|
||||
"make-immutable-hash",
|
||||
|
@ -453,6 +469,11 @@ scheme_init_list (Scheme_Env *env)
|
|||
"make-immutable-hasheq",
|
||||
1, 1),
|
||||
env);
|
||||
scheme_add_global_constant("make-immutable-hasheqv",
|
||||
scheme_make_immed_prim(make_immutable_hasheqv,
|
||||
"make-immutable-hasheqv",
|
||||
1, 1),
|
||||
env);
|
||||
scheme_add_global_constant("hash?",
|
||||
scheme_make_folding_prim(hash_p,
|
||||
"hash?",
|
||||
|
@ -463,6 +484,11 @@ scheme_init_list (Scheme_Env *env)
|
|||
"hash-eq?",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant("hash-eqv?",
|
||||
scheme_make_folding_prim(hash_eqv_p,
|
||||
"hash-eqv?",
|
||||
1, 1, 1),
|
||||
env);
|
||||
scheme_add_global_constant("hash-weak?",
|
||||
scheme_make_folding_prim(hash_weak_p,
|
||||
"hash-weak?",
|
||||
|
@ -540,6 +566,11 @@ scheme_init_list (Scheme_Env *env)
|
|||
"eq-hash-code",
|
||||
1, 1),
|
||||
env);
|
||||
scheme_add_global_constant("eqv-hash-code",
|
||||
scheme_make_immed_prim(eqv_hash_code,
|
||||
"eqv-hash-code",
|
||||
1, 1),
|
||||
env);
|
||||
scheme_add_global_constant("equal-hash-code",
|
||||
scheme_make_noncm_prim(equal_hash_code,
|
||||
"equal-hash-code",
|
||||
|
@ -618,6 +649,11 @@ scheme_init_list (Scheme_Env *env)
|
|||
"make-hasheq-placeholder",
|
||||
1, 1),
|
||||
env);
|
||||
scheme_add_global_constant("make-hasheqv-placeholder",
|
||||
scheme_make_prim_w_arity(make_hasheqv_placeholder,
|
||||
"make-hasheqv-placeholder",
|
||||
1, 1),
|
||||
env);
|
||||
scheme_add_global_constant("hash-placeholder?",
|
||||
scheme_make_folding_prim(table_placeholder_p,
|
||||
"hash-placeholder?",
|
||||
|
@ -1417,6 +1453,19 @@ static void make_hash_indices_for_equal(void *v, long *_stk_h1, long *_stk_h2)
|
|||
*_stk_h2 = scheme_equal_hash_key2((Scheme_Object *)v);
|
||||
}
|
||||
|
||||
static int compare_eqv(void *v1, void *v2)
|
||||
{
|
||||
return !scheme_eqv((Scheme_Object *)v1, (Scheme_Object *)v2);
|
||||
}
|
||||
|
||||
static void make_hash_indices_for_eqv(void *v, long *_stk_h1, long *_stk_h2)
|
||||
{
|
||||
if (_stk_h1)
|
||||
*_stk_h1 = scheme_eqv_hash_key((Scheme_Object *)v);
|
||||
if (_stk_h2)
|
||||
*_stk_h2 = scheme_eqv_hash_key2((Scheme_Object *)v);
|
||||
}
|
||||
|
||||
Scheme_Bucket_Table *scheme_make_weak_equal_table(void)
|
||||
{
|
||||
Scheme_Object *sema;
|
||||
|
@ -1432,6 +1481,21 @@ Scheme_Bucket_Table *scheme_make_weak_equal_table(void)
|
|||
return t;
|
||||
}
|
||||
|
||||
Scheme_Bucket_Table *scheme_make_weak_eqv_table(void)
|
||||
{
|
||||
Scheme_Object *sema;
|
||||
Scheme_Bucket_Table *t;
|
||||
|
||||
t = scheme_make_bucket_table(20, SCHEME_hash_weak_ptr);
|
||||
|
||||
sema = scheme_make_sema(1);
|
||||
t->mutex = sema;
|
||||
t->compare = compare_eqv;
|
||||
t->make_hash_indices = make_hash_indices_for_eqv;
|
||||
|
||||
return t;
|
||||
}
|
||||
|
||||
static Scheme_Object *make_hash(int argc, Scheme_Object *argv[])
|
||||
{
|
||||
return (Scheme_Object *)scheme_make_hash_table_equal();
|
||||
|
@ -1442,6 +1506,11 @@ static Scheme_Object *make_hasheq(int argc, Scheme_Object *argv[])
|
|||
return (Scheme_Object *)scheme_make_hash_table(SCHEME_hash_ptr);
|
||||
}
|
||||
|
||||
static Scheme_Object *make_hasheqv(int argc, Scheme_Object *argv[])
|
||||
{
|
||||
return (Scheme_Object *)scheme_make_hash_table_eqv();
|
||||
}
|
||||
|
||||
static Scheme_Object *make_weak_hash(int argc, Scheme_Object *argv[])
|
||||
{
|
||||
return (Scheme_Object *)scheme_make_weak_equal_table();
|
||||
|
@ -1452,7 +1521,12 @@ static Scheme_Object *make_weak_hasheq(int argc, Scheme_Object *argv[])
|
|||
return (Scheme_Object *)scheme_make_bucket_table(20, SCHEME_hash_weak_ptr);
|
||||
}
|
||||
|
||||
static Scheme_Object *make_immutable_table(const char *who, int eql, int argc, Scheme_Object *argv[])
|
||||
static Scheme_Object *make_weak_hasheqv(int argc, Scheme_Object *argv[])
|
||||
{
|
||||
return (Scheme_Object *)scheme_make_weak_eqv_table();
|
||||
}
|
||||
|
||||
static Scheme_Object *make_immutable_table(const char *who, int kind, int argc, Scheme_Object *argv[])
|
||||
{
|
||||
Scheme_Object *l = argv[0], *a;
|
||||
Scheme_Hash_Tree *ht;
|
||||
|
@ -1468,7 +1542,7 @@ static Scheme_Object *make_immutable_table(const char *who, int eql, int argc, S
|
|||
if (!SCHEME_NULLP(l))
|
||||
scheme_wrong_type("make-immutable-hash", "list of pairs", 0, argc, argv);
|
||||
|
||||
ht = scheme_make_hash_tree(eql);
|
||||
ht = scheme_make_hash_tree(kind);
|
||||
|
||||
for (l = argv[0]; SCHEME_PAIRP(l); l = SCHEME_CDR(l)) {
|
||||
a = SCHEME_CAR(l);
|
||||
|
@ -1488,6 +1562,11 @@ static Scheme_Object *make_immutable_hasheq(int argc, Scheme_Object *argv[])
|
|||
return make_immutable_table("make-immutable-hasheq", 0, argc, argv);
|
||||
}
|
||||
|
||||
static Scheme_Object *make_immutable_hasheqv(int argc, Scheme_Object *argv[])
|
||||
{
|
||||
return make_immutable_table("make-immutable-hasheqv", 2, argc, argv);
|
||||
}
|
||||
|
||||
Scheme_Hash_Table *scheme_make_hash_table_equal()
|
||||
{
|
||||
Scheme_Hash_Table *t;
|
||||
|
@ -1503,6 +1582,21 @@ Scheme_Hash_Table *scheme_make_hash_table_equal()
|
|||
return t;
|
||||
}
|
||||
|
||||
Scheme_Hash_Table *scheme_make_hash_table_eqv()
|
||||
{
|
||||
Scheme_Hash_Table *t;
|
||||
Scheme_Object *sema;
|
||||
|
||||
t = scheme_make_hash_table(SCHEME_hash_ptr);
|
||||
|
||||
sema = scheme_make_sema(1);
|
||||
t->mutex = sema;
|
||||
t->compare = compare_eqv;
|
||||
t->make_hash_indices = make_hash_indices_for_eqv;
|
||||
|
||||
return t;
|
||||
}
|
||||
|
||||
static Scheme_Object *hash_table_count(int argc, Scheme_Object *argv[])
|
||||
{
|
||||
if (SCHEME_HASHTP(argv[0])) {
|
||||
|
@ -1595,13 +1689,15 @@ static Scheme_Object *hash_eq_p(int argc, Scheme_Object *argv[])
|
|||
Scheme_Object *o = argv[0];
|
||||
|
||||
if (SCHEME_HASHTP(o)) {
|
||||
if (((Scheme_Hash_Table *)o)->compare != compare_equal)
|
||||
if ((((Scheme_Hash_Table *)o)->compare != compare_equal)
|
||||
&& (((Scheme_Hash_Table *)o)->compare != compare_eqv))
|
||||
return scheme_true;
|
||||
} else if (SCHEME_HASHTRP(o)) {
|
||||
if (!(SCHEME_HASHTR_FLAGS((Scheme_Hash_Tree *)o) & 0x1))
|
||||
if (!(SCHEME_HASHTR_FLAGS((Scheme_Hash_Tree *)o) & 0x3))
|
||||
return scheme_true;
|
||||
} else if (SCHEME_BUCKTP(o)) {
|
||||
if (((Scheme_Bucket_Table *)o)->compare != compare_equal)
|
||||
if ((((Scheme_Bucket_Table *)o)->compare != compare_equal)
|
||||
&& (((Scheme_Bucket_Table *)o)->compare != compare_eqv))
|
||||
return scheme_true;
|
||||
} else {
|
||||
scheme_wrong_type("hash-eq?", "hash", 0, argc, argv);
|
||||
|
@ -1610,6 +1706,26 @@ static Scheme_Object *hash_eq_p(int argc, Scheme_Object *argv[])
|
|||
return scheme_false;
|
||||
}
|
||||
|
||||
static Scheme_Object *hash_eqv_p(int argc, Scheme_Object *argv[])
|
||||
{
|
||||
Scheme_Object *o = argv[0];
|
||||
|
||||
if (SCHEME_HASHTP(o)) {
|
||||
if (((Scheme_Hash_Table *)o)->compare == compare_eqv)
|
||||
return scheme_true;
|
||||
} else if (SCHEME_HASHTRP(o)) {
|
||||
if (SCHEME_HASHTR_FLAGS((Scheme_Hash_Tree *)o) & 0x2)
|
||||
return scheme_true;
|
||||
} else if (SCHEME_BUCKTP(o)) {
|
||||
if (((Scheme_Bucket_Table *)o)->compare == compare_eqv)
|
||||
return scheme_true;
|
||||
} else {
|
||||
scheme_wrong_type("hash-eqv?", "hash", 0, argc, argv);
|
||||
}
|
||||
|
||||
return scheme_false;
|
||||
}
|
||||
|
||||
static Scheme_Object *hash_weak_p(int argc, Scheme_Object *argv[])
|
||||
{
|
||||
Scheme_Object *o = argv[0];
|
||||
|
@ -1629,11 +1745,21 @@ int scheme_is_hash_table_equal(Scheme_Object *o)
|
|||
return (((Scheme_Hash_Table *)o)->compare == compare_equal);
|
||||
}
|
||||
|
||||
int scheme_is_hash_table_eqv(Scheme_Object *o)
|
||||
{
|
||||
return (((Scheme_Hash_Table *)o)->compare == compare_eqv);
|
||||
}
|
||||
|
||||
int scheme_is_hash_tree_equal(Scheme_Object *o)
|
||||
{
|
||||
return SCHEME_HASHTR_FLAGS((Scheme_Hash_Tree *)o) & 0x1;
|
||||
}
|
||||
|
||||
int scheme_is_hash_tree_eqv(Scheme_Object *o)
|
||||
{
|
||||
return SCHEME_HASHTR_FLAGS((Scheme_Hash_Tree *)o) & 0x2;
|
||||
}
|
||||
|
||||
static Scheme_Object *hash_table_put_bang(int argc, Scheme_Object *argv[])
|
||||
{
|
||||
Scheme_Object *v = argv[0];
|
||||
|
@ -2060,6 +2186,18 @@ static Scheme_Object *equal_hash2_code(int argc, Scheme_Object *argv[])
|
|||
return scheme_make_integer(v);
|
||||
}
|
||||
|
||||
static Scheme_Object *eqv_hash_code(int argc, Scheme_Object *argv[])
|
||||
{
|
||||
long v;
|
||||
|
||||
if (SCHEME_INTP(argv[0]))
|
||||
return argv[0];
|
||||
|
||||
v = scheme_eqv_hash_key(argv[0]);
|
||||
|
||||
return scheme_make_integer(v);
|
||||
}
|
||||
|
||||
Scheme_Object *scheme_make_weak_box(Scheme_Object *v)
|
||||
{
|
||||
#ifdef MZ_PRECISE_GC
|
||||
|
@ -2145,7 +2283,7 @@ static Scheme_Object *placeholder_p(int c, Scheme_Object *p[])
|
|||
: scheme_false);
|
||||
}
|
||||
|
||||
static Scheme_Object *do_make_hash_placeholder(const char *who, int eq, int argc, Scheme_Object *argv[])
|
||||
static Scheme_Object *do_make_hash_placeholder(const char *who, int kind, int argc, Scheme_Object *argv[])
|
||||
{
|
||||
Scheme_Object *l, *a, *ph;
|
||||
|
||||
|
@ -2162,14 +2300,14 @@ static Scheme_Object *do_make_hash_placeholder(const char *who, int eq, int argc
|
|||
ph = scheme_alloc_object();
|
||||
ph->type = scheme_table_placeholder_type;
|
||||
SCHEME_IPTR_VAL(ph) = argv[0];
|
||||
SCHEME_PINT_VAL(ph) = eq;
|
||||
SCHEME_PINT_VAL(ph) = kind;
|
||||
|
||||
return ph;
|
||||
}
|
||||
|
||||
static Scheme_Object *make_hash_placeholder(int argc, Scheme_Object *argv[])
|
||||
{
|
||||
return do_make_hash_placeholder("make-hash-placeholder", 0, argc, argv);
|
||||
return do_make_hash_placeholder("make-hash-placeholder", 1, argc, argv);
|
||||
}
|
||||
|
||||
static Scheme_Object *make_hasheq_placeholder(int argc, Scheme_Object *argv[])
|
||||
|
@ -2177,6 +2315,11 @@ static Scheme_Object *make_hasheq_placeholder(int argc, Scheme_Object *argv[])
|
|||
return do_make_hash_placeholder("make-hash-placeholder", 0, argc, argv);
|
||||
}
|
||||
|
||||
static Scheme_Object *make_hasheqv_placeholder(int argc, Scheme_Object *argv[])
|
||||
{
|
||||
return do_make_hash_placeholder("make-hasheqv-placeholder", 2, argc, argv);
|
||||
}
|
||||
|
||||
static Scheme_Object *table_placeholder_p(int c, Scheme_Object *p[])
|
||||
{
|
||||
return (SAME_TYPE(SCHEME_TYPE(p[0]), scheme_table_placeholder_type)
|
||||
|
|
|
@ -1842,18 +1842,29 @@ print(Scheme_Object *obj, int notdisplay, int compact, Scheme_Hash_Table *ht,
|
|||
print_compact(pp, CPT_HASH_TABLE);
|
||||
if ((SCHEME_HASHTP(obj) && scheme_is_hash_table_equal(obj))
|
||||
|| (SCHEME_HASHTRP(obj) && scheme_is_hash_tree_equal(obj)))
|
||||
print_compact_number(pp, 0);
|
||||
else
|
||||
print_compact_number(pp, 1);
|
||||
else if ((SCHEME_HASHTP(obj) && scheme_is_hash_table_eqv(obj))
|
||||
|| (SCHEME_HASHTRP(obj) && scheme_is_hash_tree_eqv(obj)))
|
||||
print_compact_number(pp, 2);
|
||||
else
|
||||
print_compact_number(pp, 0);
|
||||
} else {
|
||||
always_scheme(pp, 1);
|
||||
print_utf8_string(pp, "#hash", 0, 5);
|
||||
if (SCHEME_HASHTP(obj)) {
|
||||
if (!scheme_is_hash_table_equal(obj))
|
||||
print_utf8_string(pp, "eq", 0, 2);
|
||||
if (!scheme_is_hash_table_equal(obj)) {
|
||||
if (scheme_is_hash_table_eqv(obj))
|
||||
print_utf8_string(pp, "eqv", 0, 3);
|
||||
else
|
||||
print_utf8_string(pp, "eq", 0, 2);
|
||||
}
|
||||
} else {
|
||||
if (!scheme_is_hash_tree_equal(obj))
|
||||
print_utf8_string(pp, "eq", 0, 2);
|
||||
if (!scheme_is_hash_tree_equal(obj)) {
|
||||
if (scheme_is_hash_tree_eqv(obj))
|
||||
print_utf8_string(pp, "eqv", 0, 3);
|
||||
else
|
||||
print_utf8_string(pp, "eq", 0, 2);
|
||||
}
|
||||
}
|
||||
print_utf8_string(pp, "(", 0, 1);
|
||||
}
|
||||
|
|
|
@ -243,7 +243,7 @@ static Scheme_Object *read_box(Scheme_Object *port, Scheme_Object *stxsrc,
|
|||
ReadParams *params);
|
||||
static Scheme_Object *read_hash(Scheme_Object *port, Scheme_Object *stxsrc,
|
||||
long line, long col, long pos,
|
||||
int opener, char closer, int eq,
|
||||
int opener, char closer, int kind,
|
||||
Scheme_Hash_Table **ht,
|
||||
Scheme_Object *indentation,
|
||||
ReadParams *params);
|
||||
|
@ -1507,7 +1507,7 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table *
|
|||
|
||||
return v;
|
||||
} else {
|
||||
GC_CAN_IGNORE const mzchar str[] = { 's', 'h', 'e', 'q', 0 };
|
||||
GC_CAN_IGNORE const mzchar str[] = { 's', 'h', 'e', 'q', 'v', 0 };
|
||||
int scanpos = 0, failed = 0;
|
||||
|
||||
do {
|
||||
|
@ -1515,7 +1515,7 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table *
|
|||
if ((mzchar)ch == str[scanpos]) {
|
||||
scanpos++;
|
||||
} else {
|
||||
if (scanpos == 2) {
|
||||
if ((scanpos == 2) || (scanpos == 4)) {
|
||||
int effective_ch;
|
||||
effective_ch = readtable_effective_char(table, ch);
|
||||
if (!(effective_ch == '(')
|
||||
|
@ -1530,19 +1530,26 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table *
|
|||
|
||||
if (!failed) {
|
||||
/* Found recognized tag. Look for open paren... */
|
||||
int effective_ch;
|
||||
int effective_ch, kind;
|
||||
|
||||
if (scanpos > 2)
|
||||
if (scanpos > 4)
|
||||
ch = scheme_getc_special_ok(port);
|
||||
|
||||
effective_ch = readtable_effective_char(table, ch);
|
||||
|
||||
if (scanpos == 4)
|
||||
kind = 0;
|
||||
else if (scanpos == 2)
|
||||
kind = 1;
|
||||
else
|
||||
kind = 2;
|
||||
|
||||
if (effective_ch == '(')
|
||||
return read_hash(port, stxsrc, line, col, pos, ch, ')', (scanpos == 4), ht, indentation, params);
|
||||
return read_hash(port, stxsrc, line, col, pos, ch, ')', kind, ht, indentation, params);
|
||||
if (effective_ch == '[' && params->square_brackets_are_parens)
|
||||
return read_hash(port, stxsrc, line, col, pos, ch, ']', (scanpos == 4), ht, indentation, params);
|
||||
return read_hash(port, stxsrc, line, col, pos, ch, ']', kind, ht, indentation, params);
|
||||
if (effective_ch == '{' && params->curly_braces_are_parens)
|
||||
return read_hash(port, stxsrc, line, col, pos, ch, '}', (scanpos == 4), ht, indentation, params);
|
||||
return read_hash(port, stxsrc, line, col, pos, ch, '}', kind, ht, indentation, params);
|
||||
}
|
||||
|
||||
/* Report an error. So far, we read 'ha', then scanpos chars of str, then ch. */
|
||||
|
@ -2048,11 +2055,16 @@ static Scheme_Object *resolve_references(Scheme_Object *obj,
|
|||
|| SCHEME_HASHTRP(obj)) {
|
||||
Scheme_Hash_Tree *t, *base;
|
||||
Scheme_Object *a, *key, *val, *lst;
|
||||
int eq;
|
||||
int kind;
|
||||
|
||||
if (SCHEME_HASHTRP(obj)) {
|
||||
int i;
|
||||
eq = !scheme_is_hash_tree_equal(obj);
|
||||
if (scheme_is_hash_tree_equal(obj))
|
||||
kind = 1;
|
||||
else if (scheme_is_hash_tree_equal(obj))
|
||||
kind = 2;
|
||||
else
|
||||
kind = 0;
|
||||
t = (Scheme_Hash_Tree *)obj;
|
||||
lst = scheme_null;
|
||||
for (i = t->count; i--; ) {
|
||||
|
@ -2060,13 +2072,13 @@ static Scheme_Object *resolve_references(Scheme_Object *obj,
|
|||
lst = scheme_make_pair(scheme_make_pair(key, val), lst);
|
||||
}
|
||||
} else {
|
||||
eq = SCHEME_PINT_VAL(obj);
|
||||
kind = SCHEME_PINT_VAL(obj);
|
||||
lst = SCHEME_IPTR_VAL(obj);
|
||||
}
|
||||
|
||||
/* Create `t' to be overwritten, and create `base' to extend. */
|
||||
t = scheme_make_hash_tree(!eq);
|
||||
base = scheme_make_hash_tree(!eq);
|
||||
t = scheme_make_hash_tree(kind);
|
||||
base = scheme_make_hash_tree(kind);
|
||||
|
||||
result = (Scheme_Object *)t;
|
||||
scheme_hash_set(dht, obj, result);
|
||||
|
@ -3947,7 +3959,7 @@ static Scheme_Object *read_box(Scheme_Object *port,
|
|||
/* "(" has been read */
|
||||
static Scheme_Object *read_hash(Scheme_Object *port, Scheme_Object *stxsrc,
|
||||
long line, long col, long pos,
|
||||
int opener, char closer, int eq,
|
||||
int opener, char closer, int kind,
|
||||
Scheme_Hash_Table **ht,
|
||||
Scheme_Object *indentation, ReadParams *params)
|
||||
{
|
||||
|
@ -3960,7 +3972,7 @@ static Scheme_Object *read_hash(Scheme_Object *port, Scheme_Object *stxsrc,
|
|||
Scheme_Object *key, *val;
|
||||
Scheme_Hash_Tree *t;
|
||||
|
||||
t = scheme_make_hash_tree(!eq);
|
||||
t = scheme_make_hash_tree(kind);
|
||||
|
||||
l = scheme_syntax_to_datum(l, 0, NULL);
|
||||
|
||||
|
@ -3981,7 +3993,7 @@ static Scheme_Object *read_hash(Scheme_Object *port, Scheme_Object *stxsrc,
|
|||
ph = scheme_alloc_object();
|
||||
ph->type = scheme_table_placeholder_type;
|
||||
SCHEME_IPTR_VAL(ph) = l;
|
||||
SCHEME_PINT_VAL(ph) = eq;
|
||||
SCHEME_PINT_VAL(ph) = kind;
|
||||
|
||||
if (!*ht) {
|
||||
/* So that resolve_references is called to build the table: */
|
||||
|
@ -4565,9 +4577,9 @@ static Scheme_Object *read_compact(CPort *port, int use_stack)
|
|||
case CPT_HASH_TABLE:
|
||||
{
|
||||
Scheme_Object *l;
|
||||
int eq, len;
|
||||
int kind, len;
|
||||
|
||||
eq = read_compact_number(port);
|
||||
kind = read_compact_number(port);
|
||||
len = read_compact_number(port);
|
||||
|
||||
l = scheme_null;
|
||||
|
@ -4590,7 +4602,7 @@ static Scheme_Object *read_compact(CPort *port, int use_stack)
|
|||
/* Let resolve_references complete the table construction: */
|
||||
v = scheme_alloc_object();
|
||||
v->type = scheme_table_placeholder_type;
|
||||
SCHEME_PINT_VAL(v) = eq;
|
||||
SCHEME_PINT_VAL(v) = kind;
|
||||
SCHEME_IPTR_VAL(v) = l;
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -423,6 +423,7 @@ MZ_EXTERN Scheme_Bucket_Table *scheme_clone_bucket_table(Scheme_Bucket_Table *bt
|
|||
|
||||
MZ_EXTERN Scheme_Hash_Table *scheme_make_hash_table(int type);
|
||||
MZ_EXTERN Scheme_Hash_Table *scheme_make_hash_table_equal();
|
||||
MZ_EXTERN Scheme_Hash_Table *scheme_make_hash_table_eqv();
|
||||
MZ_EXTERN void scheme_hash_set(Scheme_Hash_Table *table, Scheme_Object *key, Scheme_Object *val);
|
||||
MZ_EXTERN Scheme_Object *scheme_hash_get(Scheme_Hash_Table *table, Scheme_Object *key);
|
||||
XFORM_NONGCING MZ_EXTERN Scheme_Object *scheme_eq_hash_get(Scheme_Hash_Table *table, Scheme_Object *key);
|
||||
|
@ -430,15 +431,17 @@ MZ_EXTERN void scheme_hash_set_atomic(Scheme_Hash_Table *table, Scheme_Object *k
|
|||
MZ_EXTERN Scheme_Object *scheme_hash_get_atomic(Scheme_Hash_Table *table, Scheme_Object *key);
|
||||
MZ_EXTERN int scheme_hash_table_equal(Scheme_Hash_Table *t1, Scheme_Hash_Table *t2);
|
||||
MZ_EXTERN int scheme_is_hash_table_equal(Scheme_Object *o);
|
||||
MZ_EXTERN int scheme_is_hash_table_eqv(Scheme_Object *o);
|
||||
MZ_EXTERN Scheme_Hash_Table *scheme_clone_hash_table(Scheme_Hash_Table *bt);
|
||||
|
||||
MZ_EXTERN Scheme_Hash_Tree *scheme_make_hash_tree(int eql);
|
||||
MZ_EXTERN Scheme_Hash_Tree *scheme_make_hash_tree(int kind);
|
||||
MZ_EXTERN Scheme_Hash_Tree *scheme_hash_tree_set(Scheme_Hash_Tree *tree, Scheme_Object *key, Scheme_Object *val);
|
||||
MZ_EXTERN Scheme_Object *scheme_hash_tree_get(Scheme_Hash_Tree *tree, Scheme_Object *key);
|
||||
MZ_EXTERN long scheme_hash_tree_next(Scheme_Hash_Tree *tree, long pos);
|
||||
MZ_EXTERN int scheme_hash_tree_index(Scheme_Hash_Tree *tree, long pos, Scheme_Object **_key, Scheme_Object **_val);
|
||||
MZ_EXTERN int scheme_hash_tree_equal(Scheme_Hash_Tree *t1, Scheme_Hash_Tree *t2);
|
||||
MZ_EXTERN int scheme_is_hash_tree_equal(Scheme_Object *o);
|
||||
MZ_EXTERN int scheme_is_hash_tree_eqv(Scheme_Object *o);
|
||||
|
||||
/*========================================================================*/
|
||||
/* basic Scheme value constructors */
|
||||
|
@ -1011,6 +1014,8 @@ MZ_EXTERN long scheme_equal_hash_key(Scheme_Object *o);
|
|||
MZ_EXTERN long scheme_equal_hash_key2(Scheme_Object *o);
|
||||
MZ_EXTERN long scheme_recur_equal_hash_key(Scheme_Object *o, void *cycle_data);
|
||||
MZ_EXTERN long scheme_recur_equal_hash_key2(Scheme_Object *o, void *cycle_data);
|
||||
MZ_EXTERN long scheme_eqv_hash_key(Scheme_Object *o);
|
||||
MZ_EXTERN long scheme_eqv_hash_key2(Scheme_Object *o);
|
||||
|
||||
MZ_EXTERN void scheme_set_type_equality(Scheme_Type type,
|
||||
Scheme_Equal_Proc f,
|
||||
|
|
|
@ -343,6 +343,7 @@ int (*scheme_bucket_table_equal)(Scheme_Bucket_Table *t1, Scheme_Bucket_Table *t
|
|||
Scheme_Bucket_Table *(*scheme_clone_bucket_table)(Scheme_Bucket_Table *bt);
|
||||
Scheme_Hash_Table *(*scheme_make_hash_table)(int type);
|
||||
Scheme_Hash_Table *(*scheme_make_hash_table_equal)();
|
||||
Scheme_Hash_Table *(*scheme_make_hash_table_eqv)();
|
||||
void (*scheme_hash_set)(Scheme_Hash_Table *table, Scheme_Object *key, Scheme_Object *val);
|
||||
Scheme_Object *(*scheme_hash_get)(Scheme_Hash_Table *table, Scheme_Object *key);
|
||||
Scheme_Object *(*scheme_eq_hash_get)(Scheme_Hash_Table *table, Scheme_Object *key);
|
||||
|
@ -350,14 +351,16 @@ void (*scheme_hash_set_atomic)(Scheme_Hash_Table *table, Scheme_Object *key, Sch
|
|||
Scheme_Object *(*scheme_hash_get_atomic)(Scheme_Hash_Table *table, Scheme_Object *key);
|
||||
int (*scheme_hash_table_equal)(Scheme_Hash_Table *t1, Scheme_Hash_Table *t2);
|
||||
int (*scheme_is_hash_table_equal)(Scheme_Object *o);
|
||||
int (*scheme_is_hash_table_eqv)(Scheme_Object *o);
|
||||
Scheme_Hash_Table *(*scheme_clone_hash_table)(Scheme_Hash_Table *bt);
|
||||
Scheme_Hash_Tree *(*scheme_make_hash_tree)(int eql);
|
||||
Scheme_Hash_Tree *(*scheme_make_hash_tree)(int kind);
|
||||
Scheme_Hash_Tree *(*scheme_hash_tree_set)(Scheme_Hash_Tree *tree, Scheme_Object *key, Scheme_Object *val);
|
||||
Scheme_Object *(*scheme_hash_tree_get)(Scheme_Hash_Tree *tree, Scheme_Object *key);
|
||||
long (*scheme_hash_tree_next)(Scheme_Hash_Tree *tree, long pos);
|
||||
int (*scheme_hash_tree_index)(Scheme_Hash_Tree *tree, long pos, Scheme_Object **_key, Scheme_Object **_val);
|
||||
int (*scheme_hash_tree_equal)(Scheme_Hash_Tree *t1, Scheme_Hash_Tree *t2);
|
||||
int (*scheme_is_hash_tree_equal)(Scheme_Object *o);
|
||||
int (*scheme_is_hash_tree_eqv)(Scheme_Object *o);
|
||||
/*========================================================================*/
|
||||
/* basic Scheme value constructors */
|
||||
/*========================================================================*/
|
||||
|
@ -839,6 +842,8 @@ long (*scheme_equal_hash_key)(Scheme_Object *o);
|
|||
long (*scheme_equal_hash_key2)(Scheme_Object *o);
|
||||
long (*scheme_recur_equal_hash_key)(Scheme_Object *o, void *cycle_data);
|
||||
long (*scheme_recur_equal_hash_key2)(Scheme_Object *o, void *cycle_data);
|
||||
long (*scheme_eqv_hash_key)(Scheme_Object *o);
|
||||
long (*scheme_eqv_hash_key2)(Scheme_Object *o);
|
||||
void (*scheme_set_type_equality)(Scheme_Type type,
|
||||
Scheme_Equal_Proc f,
|
||||
Scheme_Primary_Hash_Proc hash1,
|
||||
|
|
|
@ -239,6 +239,7 @@
|
|||
scheme_extension_table->scheme_clone_bucket_table = scheme_clone_bucket_table;
|
||||
scheme_extension_table->scheme_make_hash_table = scheme_make_hash_table;
|
||||
scheme_extension_table->scheme_make_hash_table_equal = scheme_make_hash_table_equal;
|
||||
scheme_extension_table->scheme_make_hash_table_eqv = scheme_make_hash_table_eqv;
|
||||
scheme_extension_table->scheme_hash_set = scheme_hash_set;
|
||||
scheme_extension_table->scheme_hash_get = scheme_hash_get;
|
||||
scheme_extension_table->scheme_eq_hash_get = scheme_eq_hash_get;
|
||||
|
@ -246,6 +247,7 @@
|
|||
scheme_extension_table->scheme_hash_get_atomic = scheme_hash_get_atomic;
|
||||
scheme_extension_table->scheme_hash_table_equal = scheme_hash_table_equal;
|
||||
scheme_extension_table->scheme_is_hash_table_equal = scheme_is_hash_table_equal;
|
||||
scheme_extension_table->scheme_is_hash_table_eqv = scheme_is_hash_table_eqv;
|
||||
scheme_extension_table->scheme_clone_hash_table = scheme_clone_hash_table;
|
||||
scheme_extension_table->scheme_make_hash_tree = scheme_make_hash_tree;
|
||||
scheme_extension_table->scheme_hash_tree_set = scheme_hash_tree_set;
|
||||
|
@ -254,6 +256,7 @@
|
|||
scheme_extension_table->scheme_hash_tree_index = scheme_hash_tree_index;
|
||||
scheme_extension_table->scheme_hash_tree_equal = scheme_hash_tree_equal;
|
||||
scheme_extension_table->scheme_is_hash_tree_equal = scheme_is_hash_tree_equal;
|
||||
scheme_extension_table->scheme_is_hash_tree_eqv = scheme_is_hash_tree_eqv;
|
||||
scheme_extension_table->scheme_make_prim = scheme_make_prim;
|
||||
scheme_extension_table->scheme_make_noneternal_prim = scheme_make_noneternal_prim;
|
||||
scheme_extension_table->scheme_make_prim_w_arity = scheme_make_prim_w_arity;
|
||||
|
@ -577,6 +580,8 @@
|
|||
scheme_extension_table->scheme_equal_hash_key2 = scheme_equal_hash_key2;
|
||||
scheme_extension_table->scheme_recur_equal_hash_key = scheme_recur_equal_hash_key;
|
||||
scheme_extension_table->scheme_recur_equal_hash_key2 = scheme_recur_equal_hash_key2;
|
||||
scheme_extension_table->scheme_eqv_hash_key = scheme_eqv_hash_key;
|
||||
scheme_extension_table->scheme_eqv_hash_key2 = scheme_eqv_hash_key2;
|
||||
scheme_extension_table->scheme_set_type_equality = scheme_set_type_equality;
|
||||
scheme_extension_table->scheme_recur_equal = scheme_recur_equal;
|
||||
scheme_extension_table->scheme_build_list = scheme_build_list;
|
||||
|
|
|
@ -239,6 +239,7 @@
|
|||
#define scheme_clone_bucket_table (scheme_extension_table->scheme_clone_bucket_table)
|
||||
#define scheme_make_hash_table (scheme_extension_table->scheme_make_hash_table)
|
||||
#define scheme_make_hash_table_equal (scheme_extension_table->scheme_make_hash_table_equal)
|
||||
#define scheme_make_hash_table_eqv (scheme_extension_table->scheme_make_hash_table_eqv)
|
||||
#define scheme_hash_set (scheme_extension_table->scheme_hash_set)
|
||||
#define scheme_hash_get (scheme_extension_table->scheme_hash_get)
|
||||
#define scheme_eq_hash_get (scheme_extension_table->scheme_eq_hash_get)
|
||||
|
@ -246,6 +247,7 @@
|
|||
#define scheme_hash_get_atomic (scheme_extension_table->scheme_hash_get_atomic)
|
||||
#define scheme_hash_table_equal (scheme_extension_table->scheme_hash_table_equal)
|
||||
#define scheme_is_hash_table_equal (scheme_extension_table->scheme_is_hash_table_equal)
|
||||
#define scheme_is_hash_table_eqv (scheme_extension_table->scheme_is_hash_table_eqv)
|
||||
#define scheme_clone_hash_table (scheme_extension_table->scheme_clone_hash_table)
|
||||
#define scheme_make_hash_tree (scheme_extension_table->scheme_make_hash_tree)
|
||||
#define scheme_hash_tree_set (scheme_extension_table->scheme_hash_tree_set)
|
||||
|
@ -254,6 +256,7 @@
|
|||
#define scheme_hash_tree_index (scheme_extension_table->scheme_hash_tree_index)
|
||||
#define scheme_hash_tree_equal (scheme_extension_table->scheme_hash_tree_equal)
|
||||
#define scheme_is_hash_tree_equal (scheme_extension_table->scheme_is_hash_tree_equal)
|
||||
#define scheme_is_hash_tree_eqv (scheme_extension_table->scheme_is_hash_tree_eqv)
|
||||
#define scheme_make_prim (scheme_extension_table->scheme_make_prim)
|
||||
#define scheme_make_noneternal_prim (scheme_extension_table->scheme_make_noneternal_prim)
|
||||
#define scheme_make_prim_w_arity (scheme_extension_table->scheme_make_prim_w_arity)
|
||||
|
@ -577,6 +580,8 @@
|
|||
#define scheme_equal_hash_key2 (scheme_extension_table->scheme_equal_hash_key2)
|
||||
#define scheme_recur_equal_hash_key (scheme_extension_table->scheme_recur_equal_hash_key)
|
||||
#define scheme_recur_equal_hash_key2 (scheme_extension_table->scheme_recur_equal_hash_key2)
|
||||
#define scheme_eqv_hash_key (scheme_extension_table->scheme_eqv_hash_key)
|
||||
#define scheme_eqv_hash_key2 (scheme_extension_table->scheme_eqv_hash_key2)
|
||||
#define scheme_set_type_equality (scheme_extension_table->scheme_set_type_equality)
|
||||
#define scheme_recur_equal (scheme_extension_table->scheme_recur_equal)
|
||||
#define scheme_build_list (scheme_extension_table->scheme_build_list)
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
#define USE_COMPILED_STARTUP 1
|
||||
|
||||
#define EXPECTED_PRIM_COUNT 929
|
||||
#define EXPECTED_PRIM_COUNT 935
|
||||
|
||||
#ifdef MZSCHEME_SOMETHING_OMITTED
|
||||
# undef USE_COMPILED_STARTUP
|
||||
|
|
|
@ -530,7 +530,7 @@ Scheme_Bucket *scheme_bucket_or_null_from_table(Scheme_Bucket_Table *table, cons
|
|||
|
||||
struct Scheme_Hash_Tree
|
||||
{
|
||||
Scheme_Inclhash_Object iso; /* 0x1 flag => equal?-based hashing */
|
||||
Scheme_Inclhash_Object iso; /* 0x1 flag => equal?-based hashing; 0x2 flag => eqv?-based hashing */
|
||||
int count;
|
||||
struct RBNode *root;
|
||||
Scheme_Object *elems_box; /* vector in a weak box */
|
||||
|
|
|
@ -13,12 +13,12 @@
|
|||
consistently.)
|
||||
*/
|
||||
|
||||
#define MZSCHEME_VERSION "4.1.1.1"
|
||||
#define MZSCHEME_VERSION "4.1.1.2"
|
||||
|
||||
#define MZSCHEME_VERSION_X 4
|
||||
#define MZSCHEME_VERSION_Y 1
|
||||
#define MZSCHEME_VERSION_Z 1
|
||||
#define MZSCHEME_VERSION_W 1
|
||||
#define MZSCHEME_VERSION_W 2
|
||||
|
||||
#define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y)
|
||||
#define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W)
|
||||
|
|
Loading…
Reference in New Issue
Block a user