procedure-rename

svn: r12952
This commit is contained in:
Matthew Flatt 2008-12-30 14:36:25 +00:00
parent b190e2a8d0
commit 87274b2a97
13 changed files with 535 additions and 411 deletions

View File

@ -150,6 +150,8 @@ Classes, objects, and interfaces are all values. However, a class or
interface is not an object (i.e., there are no ``meta-classes'' or
``meta-interfaces'').
@local-table-of-contents[]
@; ------------------------------------------------------------------------
@section[#:tag "createinterface"]{Creating Interfaces}

View File

@ -46,6 +46,15 @@ function consumes.
((compose list split-path) (bytes->path #"/a" 'unix))
]}
@defproc[(procedure-rename [proc procedure?]
[name symbol?])
procedure?]{
Returns a procedure that is like @scheme[proc], except that its name
as returned by @scheme[object-name] (and as printed for debugging) is
@scheme[name].}
@; ----------------------------------------
@section{Keywords and Arity}

View File

@ -23,7 +23,7 @@ port, it matches UTF-8 encodings (see @secref["encodings"]) of
matching character streams; if a byte regexp is used with a character
string, it matches bytes in the UTF-8 encoding of the string.
Regular expressions can be compiled into a @defterm{regexp value} for
Regular expressions can be compiled into a @deftech{regexp value} for
repeated matches. The @scheme[regexp] and @scheme[byte-regexp]
procedures convert a string or byte string (respectively) into a
regexp value using one syntax of regular expressions that is most
@ -103,25 +103,25 @@ arbitrarily large sequence).
@defproc[(regexp? [v any/c]) boolean?]{
Returns @scheme[#t] if @scheme[v] is a regexp value created by
Returns @scheme[#t] if @scheme[v] is a @tech{regexp value} created by
@scheme[regexp] or @scheme[pregexp], @scheme[#f] otherwise.}
@defproc[(pregexp? [v any/c]) boolean?]{
Returns @scheme[#t] if @scheme[v] is a regexp value created by
Returns @scheme[#t] if @scheme[v] is a @tech{regexp value} created by
@scheme[pregexp] (not @scheme[regexp]), @scheme[#f] otherwise.}
@defproc[(byte-regexp? [v any/c]) boolean?]{
Returns @scheme[#t] if @scheme[v] is a regexp value created by
Returns @scheme[#t] if @scheme[v] is a @tech{regexp value} created by
@scheme[byte-regexp] or @scheme[byte-pregexp], @scheme[#f] otherwise.}
@defproc[(byte-pregexp? [v any/c]) boolean?]{
Returns @scheme[#t] if @scheme[v] is a regexp value created by
Returns @scheme[#t] if @scheme[v] is a @tech{regexp value} created by
@scheme[byte-pregexp] (not @scheme[byte-regexp]), @scheme[#f]
otherwise.}
@ -129,15 +129,15 @@ otherwise.}
@defproc[(regexp [str string?]) regexp?]{
Takes a string representation of a regular expression (using the
syntax in @secref["regexp-syntax"]) and compiles it into a regexp
value. Other regular expression procedures accept either a string or a
regexp value as the matching pattern. If a regular expression string
syntax in @secref["regexp-syntax"]) and compiles it into a @tech{regexp
value}. Other regular expression procedures accept either a string or a
@tech{regexp value} as the matching pattern. If a regular expression string
is used multiple times, it is faster to compile the string once to a
regexp value and use it for repeated matches instead of using the
@tech{regexp value} and use it for repeated matches instead of using the
string each time.
The @scheme[object-name] procedure returns
the source string for a regexp value.
the source string for a @tech{regexp value}.
@examples[
(regexp "ap*le")
@ -160,10 +160,10 @@ Like @scheme[regexp], except that it uses a slightly different syntax
Takes a byte-string representation of a regular expression (using the
syntax in @secref["regexp-syntax"]) and compiles it into a
byte-regexp value.
byte-@tech{regexp value}.
The @scheme[object-name] procedure
returns the source byte string for a regexp value.
returns the source byte string for a @tech{regexp value}.
@examples[
(byte-regexp #"ap*le")
@ -210,8 +210,8 @@ case-sensitively.
(listof (or/c bytes? #f))
#f)]{
Attempts to match @scheme[pattern] (a string, byte string, regexp
value, or byte-regexp value) once to a portion of @scheme[input]. The
Attempts to match @scheme[pattern] (a string, byte string, @tech{regexp
value}, or byte-@tech{regexp value}) once to a portion of @scheme[input]. The
matcher finds a portion of @scheme[input] that matches and is closest
to the start of the input (after @scheme[start-pos]).
@ -236,7 +236,7 @@ end-of-input @litchar{$} refers to the @scheme[end-pos]th position or
If the match fails, @scheme[#f] is returned. If the match succeeds, a
list containing strings or byte string, and possibly @scheme[#f], is
returned. The list contains strings only if @scheme[input] is a string
and @scheme[pattern] is not a byte regexp value. Otherwise, the list
and @scheme[pattern] is not a byte regexp. Otherwise, the list
contains byte strings (substrings of the UTF-8 encoding of
@scheme[input], if @scheme[input] is a string).

View File

@ -141,10 +141,26 @@ is not controlled by the current inspector, the
Returns a value for the name of @scheme[v] if @scheme[v] has a name,
@scheme[#f] otherwise. The argument @scheme[v] can be any value, but
only (some) procedures, structs, struct types, struct type properties,
regexp values, and ports have names. The name of a procedure, struct,
struct type, or struct type property is always a symbol. The name of a
regexp value is a string, and a byte-regexp value's name is a byte
string. The name of a port is typically a path or a string, but it can
be arbitrary. See also @secref["infernames"].}
only (some) procedures, @tech{structures}, @tech{structure types},
@tech{structure type properties}, @tech{regexp values}, and
@tech{ports} have names. See also @secref["infernames"].
The name (if any) of a procedure is always a symbol. The
@scheme[procedure-rename] function creates a procedure with a specific
name.
The name of a @tech{structure}, @tech{structure type}, @tech{structure
type property} is always a symbol. If a @tech{structure} is not a
procedure, its name matches the name of the @tech{structure type} that
it instantiates.
The name of a @tech{regexp value} is a string or byte string. Passing
the string or byte string to @scheme[regexp], @scheme[byte-regexp],
@scheme[pregexp], or @scheme[byte-pregexp] (depending on the kind of
regexp whose name was extracted) produces a value that matches the
same inputs.
The name of a port can be any value, but many tools use a path or
string name as the port's for (to report source locations, for
example).}

View File

@ -8,8 +8,6 @@
@guideintro["define-struct"]{structure types via @scheme[define-struct]}
@local-table-of-contents[]
A @deftech{structure type} is a record datatype composing a number of
@idefterm{fields}. A @deftech{structure}, an instance of a structure
type, is a first-class value that contains a value for each field of
@ -74,6 +72,8 @@ results of applying @scheme[struct->vector] to the structs are
@scheme[equal?]. (Consequently, @scheme[equal?] testing for
structures depends on the current inspector.)
@local-table-of-contents[]
@;------------------------------------------------------------------------
@include-section["define-struct.scrbl"]

View File

@ -2366,7 +2366,9 @@
(check-ok + (list 4 (make-arity-at-least 2)) '(2 3 4 10) '(0 1))
(check-ok + (list 2 (make-arity-at-least 4)) '(2 4 10) '(0 1 3)))])
(check-all-but-one +)
(check-all-but-one (procedure-rename + 'plus))
(check-all-but-one (lambda args (apply + args)))
(check-all-but-one (procedure-rename (lambda args (apply + args)) 'PLUS))
(check-all-but-one (case-lambda
[() 0]
[(a b . args) (apply + a b args)]))
@ -2386,6 +2388,12 @@
[() 0]
[(a b c d . e) (apply + a b c d e)]))))
(test '+ object-name (procedure-reduce-arity + 3))
(test 'plus object-name (procedure-rename + 'plus))
(test 'again object-name (procedure-rename (procedure-rename + 'plus) 'again))
(test 'again object-name (procedure-rename (procedure-reduce-arity + 3) 'again))
(test 3 procedure-arity (procedure-rename (procedure-reduce-arity + 3) 'again))
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(report-errs)

View File

@ -1,3 +1,9 @@
Version 4.1.3.7
image-snip% implements equal<%>
----------------------------------------------------------------------
Version 4.1.3, November 2008
Minor bug fixes

View File

@ -1,6 +1,10 @@
Version 4.1.3.8
Added procedure-rename
Version 4.1.3.7
Added `equal?/recur'
Added extra argument to `raise-syntax-error'
Added equal?/recur
Added extra argument to raise-syntax-error
Added equal<%> and interface* to scheme/class
Version 4.1.3.6
Memory accounting changed to bias charges to parent instead of children

View File

@ -1,80 +1,80 @@
{
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,51,46,55,50,0,0,0,1,0,0,3,0,12,0,
19,0,23,0,28,0,41,0,44,0,49,0,56,0,63,0,67,0,72,0,78,
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,51,46,56,50,0,0,0,1,0,0,3,0,12,0,
17,0,20,0,27,0,40,0,47,0,51,0,58,0,63,0,68,0,72,0,78,
0,92,0,106,0,109,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,87,1,126,1,165,
1,234,1,42,2,130,2,194,2,199,2,219,2,110,3,130,3,181,3,247,3,
132,4,34,5,84,5,107,5,186,5,0,0,132,7,0,0,29,11,11,68,104,
101,114,101,45,115,116,120,66,100,101,102,105,110,101,63,97,110,100,64,108,101,
116,42,72,112,97,114,97,109,101,116,101,114,105,122,101,62,111,114,64,99,111,
110,100,66,108,101,116,114,101,99,66,117,110,108,101,115,115,63,108,101,116,64,
119,104,101,110,65,113,117,111,116,101,29,94,2,13,68,35,37,107,101,114,110,
101,114,101,45,115,116,120,64,99,111,110,100,62,111,114,66,108,101,116,114,101,
99,72,112,97,114,97,109,101,116,101,114,105,122,101,66,117,110,108,101,115,115,
63,108,101,116,66,100,101,102,105,110,101,64,119,104,101,110,64,108,101,116,42,
63,97,110,100,65,113,117,111,116,101,29,94,2,13,68,35,37,107,101,114,110,
101,108,11,29,94,2,13,68,35,37,112,97,114,97,109,122,11,62,105,102,65,
98,101,103,105,110,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,180,243,94,159,2,15,35,35,159,2,14,35,35,16,20,2,3,
2,1,2,7,2,1,2,4,2,1,2,5,2,1,2,6,2,1,2,9,2,
1,2,8,2,1,2,10,2,1,2,11,2,1,2,12,2,1,97,36,11,8,
2,1,2,5,2,1,2,6,2,1,2,7,2,1,2,8,2,1,2,9,2,
1,2,10,2,1,2,4,2,1,2,11,2,1,2,12,2,1,97,36,11,8,
180,243,93,159,2,14,35,36,16,2,2,2,161,2,1,36,2,2,2,1,2,
2,97,10,11,11,8,180,243,16,0,97,10,37,11,8,180,243,16,0,13,16,
4,35,29,11,11,2,1,11,18,16,2,99,64,104,101,114,101,8,31,8,30,
8,29,8,28,8,27,93,8,224,251,60,0,0,95,9,8,224,251,60,0,0,
2,1,27,248,22,133,4,23,196,1,249,22,190,3,80,158,38,35,251,22,74,
2,16,248,22,89,23,200,2,12,249,22,64,2,17,248,22,91,23,202,1,27,
248,22,133,4,23,196,1,249,22,190,3,80,158,38,35,251,22,74,2,16,248,
22,89,23,200,2,249,22,64,2,17,248,22,91,23,202,1,12,27,248,22,66,
248,22,133,4,23,197,1,28,248,22,72,23,194,2,20,15,159,36,35,36,28,
248,22,72,248,22,66,23,195,2,248,22,65,193,249,22,190,3,80,158,38,35,
251,22,74,2,16,248,22,65,23,200,2,249,22,64,2,4,248,22,66,23,202,
2,1,27,248,22,134,4,23,196,1,249,22,191,3,80,158,38,35,251,22,75,
2,16,248,22,90,23,200,2,12,249,22,65,2,17,248,22,92,23,202,1,27,
248,22,134,4,23,196,1,249,22,191,3,80,158,38,35,251,22,75,2,16,248,
22,90,23,200,2,249,22,65,2,17,248,22,92,23,202,1,12,27,248,22,67,
248,22,134,4,23,197,1,28,248,22,73,23,194,2,20,15,159,36,35,36,28,
248,22,73,248,22,67,23,195,2,248,22,66,193,249,22,191,3,80,158,38,35,
251,22,75,2,16,248,22,66,23,200,2,249,22,65,2,12,248,22,67,23,202,
1,11,18,16,2,101,10,8,31,8,30,8,29,8,28,8,27,16,4,11,11,
2,18,3,1,7,101,110,118,57,55,57,51,16,4,11,11,2,19,3,1,7,
101,110,118,57,55,57,52,93,8,224,252,60,0,0,95,9,8,224,252,60,0,
0,2,1,27,248,22,66,248,22,133,4,23,197,1,28,248,22,72,23,194,2,
20,15,159,36,35,36,28,248,22,72,248,22,66,23,195,2,248,22,65,193,249,
22,190,3,80,158,38,35,250,22,74,2,20,248,22,74,249,22,74,248,22,74,
2,21,248,22,65,23,202,2,251,22,74,2,16,2,21,2,21,249,22,64,2,
7,248,22,66,23,205,1,18,16,2,101,11,8,31,8,30,8,29,8,28,8,
0,2,1,27,248,22,67,248,22,134,4,23,197,1,28,248,22,73,23,194,2,
20,15,159,36,35,36,28,248,22,73,248,22,67,23,195,2,248,22,66,193,249,
22,191,3,80,158,38,35,250,22,75,2,20,248,22,75,249,22,75,248,22,75,
2,21,248,22,66,23,202,2,251,22,75,2,16,2,21,2,21,249,22,65,2,
4,248,22,67,23,205,1,18,16,2,101,11,8,31,8,30,8,29,8,28,8,
27,16,4,11,11,2,18,3,1,7,101,110,118,57,55,57,54,16,4,11,11,
2,19,3,1,7,101,110,118,57,55,57,55,93,8,224,253,60,0,0,95,9,
8,224,253,60,0,0,2,1,248,22,133,4,193,27,248,22,133,4,194,249,22,
64,248,22,74,248,22,65,196,248,22,66,195,27,248,22,66,248,22,133,4,23,
197,1,249,22,190,3,80,158,38,35,28,248,22,52,248,22,191,3,248,22,65,
8,224,253,60,0,0,2,1,248,22,134,4,193,27,248,22,134,4,194,249,22,
65,248,22,75,248,22,66,196,248,22,67,195,27,248,22,67,248,22,134,4,23,
197,1,249,22,191,3,80,158,38,35,28,248,22,53,248,22,128,4,248,22,66,
23,198,2,27,249,22,2,32,0,89,162,8,44,36,42,9,222,33,39,248,22,
133,4,248,22,89,23,200,2,250,22,74,2,22,248,22,74,249,22,74,248,22,
74,248,22,65,23,204,2,250,22,75,2,23,249,22,2,22,65,23,204,2,248,
22,91,23,206,2,249,22,64,248,22,65,23,202,1,249,22,2,22,89,23,200,
1,250,22,75,2,20,249,22,2,32,0,89,162,8,44,36,46,9,222,33,40,
248,22,133,4,248,22,65,201,248,22,66,198,27,248,22,133,4,194,249,22,64,
248,22,74,248,22,65,196,248,22,66,195,27,248,22,66,248,22,133,4,23,197,
1,249,22,190,3,80,158,38,35,250,22,75,2,22,249,22,2,32,0,89,162,
8,44,36,46,9,222,33,42,248,22,133,4,248,22,65,201,248,22,66,198,27,
248,22,66,248,22,133,4,196,27,248,22,133,4,248,22,65,195,249,22,190,3,
80,158,39,35,28,248,22,72,195,250,22,75,2,20,9,248,22,66,199,250,22,
74,2,11,248,22,74,248,22,65,199,250,22,75,2,5,248,22,66,201,248,22,
66,202,27,248,22,66,248,22,133,4,23,197,1,27,249,22,1,22,78,249,22,
2,22,133,4,248,22,133,4,248,22,65,199,249,22,190,3,80,158,39,35,251,
22,74,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,75,1,23,101,120,116,101,110,100,45,112,97,
134,4,248,22,90,23,200,2,250,22,75,2,22,248,22,75,249,22,75,248,22,
75,248,22,66,23,204,2,250,22,76,2,23,249,22,2,22,66,23,204,2,248,
22,92,23,206,2,249,22,65,248,22,66,23,202,1,249,22,2,22,90,23,200,
1,250,22,76,2,20,249,22,2,32,0,89,162,8,44,36,46,9,222,33,40,
248,22,134,4,248,22,66,201,248,22,67,198,27,248,22,134,4,194,249,22,65,
248,22,75,248,22,66,196,248,22,67,195,27,248,22,67,248,22,134,4,23,197,
1,249,22,191,3,80,158,38,35,250,22,76,2,22,249,22,2,32,0,89,162,
8,44,36,46,9,222,33,42,248,22,134,4,248,22,66,201,248,22,67,198,27,
248,22,67,248,22,134,4,196,27,248,22,134,4,248,22,66,195,249,22,191,3,
80,158,39,35,28,248,22,73,195,250,22,76,2,20,9,248,22,67,199,250,22,
75,2,8,248,22,75,248,22,66,199,250,22,76,2,11,248,22,67,201,248,22,
67,202,27,248,22,67,248,22,134,4,23,197,1,27,249,22,1,22,79,249,22,
2,22,134,4,248,22,134,4,248,22,66,199,249,22,191,3,80,158,39,35,251,
22,75,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,76,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,75,2,20,9,248,22,66,203,27,248,22,66,
248,22,133,4,23,197,1,28,248,22,72,23,194,2,20,15,159,36,35,36,249,
22,190,3,80,158,38,35,27,248,22,133,4,248,22,65,23,198,2,28,249,22,
162,8,62,61,62,248,22,191,3,248,22,89,23,197,2,250,22,74,2,20,248,
22,74,249,22,74,21,93,2,25,248,22,65,199,250,22,75,2,8,249,22,74,
2,25,249,22,74,248,22,98,203,2,25,248,22,66,202,251,22,74,2,16,28,
249,22,162,8,248,22,191,3,248,22,65,23,201,2,64,101,108,115,101,10,248,
22,65,23,198,2,250,22,75,2,20,9,248,22,66,23,201,1,249,22,64,2,
8,248,22,66,23,203,1,100,8,31,8,30,8,29,8,28,8,27,16,4,11,
114,115,116,11,2,24,201,250,22,76,2,20,9,248,22,67,203,27,248,22,67,
248,22,134,4,23,197,1,28,248,22,73,23,194,2,20,15,159,36,35,36,249,
22,191,3,80,158,38,35,27,248,22,134,4,248,22,66,23,198,2,28,249,22,
163,8,62,61,62,248,22,128,4,248,22,90,23,197,2,250,22,75,2,20,248,
22,75,249,22,75,21,93,2,25,248,22,66,199,250,22,76,2,3,249,22,75,
2,25,249,22,75,248,22,99,203,2,25,248,22,67,202,251,22,75,2,16,28,
249,22,163,8,248,22,128,4,248,22,66,23,201,2,64,101,108,115,101,10,248,
22,66,23,198,2,250,22,76,2,20,9,248,22,67,23,201,1,249,22,65,2,
3,248,22,67,23,203,1,100,8,31,8,30,8,29,8,28,8,27,16,4,11,
11,2,18,3,1,7,101,110,118,57,56,49,57,16,4,11,11,2,19,3,1,
7,101,110,118,57,56,50,48,93,8,224,254,60,0,0,18,16,2,158,94,10,
64,118,111,105,100,8,47,95,9,8,224,254,60,0,0,2,1,27,248,22,66,
248,22,133,4,196,249,22,190,3,80,158,38,35,28,248,22,52,248,22,191,3,
248,22,65,197,250,22,74,2,26,248,22,74,248,22,65,199,248,22,89,198,27,
248,22,191,3,248,22,65,197,250,22,74,2,26,248,22,74,248,22,65,197,250,
22,75,2,23,248,22,66,199,248,22,66,202,159,35,20,103,159,35,16,1,11,
64,118,111,105,100,8,47,95,9,8,224,254,60,0,0,2,1,27,248,22,67,
248,22,134,4,196,249,22,191,3,80,158,38,35,28,248,22,53,248,22,128,4,
248,22,66,197,250,22,75,2,26,248,22,75,248,22,66,199,248,22,90,198,27,
248,22,128,4,248,22,66,197,250,22,75,2,26,248,22,75,248,22,66,197,250,
22,76,2,23,248,22,67,199,248,22,67,202,159,35,20,103,159,35,16,1,11,
16,0,83,158,41,20,100,143,69,35,37,109,105,110,45,115,116,120,2,1,11,
10,11,10,35,80,158,35,35,20,103,159,35,16,0,16,0,11,11,16,1,2,
2,36,16,0,35,16,0,35,11,11,38,35,11,11,16,10,2,3,2,4,2,
@ -82,25 +82,25 @@
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,2,2,20,15,159,35,35,
35,35,20,103,159,35,16,0,16,1,33,32,10,16,5,2,10,89,162,8,44,
35,35,20,103,159,35,16,0,16,1,33,32,10,16,5,2,7,89,162,8,44,
36,52,9,223,0,33,33,35,20,103,159,35,16,1,2,2,16,0,11,16,5,
2,12,89,162,8,44,36,52,9,223,0,33,34,35,20,103,159,35,16,1,2,
2,16,0,11,16,5,2,4,89,162,8,44,36,52,9,223,0,33,35,35,20,
103,159,35,16,1,2,2,16,1,33,36,11,16,5,2,7,89,162,8,44,36,
2,10,89,162,8,44,36,52,9,223,0,33,34,35,20,103,159,35,16,1,2,
2,16,0,11,16,5,2,12,89,162,8,44,36,52,9,223,0,33,35,35,20,
103,159,35,16,1,2,2,16,1,33,36,11,16,5,2,4,89,162,8,44,36,
55,9,223,0,33,37,35,20,103,159,35,16,1,2,2,16,1,33,38,11,16,
5,2,11,89,162,8,44,36,57,9,223,0,33,41,35,20,103,159,35,16,1,
2,2,16,0,11,16,5,2,9,89,162,8,44,36,52,9,223,0,33,43,35,
20,103,159,35,16,1,2,2,16,0,11,16,5,2,5,89,162,8,44,36,53,
5,2,8,89,162,8,44,36,57,9,223,0,33,41,35,20,103,159,35,16,1,
2,2,16,0,11,16,5,2,5,89,162,8,44,36,52,9,223,0,33,43,35,
20,103,159,35,16,1,2,2,16,0,11,16,5,2,11,89,162,8,44,36,53,
9,223,0,33,44,35,20,103,159,35,16,1,2,2,16,0,11,16,5,2,6,
89,162,8,44,36,54,9,223,0,33,45,35,20,103,159,35,16,1,2,2,16,
0,11,16,5,2,8,89,162,8,44,36,57,9,223,0,33,46,35,20,103,159,
35,16,1,2,2,16,1,33,48,11,16,5,2,3,89,162,8,44,36,53,9,
0,11,16,5,2,3,89,162,8,44,36,57,9,223,0,33,46,35,20,103,159,
35,16,1,2,2,16,1,33,48,11,16,5,2,9,89,162,8,44,36,53,9,
223,0,33,49,35,20,103,159,35,16,1,2,2,16,0,11,16,0,94,2,14,
2,15,93,2,14,9,9,35,0};
EVAL_ONE_SIZED_STR((char *)expr, 2045);
}
{
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,51,46,55,59,0,0,0,1,0,0,13,0,18,0,
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,51,46,56,59,0,0,0,1,0,0,13,0,18,0,
35,0,50,0,68,0,84,0,94,0,112,0,132,0,148,0,166,0,197,0,226,
0,248,0,6,1,12,1,26,1,31,1,41,1,49,1,77,1,109,1,154,1,
199,1,223,1,6,2,8,2,65,2,155,3,196,3,31,5,135,5,239,5,100,
@ -132,176 +132,176 @@
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,180,12,10,248,22,155,5,23,196,2,28,248,
22,152,6,23,194,2,12,87,94,248,22,166,8,23,194,1,248,80,159,37,53,
36,195,28,248,22,72,23,195,2,9,27,248,22,65,23,196,2,27,28,248,22,
161,13,23,195,2,23,194,1,28,248,22,160,13,23,195,2,249,22,162,13,23,
196,1,250,80,158,42,48,248,22,176,13,2,19,11,10,250,80,158,40,48,248,
22,176,13,2,19,23,197,1,10,28,23,193,2,249,22,64,248,22,164,13,249,
22,162,13,23,198,1,247,22,177,13,27,248,22,66,23,200,1,28,248,22,72,
23,194,2,9,27,248,22,65,23,195,2,27,28,248,22,161,13,23,195,2,23,
194,1,28,248,22,160,13,23,195,2,249,22,162,13,23,196,1,250,80,158,47,
48,248,22,176,13,2,19,11,10,250,80,158,45,48,248,22,176,13,2,19,23,
197,1,10,28,23,193,2,249,22,64,248,22,164,13,249,22,162,13,23,198,1,
247,22,177,13,248,80,159,45,52,36,248,22,66,23,199,1,87,94,23,193,1,
248,80,159,43,52,36,248,22,66,23,197,1,87,94,23,193,1,27,248,22,66,
23,198,1,28,248,22,72,23,194,2,9,27,248,22,65,23,195,2,27,28,248,
22,161,13,23,195,2,23,194,1,28,248,22,160,13,23,195,2,249,22,162,13,
23,196,1,250,80,158,45,48,248,22,176,13,2,19,11,10,250,80,158,43,48,
248,22,176,13,2,19,23,197,1,10,28,23,193,2,249,22,64,248,22,164,13,
249,22,162,13,23,198,1,247,22,177,13,248,80,159,43,52,36,248,22,66,23,
199,1,248,80,159,41,52,36,248,22,66,196,27,248,22,137,13,23,195,2,28,
23,193,2,192,87,94,23,193,1,28,248,22,157,6,23,195,2,27,248,22,159,
13,195,28,192,192,248,22,160,13,195,11,87,94,28,28,248,22,138,13,23,195,
2,10,27,248,22,137,13,23,196,2,28,23,193,2,192,87,94,23,193,1,28,
248,22,157,6,23,196,2,27,248,22,159,13,23,197,2,28,23,193,2,192,87,
94,23,193,1,248,22,160,13,23,197,2,11,12,250,22,130,9,76,110,111,114,
249,22,27,11,80,158,41,50,22,181,12,10,248,22,156,5,23,196,2,28,248,
22,153,6,23,194,2,12,87,94,248,22,167,8,23,194,1,248,80,159,37,53,
36,195,28,248,22,73,23,195,2,9,27,248,22,66,23,196,2,27,28,248,22,
162,13,23,195,2,23,194,1,28,248,22,161,13,23,195,2,249,22,163,13,23,
196,1,250,80,158,42,48,248,22,177,13,2,19,11,10,250,80,158,40,48,248,
22,177,13,2,19,23,197,1,10,28,23,193,2,249,22,65,248,22,165,13,249,
22,163,13,23,198,1,247,22,178,13,27,248,22,67,23,200,1,28,248,22,73,
23,194,2,9,27,248,22,66,23,195,2,27,28,248,22,162,13,23,195,2,23,
194,1,28,248,22,161,13,23,195,2,249,22,163,13,23,196,1,250,80,158,47,
48,248,22,177,13,2,19,11,10,250,80,158,45,48,248,22,177,13,2,19,23,
197,1,10,28,23,193,2,249,22,65,248,22,165,13,249,22,163,13,23,198,1,
247,22,178,13,248,80,159,45,52,36,248,22,67,23,199,1,87,94,23,193,1,
248,80,159,43,52,36,248,22,67,23,197,1,87,94,23,193,1,27,248,22,67,
23,198,1,28,248,22,73,23,194,2,9,27,248,22,66,23,195,2,27,28,248,
22,162,13,23,195,2,23,194,1,28,248,22,161,13,23,195,2,249,22,163,13,
23,196,1,250,80,158,45,48,248,22,177,13,2,19,11,10,250,80,158,43,48,
248,22,177,13,2,19,23,197,1,10,28,23,193,2,249,22,65,248,22,165,13,
249,22,163,13,23,198,1,247,22,178,13,248,80,159,43,52,36,248,22,67,23,
199,1,248,80,159,41,52,36,248,22,67,196,27,248,22,138,13,23,195,2,28,
23,193,2,192,87,94,23,193,1,28,248,22,158,6,23,195,2,27,248,22,160,
13,195,28,192,192,248,22,161,13,195,11,87,94,28,28,248,22,139,13,23,195,
2,10,27,248,22,138,13,23,196,2,28,23,193,2,192,87,94,23,193,1,28,
248,22,158,6,23,196,2,27,248,22,160,13,23,197,2,28,23,193,2,192,87,
94,23,193,1,248,22,161,13,23,197,2,11,12,250,22,131,9,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,138,13,23,195,2,249,22,162,8,248,22,139,13,23,197,2,2,20,249,
22,162,8,247,22,176,7,2,20,27,28,248,22,157,6,23,196,2,23,195,2,
248,22,166,7,248,22,142,13,23,197,2,28,249,22,189,13,0,21,35,114,120,
248,22,139,13,23,195,2,249,22,163,8,248,22,140,13,23,197,2,2,20,249,
22,163,8,247,22,177,7,2,20,27,28,248,22,158,6,23,196,2,23,195,2,
248,22,167,7,248,22,143,13,23,197,2,28,249,22,190,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,157,6,195,248,22,145,13,195,194,27,248,22,132,7,23,195,1,249,
22,146,13,248,22,169,7,250,22,131,14,0,6,35,114,120,34,47,34,28,249,
22,189,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,131,14,0,19,35,114,120,
28,248,22,158,6,195,248,22,146,13,195,194,27,248,22,133,7,23,195,1,249,
22,147,13,248,22,170,7,250,22,132,14,0,6,35,114,120,34,47,34,28,249,
22,190,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,132,14,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,159,43,36,37,2,20,28,248,22,157,6,194,248,22,145,13,194,
193,87,94,28,27,248,22,137,13,23,196,2,28,23,193,2,192,87,94,23,193,
1,28,248,22,157,6,23,196,2,27,248,22,159,13,23,197,2,28,23,193,2,
192,87,94,23,193,1,248,22,160,13,23,197,2,11,12,250,22,130,9,23,196,
2,2,21,23,197,2,28,248,22,159,13,23,195,2,12,248,22,156,11,249,22,
165,10,248,22,186,6,250,22,141,7,2,22,23,200,1,23,201,1,247,22,23,
87,94,28,27,248,22,137,13,23,196,2,28,23,193,2,192,87,94,23,193,1,
28,248,22,157,6,23,196,2,27,248,22,159,13,23,197,2,28,23,193,2,192,
87,94,23,193,1,248,22,160,13,23,197,2,11,12,250,22,130,9,23,196,2,
2,21,23,197,2,28,248,22,159,13,23,195,2,12,248,22,156,11,249,22,165,
10,248,22,186,6,250,22,141,7,2,22,23,200,1,23,201,1,247,22,23,87,
94,87,94,28,27,248,22,137,13,23,196,2,28,23,193,2,192,87,94,23,193,
1,28,248,22,157,6,23,196,2,27,248,22,159,13,23,197,2,28,23,193,2,
192,87,94,23,193,1,248,22,160,13,23,197,2,11,12,250,22,130,9,195,2,
21,23,197,2,28,248,22,159,13,23,195,2,12,248,22,156,11,249,22,165,10,
248,22,186,6,250,22,141,7,2,22,199,23,201,1,247,22,23,249,22,3,89,
162,8,44,36,49,9,223,2,33,33,196,248,22,156,11,249,22,131,11,23,196,
2,92,49,80,159,43,36,37,2,20,28,248,22,158,6,194,248,22,146,13,194,
193,87,94,28,27,248,22,138,13,23,196,2,28,23,193,2,192,87,94,23,193,
1,28,248,22,158,6,23,196,2,27,248,22,160,13,23,197,2,28,23,193,2,
192,87,94,23,193,1,248,22,161,13,23,197,2,11,12,250,22,131,9,23,196,
2,2,21,23,197,2,28,248,22,160,13,23,195,2,12,248,22,157,11,249,22,
166,10,248,22,187,6,250,22,142,7,2,22,23,200,1,23,201,1,247,22,23,
87,94,28,27,248,22,138,13,23,196,2,28,23,193,2,192,87,94,23,193,1,
28,248,22,158,6,23,196,2,27,248,22,160,13,23,197,2,28,23,193,2,192,
87,94,23,193,1,248,22,161,13,23,197,2,11,12,250,22,131,9,23,196,2,
2,21,23,197,2,28,248,22,160,13,23,195,2,12,248,22,157,11,249,22,166,
10,248,22,187,6,250,22,142,7,2,22,23,200,1,23,201,1,247,22,23,87,
94,87,94,28,27,248,22,138,13,23,196,2,28,23,193,2,192,87,94,23,193,
1,28,248,22,158,6,23,196,2,27,248,22,160,13,23,197,2,28,23,193,2,
192,87,94,23,193,1,248,22,161,13,23,197,2,11,12,250,22,131,9,195,2,
21,23,197,2,28,248,22,160,13,23,195,2,12,248,22,157,11,249,22,166,10,
248,22,187,6,250,22,142,7,2,22,199,23,201,1,247,22,23,249,22,3,89,
162,8,44,36,49,9,223,2,33,33,196,248,22,157,11,249,22,132,11,23,196,
1,247,22,23,87,94,250,80,159,38,39,36,2,6,196,197,251,80,159,39,41,
36,2,6,32,0,89,162,8,44,36,44,9,222,33,35,197,198,32,37,89,162,
43,41,58,65,99,108,111,111,112,222,33,38,28,248,22,72,23,199,2,87,94,
23,198,1,248,23,196,1,251,22,141,7,2,23,23,199,1,28,248,22,72,23,
203,2,87,94,23,202,1,23,201,1,250,22,1,22,155,13,23,204,1,23,205,
1,23,198,1,27,249,22,155,13,248,22,65,23,202,2,23,199,2,28,248,22,
150,13,23,194,2,27,250,22,1,22,155,13,23,197,1,23,202,2,28,248,22,
150,13,23,194,2,192,87,94,23,193,1,27,248,22,66,23,202,1,28,248,22,
72,23,194,2,87,94,23,193,1,248,23,199,1,251,22,141,7,2,23,23,202,
1,28,248,22,72,23,206,2,87,94,23,205,1,23,204,1,250,22,1,22,155,
13,23,207,1,23,208,1,23,201,1,27,249,22,155,13,248,22,65,23,197,2,
23,202,2,28,248,22,150,13,23,194,2,27,250,22,1,22,155,13,23,197,1,
204,28,248,22,150,13,193,192,253,2,37,203,204,205,206,23,15,248,22,66,201,
253,2,37,202,203,204,205,206,248,22,66,200,87,94,23,193,1,27,248,22,66,
23,201,1,28,248,22,72,23,194,2,87,94,23,193,1,248,23,198,1,251,22,
141,7,2,23,23,201,1,28,248,22,72,23,205,2,87,94,23,204,1,23,203,
1,250,22,1,22,155,13,23,206,1,23,207,1,23,200,1,27,249,22,155,13,
248,22,65,23,197,2,23,201,2,28,248,22,150,13,23,194,2,27,250,22,1,
22,155,13,23,197,1,203,28,248,22,150,13,193,192,253,2,37,202,203,204,205,
206,248,22,66,201,253,2,37,201,202,203,204,205,248,22,66,200,27,247,22,178,
13,253,2,37,198,199,200,201,202,198,87,95,28,28,248,22,138,13,23,194,2,
10,27,248,22,137,13,23,195,2,28,23,193,2,192,87,94,23,193,1,28,248,
22,157,6,23,195,2,27,248,22,159,13,23,196,2,28,23,193,2,192,87,94,
23,193,1,248,22,160,13,23,196,2,11,12,252,22,130,9,23,200,2,2,24,
35,23,198,2,23,199,2,28,28,248,22,157,6,23,195,2,10,248,22,145,7,
23,195,2,87,94,23,194,1,12,252,22,130,9,23,200,2,2,25,36,23,198,
2,23,199,1,91,159,38,11,90,161,38,35,11,248,22,158,13,23,197,2,87,
94,23,195,1,87,94,28,192,12,250,22,131,9,23,201,1,2,26,23,199,1,
249,22,7,194,195,91,159,37,11,90,161,37,35,11,87,95,28,28,248,22,138,
13,23,196,2,10,27,248,22,137,13,23,197,2,28,23,193,2,192,87,94,23,
193,1,28,248,22,157,6,23,197,2,27,248,22,159,13,23,198,2,28,23,193,
2,192,87,94,23,193,1,248,22,160,13,23,198,2,11,12,252,22,130,9,2,
9,2,24,35,23,200,2,23,201,2,28,28,248,22,157,6,23,197,2,10,248,
22,145,7,23,197,2,12,252,22,130,9,2,9,2,25,36,23,200,2,23,201,
2,91,159,38,11,90,161,38,35,11,248,22,158,13,23,199,2,87,94,23,195,
1,87,94,28,192,12,250,22,131,9,2,9,2,26,23,201,2,249,22,7,194,
195,27,249,22,147,13,250,22,130,14,0,18,35,114,120,35,34,40,91,46,93,
91,94,46,93,42,124,41,36,34,248,22,143,13,23,201,1,28,248,22,157,6,
23,203,2,249,22,169,7,23,204,1,8,63,23,202,1,28,248,22,138,13,23,
199,2,248,22,139,13,23,199,1,87,94,23,198,1,247,22,140,13,28,248,22,
137,13,194,249,22,155,13,195,194,192,91,159,37,11,90,161,37,35,11,87,95,
28,28,248,22,138,13,23,196,2,10,27,248,22,137,13,23,197,2,28,23,193,
2,192,87,94,23,193,1,28,248,22,157,6,23,197,2,27,248,22,159,13,23,
198,2,28,23,193,2,192,87,94,23,193,1,248,22,160,13,23,198,2,11,12,
252,22,130,9,2,10,2,24,35,23,200,2,23,201,2,28,28,248,22,157,6,
23,197,2,10,248,22,145,7,23,197,2,12,252,22,130,9,2,10,2,25,36,
23,200,2,23,201,2,91,159,38,11,90,161,38,35,11,248,22,158,13,23,199,
2,87,94,23,195,1,87,94,28,192,12,250,22,131,9,2,10,2,26,23,201,
2,249,22,7,194,195,27,249,22,147,13,249,22,155,7,250,22,131,14,0,9,
35,114,120,35,34,91,46,93,34,248,22,143,13,23,203,1,6,1,1,95,28,
248,22,157,6,23,202,2,249,22,169,7,23,203,1,8,63,23,201,1,28,248,
22,138,13,23,199,2,248,22,139,13,23,199,1,87,94,23,198,1,247,22,140,
13,28,248,22,137,13,194,249,22,155,13,195,194,192,249,247,22,188,4,194,11,
249,80,158,37,46,9,9,249,80,158,37,46,195,9,27,247,22,180,13,249,80,
158,38,47,28,23,195,2,27,248,22,174,7,6,11,11,80,76,84,67,79,76,
43,41,58,65,99,108,111,111,112,222,33,38,28,248,22,73,23,199,2,87,94,
23,198,1,248,23,196,1,251,22,142,7,2,23,23,199,1,28,248,22,73,23,
203,2,87,94,23,202,1,23,201,1,250,22,1,22,156,13,23,204,1,23,205,
1,23,198,1,27,249,22,156,13,248,22,66,23,202,2,23,199,2,28,248,22,
151,13,23,194,2,27,250,22,1,22,156,13,23,197,1,23,202,2,28,248,22,
151,13,23,194,2,192,87,94,23,193,1,27,248,22,67,23,202,1,28,248,22,
73,23,194,2,87,94,23,193,1,248,23,199,1,251,22,142,7,2,23,23,202,
1,28,248,22,73,23,206,2,87,94,23,205,1,23,204,1,250,22,1,22,156,
13,23,207,1,23,208,1,23,201,1,27,249,22,156,13,248,22,66,23,197,2,
23,202,2,28,248,22,151,13,23,194,2,27,250,22,1,22,156,13,23,197,1,
204,28,248,22,151,13,193,192,253,2,37,203,204,205,206,23,15,248,22,67,201,
253,2,37,202,203,204,205,206,248,22,67,200,87,94,23,193,1,27,248,22,67,
23,201,1,28,248,22,73,23,194,2,87,94,23,193,1,248,23,198,1,251,22,
142,7,2,23,23,201,1,28,248,22,73,23,205,2,87,94,23,204,1,23,203,
1,250,22,1,22,156,13,23,206,1,23,207,1,23,200,1,27,249,22,156,13,
248,22,66,23,197,2,23,201,2,28,248,22,151,13,23,194,2,27,250,22,1,
22,156,13,23,197,1,203,28,248,22,151,13,193,192,253,2,37,202,203,204,205,
206,248,22,67,201,253,2,37,201,202,203,204,205,248,22,67,200,27,247,22,179,
13,253,2,37,198,199,200,201,202,198,87,95,28,28,248,22,139,13,23,194,2,
10,27,248,22,138,13,23,195,2,28,23,193,2,192,87,94,23,193,1,28,248,
22,158,6,23,195,2,27,248,22,160,13,23,196,2,28,23,193,2,192,87,94,
23,193,1,248,22,161,13,23,196,2,11,12,252,22,131,9,23,200,2,2,24,
35,23,198,2,23,199,2,28,28,248,22,158,6,23,195,2,10,248,22,146,7,
23,195,2,87,94,23,194,1,12,252,22,131,9,23,200,2,2,25,36,23,198,
2,23,199,1,91,159,38,11,90,161,38,35,11,248,22,159,13,23,197,2,87,
94,23,195,1,87,94,28,192,12,250,22,132,9,23,201,1,2,26,23,199,1,
249,22,7,194,195,91,159,37,11,90,161,37,35,11,87,95,28,28,248,22,139,
13,23,196,2,10,27,248,22,138,13,23,197,2,28,23,193,2,192,87,94,23,
193,1,28,248,22,158,6,23,197,2,27,248,22,160,13,23,198,2,28,23,193,
2,192,87,94,23,193,1,248,22,161,13,23,198,2,11,12,252,22,131,9,2,
9,2,24,35,23,200,2,23,201,2,28,28,248,22,158,6,23,197,2,10,248,
22,146,7,23,197,2,12,252,22,131,9,2,9,2,25,36,23,200,2,23,201,
2,91,159,38,11,90,161,38,35,11,248,22,159,13,23,199,2,87,94,23,195,
1,87,94,28,192,12,250,22,132,9,2,9,2,26,23,201,2,249,22,7,194,
195,27,249,22,148,13,250,22,131,14,0,18,35,114,120,35,34,40,91,46,93,
91,94,46,93,42,124,41,36,34,248,22,144,13,23,201,1,28,248,22,158,6,
23,203,2,249,22,170,7,23,204,1,8,63,23,202,1,28,248,22,139,13,23,
199,2,248,22,140,13,23,199,1,87,94,23,198,1,247,22,141,13,28,248,22,
138,13,194,249,22,156,13,195,194,192,91,159,37,11,90,161,37,35,11,87,95,
28,28,248,22,139,13,23,196,2,10,27,248,22,138,13,23,197,2,28,23,193,
2,192,87,94,23,193,1,28,248,22,158,6,23,197,2,27,248,22,160,13,23,
198,2,28,23,193,2,192,87,94,23,193,1,248,22,161,13,23,198,2,11,12,
252,22,131,9,2,10,2,24,35,23,200,2,23,201,2,28,28,248,22,158,6,
23,197,2,10,248,22,146,7,23,197,2,12,252,22,131,9,2,10,2,25,36,
23,200,2,23,201,2,91,159,38,11,90,161,38,35,11,248,22,159,13,23,199,
2,87,94,23,195,1,87,94,28,192,12,250,22,132,9,2,10,2,26,23,201,
2,249,22,7,194,195,27,249,22,148,13,249,22,156,7,250,22,132,14,0,9,
35,114,120,35,34,91,46,93,34,248,22,144,13,23,203,1,6,1,1,95,28,
248,22,158,6,23,202,2,249,22,170,7,23,203,1,8,63,23,201,1,28,248,
22,139,13,23,199,2,248,22,140,13,23,199,1,87,94,23,198,1,247,22,141,
13,28,248,22,138,13,194,249,22,156,13,195,194,192,249,247,22,189,4,194,11,
249,80,158,37,46,9,9,249,80,158,37,46,195,9,27,247,22,181,13,249,80,
158,38,47,28,23,195,2,27,248,22,175,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,
155,13,248,22,176,13,69,97,100,100,111,110,45,100,105,114,247,22,172,7,6,
8,8,99,111,108,108,101,99,116,115,11,27,248,80,159,41,52,36,250,22,78,
23,203,1,248,22,74,248,22,176,13,72,99,111,108,108,101,99,116,115,45,100,
105,114,23,204,1,28,23,194,2,249,22,64,23,196,1,23,195,1,192,32,47,
89,162,8,44,38,54,2,18,222,33,48,27,249,22,187,13,23,197,2,23,198,
2,28,23,193,2,87,94,23,196,1,27,248,22,89,23,195,2,27,27,248,22,
98,23,197,1,27,249,22,187,13,23,201,2,23,196,2,28,23,193,2,87,94,
23,194,1,27,248,22,89,23,195,2,27,250,2,47,23,203,2,23,204,1,248,
22,98,23,199,1,28,249,22,151,7,23,196,2,2,27,249,22,78,23,202,2,
194,249,22,64,248,22,146,13,23,197,1,23,195,1,87,95,23,199,1,23,193,
1,28,249,22,151,7,23,196,2,2,27,249,22,78,23,200,2,9,249,22,64,
248,22,146,13,23,197,1,9,28,249,22,151,7,23,196,2,2,27,249,22,78,
197,194,87,94,23,196,1,249,22,64,248,22,146,13,23,197,1,194,87,94,23,
193,1,28,249,22,151,7,23,198,2,2,27,249,22,78,195,9,87,94,23,194,
1,249,22,64,248,22,146,13,23,199,1,9,87,95,28,28,248,22,145,7,194,
10,248,22,157,6,194,12,250,22,130,9,2,13,6,21,21,98,121,116,101,32,
156,13,248,22,177,13,69,97,100,100,111,110,45,100,105,114,247,22,173,7,6,
8,8,99,111,108,108,101,99,116,115,11,27,248,80,159,41,52,36,250,22,79,
23,203,1,248,22,75,248,22,177,13,72,99,111,108,108,101,99,116,115,45,100,
105,114,23,204,1,28,23,194,2,249,22,65,23,196,1,23,195,1,192,32,47,
89,162,8,44,38,54,2,18,222,33,48,27,249,22,188,13,23,197,2,23,198,
2,28,23,193,2,87,94,23,196,1,27,248,22,90,23,195,2,27,27,248,22,
99,23,197,1,27,249,22,188,13,23,201,2,23,196,2,28,23,193,2,87,94,
23,194,1,27,248,22,90,23,195,2,27,250,2,47,23,203,2,23,204,1,248,
22,99,23,199,1,28,249,22,152,7,23,196,2,2,27,249,22,79,23,202,2,
194,249,22,65,248,22,147,13,23,197,1,23,195,1,87,95,23,199,1,23,193,
1,28,249,22,152,7,23,196,2,2,27,249,22,79,23,200,2,9,249,22,65,
248,22,147,13,23,197,1,9,28,249,22,152,7,23,196,2,2,27,249,22,79,
197,194,87,94,23,196,1,249,22,65,248,22,147,13,23,197,1,194,87,94,23,
193,1,28,249,22,152,7,23,198,2,2,27,249,22,79,195,9,87,94,23,194,
1,249,22,65,248,22,147,13,23,199,1,9,87,95,28,28,248,22,146,7,194,
10,248,22,158,6,194,12,250,22,131,9,2,13,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,
73,195,249,22,4,22,137,13,196,11,12,250,22,130,9,2,13,6,13,13,108,
74,195,249,22,4,22,138,13,196,11,12,250,22,131,9,2,13,6,13,13,108,
105,115,116,32,111,102,32,112,97,116,104,115,197,250,2,47,197,195,28,248,22,
157,6,197,248,22,168,7,197,196,32,50,89,162,8,44,39,57,2,18,222,33,
158,6,197,248,22,169,7,197,196,32,50,89,162,8,44,39,57,2,18,222,33,
53,32,51,89,162,8,44,38,54,70,102,111,117,110,100,45,101,120,101,99,222,
33,52,28,23,193,2,91,159,38,11,90,161,38,35,11,248,22,158,13,23,199,
2,87,95,23,195,1,23,194,1,27,28,23,198,2,27,248,22,163,13,23,201,
2,28,249,22,164,8,23,195,2,23,202,2,11,28,248,22,159,13,23,194,2,
250,2,51,23,201,2,23,202,2,249,22,155,13,23,200,2,23,198,1,250,2,
33,52,28,23,193,2,91,159,38,11,90,161,38,35,11,248,22,159,13,23,199,
2,87,95,23,195,1,23,194,1,27,28,23,198,2,27,248,22,164,13,23,201,
2,28,249,22,165,8,23,195,2,23,202,2,11,28,248,22,160,13,23,194,2,
250,2,51,23,201,2,23,202,2,249,22,156,13,23,200,2,23,198,1,250,2,
51,23,201,2,23,202,2,23,196,1,11,28,23,193,2,192,87,94,23,193,1,
27,28,248,22,137,13,23,196,2,27,249,22,155,13,23,198,2,23,201,2,28,
28,248,22,150,13,193,10,248,22,149,13,193,192,11,11,28,23,193,2,192,87,
94,23,193,1,28,23,199,2,11,27,248,22,163,13,23,202,2,28,249,22,164,
8,23,195,2,23,203,1,11,28,248,22,159,13,23,194,2,250,2,51,23,202,
1,23,203,1,249,22,155,13,23,201,1,23,198,1,250,2,51,201,202,195,194,
28,248,22,72,23,197,2,11,27,248,22,162,13,248,22,65,23,199,2,27,249,
22,155,13,23,196,1,23,197,2,28,248,22,149,13,23,194,2,250,2,51,198,
199,195,87,94,23,193,1,27,248,22,66,23,200,1,28,248,22,72,23,194,2,
11,27,248,22,162,13,248,22,65,23,196,2,27,249,22,155,13,23,196,1,23,
200,2,28,248,22,149,13,23,194,2,250,2,51,201,202,195,87,94,23,193,1,
27,248,22,66,23,197,1,28,248,22,72,23,194,2,11,27,248,22,162,13,248,
22,65,195,27,249,22,155,13,23,196,1,202,28,248,22,149,13,193,250,2,51,
204,205,195,251,2,50,204,205,206,248,22,66,199,87,95,28,27,248,22,137,13,
23,196,2,28,23,193,2,192,87,94,23,193,1,28,248,22,157,6,23,196,2,
27,248,22,159,13,23,197,2,28,23,193,2,192,87,94,23,193,1,248,22,160,
13,23,197,2,11,12,250,22,130,9,2,14,6,25,25,112,97,116,104,32,111,
27,28,248,22,138,13,23,196,2,27,249,22,156,13,23,198,2,23,201,2,28,
28,248,22,151,13,193,10,248,22,150,13,193,192,11,11,28,23,193,2,192,87,
94,23,193,1,28,23,199,2,11,27,248,22,164,13,23,202,2,28,249,22,165,
8,23,195,2,23,203,1,11,28,248,22,160,13,23,194,2,250,2,51,23,202,
1,23,203,1,249,22,156,13,23,201,1,23,198,1,250,2,51,201,202,195,194,
28,248,22,73,23,197,2,11,27,248,22,163,13,248,22,66,23,199,2,27,249,
22,156,13,23,196,1,23,197,2,28,248,22,150,13,23,194,2,250,2,51,198,
199,195,87,94,23,193,1,27,248,22,67,23,200,1,28,248,22,73,23,194,2,
11,27,248,22,163,13,248,22,66,23,196,2,27,249,22,156,13,23,196,1,23,
200,2,28,248,22,150,13,23,194,2,250,2,51,201,202,195,87,94,23,193,1,
27,248,22,67,23,197,1,28,248,22,73,23,194,2,11,27,248,22,163,13,248,
22,66,195,27,249,22,156,13,23,196,1,202,28,248,22,150,13,193,250,2,51,
204,205,195,251,2,50,204,205,206,248,22,67,199,87,95,28,27,248,22,138,13,
23,196,2,28,23,193,2,192,87,94,23,193,1,28,248,22,158,6,23,196,2,
27,248,22,160,13,23,197,2,28,23,193,2,192,87,94,23,193,1,248,22,161,
13,23,197,2,11,12,250,22,131,9,2,14,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,137,13,23,197,2,28,23,193,2,192,87,
94,23,193,1,28,248,22,157,6,23,197,2,27,248,22,159,13,23,198,2,28,
23,193,2,192,87,94,23,193,1,248,22,160,13,23,198,2,11,248,22,159,13,
23,196,2,11,10,12,250,22,130,9,2,14,6,29,29,35,102,32,111,114,32,
2,28,28,23,195,2,28,27,248,22,138,13,23,197,2,28,23,193,2,192,87,
94,23,193,1,28,248,22,158,6,23,197,2,27,248,22,160,13,23,198,2,28,
23,193,2,192,87,94,23,193,1,248,22,161,13,23,198,2,11,248,22,160,13,
23,196,2,11,10,12,250,22,131,9,2,14,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,159,13,23,195,2,91,159,38,11,90,161,38,
35,11,248,22,158,13,23,198,2,249,22,162,8,194,68,114,101,108,97,116,105,
118,101,11,27,248,22,174,7,6,4,4,80,65,84,72,251,2,50,23,199,1,
110,103,23,198,2,28,28,248,22,160,13,23,195,2,91,159,38,11,90,161,38,
35,11,248,22,159,13,23,198,2,249,22,163,8,194,68,114,101,108,97,116,105,
118,101,11,27,248,22,175,7,6,4,4,80,65,84,72,251,2,50,23,199,1,
23,200,1,23,201,1,28,23,197,2,27,249,80,159,43,47,37,23,200,1,9,
28,249,22,162,8,247,22,176,7,2,20,249,22,64,248,22,146,13,5,1,46,
23,195,1,192,9,27,248,22,162,13,23,196,1,28,248,22,149,13,193,250,2,
28,249,22,163,8,247,22,177,7,2,20,249,22,65,248,22,147,13,5,1,46,
23,195,1,192,9,27,248,22,163,13,23,196,1,28,248,22,150,13,193,250,2,
51,198,199,195,11,250,80,158,38,48,196,197,11,250,80,158,38,48,196,11,11,
87,94,249,22,148,6,247,22,184,4,195,248,22,174,5,249,22,170,3,35,249,
22,154,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,176,13,2,19,27,249,80,159,40,48,37,23,196,
1,11,27,27,248,22,173,3,23,200,1,28,192,192,35,27,27,248,22,173,3,
23,202,1,28,192,192,35,249,22,151,5,23,197,1,83,158,39,20,97,95,89,
162,8,44,35,47,9,224,3,2,33,57,23,195,1,23,196,1,27,248,22,136,
87,94,249,22,149,6,247,22,185,4,195,248,22,175,5,249,22,171,3,35,249,
22,155,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,177,13,2,19,27,249,80,159,40,48,37,23,196,
1,11,27,27,248,22,174,3,23,200,1,28,192,192,35,27,27,248,22,174,3,
23,202,1,28,192,192,35,249,22,152,5,23,197,1,83,158,39,20,97,95,89,
162,8,44,35,47,9,224,3,2,33,57,23,195,1,23,196,1,27,248,22,137,
5,23,195,1,248,80,159,38,53,36,193,159,35,20,103,159,35,16,1,11,16,
0,83,158,41,20,100,143,67,35,37,117,116,105,108,115,29,11,11,11,11,10,
10,42,80,158,35,35,20,103,159,37,16,17,2,1,2,2,2,3,2,4,2,
@ -317,7 +317,7 @@
0,16,17,83,158,35,16,2,89,162,43,36,48,2,18,223,0,33,28,80,159,
35,53,36,83,158,35,16,2,89,162,8,44,36,55,2,18,223,0,33,29,80,
159,35,52,36,83,158,35,16,2,32,0,89,162,43,36,44,2,1,222,33,30,
80,159,35,35,36,83,158,35,16,2,249,22,159,6,7,92,7,92,80,159,35,
80,159,35,35,36,83,158,35,16,2,249,22,160,6,7,92,7,92,80,159,35,
36,36,83,158,35,16,2,89,162,43,36,53,2,3,223,0,33,31,80,159,35,
37,36,83,158,35,16,2,32,0,89,162,8,44,37,49,2,4,222,33,32,80,
159,35,38,36,83,158,35,16,2,32,0,89,162,8,44,38,50,2,5,222,33,
@ -330,8 +330,8 @@
36,43,2,11,222,33,43,80,159,35,45,36,83,158,35,16,2,83,158,38,20,
96,96,2,12,89,162,43,35,43,9,223,0,33,44,89,162,43,36,44,9,223,
0,33,45,89,162,43,37,54,9,223,0,33,46,80,159,35,46,36,83,158,35,
16,2,27,248,22,183,13,248,22,168,7,27,28,249,22,162,8,247,22,176,7,
2,20,6,1,1,59,6,1,1,58,250,22,141,7,6,14,14,40,91,94,126,
16,2,27,248,22,184,13,248,22,169,7,27,28,249,22,163,8,247,22,177,7,
2,20,6,1,1,59,6,1,1,58,250,22,142,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,13,223,0,33,49,80,159,35,47,36,83,158,35,16,2,83,158,38,20,
96,96,2,14,89,162,8,44,38,53,9,223,0,33,54,89,162,43,37,46,9,
@ -342,7 +342,7 @@
EVAL_ONE_SIZED_STR((char *)expr, 5009);
}
{
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,51,46,55,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,51,46,56,8,0,0,0,1,0,0,6,0,19,0,
34,0,48,0,62,0,76,0,111,0,0,0,1,1,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,
@ -360,7 +360,7 @@
EVAL_ONE_SIZED_STR((char *)expr, 294);
}
{
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,51,46,55,52,0,0,0,1,0,0,11,0,38,0,
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,51,46,56,52,0,0,0,1,0,0,11,0,38,0,
44,0,57,0,71,0,93,0,119,0,131,0,149,0,169,0,181,0,197,0,220,
0,0,1,5,1,10,1,15,1,24,1,29,1,60,1,64,1,72,1,81,1,
89,1,196,1,241,1,5,2,34,2,65,2,121,2,131,2,178,2,188,2,195,
@ -382,149 +382,149 @@
110,97,116,105,118,101,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,159,37,45,37,
249,80,159,37,48,36,195,10,27,28,23,195,2,28,249,22,162,8,23,197,2,
80,159,38,46,37,87,94,23,195,1,80,159,36,47,37,27,248,22,171,4,23,
197,2,28,248,22,137,13,23,194,2,91,159,38,11,90,161,38,35,11,248,22,
158,13,23,197,1,87,95,83,160,37,11,80,159,40,46,37,198,83,160,37,11,
249,80,159,37,48,36,195,10,27,28,23,195,2,28,249,22,163,8,23,197,2,
80,159,38,46,37,87,94,23,195,1,80,159,36,47,37,27,248,22,172,4,23,
197,2,28,248,22,138,13,23,194,2,91,159,38,11,90,161,38,35,11,248,22,
159,13,23,197,1,87,95,83,160,37,11,80,159,40,46,37,198,83,160,37,11,
80,159,40,47,37,192,192,11,11,28,23,193,2,192,87,94,23,193,1,27,247,
22,189,4,28,192,192,247,22,177,13,20,14,159,80,158,35,39,250,80,158,38,
40,249,22,27,11,80,158,40,39,22,189,4,28,248,22,137,13,23,198,2,23,
197,1,87,94,23,197,1,247,22,177,13,247,194,250,22,155,13,23,197,1,23,
199,1,249,80,158,42,38,23,198,1,2,17,252,22,155,13,23,199,1,23,201,
1,2,18,247,22,177,7,249,80,158,44,38,23,200,1,80,159,44,35,37,87,
94,23,194,1,27,250,22,172,13,196,11,32,0,89,162,8,44,35,40,9,222,
11,28,192,249,22,64,195,194,11,27,252,22,155,13,23,200,1,23,202,1,2,
18,247,22,177,7,249,80,158,45,38,23,201,1,80,159,45,35,37,27,250,22,
172,13,196,11,32,0,89,162,8,44,35,40,9,222,11,28,192,249,22,64,195,
194,11,249,247,22,182,13,248,22,65,195,195,27,250,22,155,13,23,198,1,23,
200,1,249,80,158,43,38,23,199,1,2,17,27,250,22,172,13,196,11,32,0,
89,162,8,44,35,40,9,222,11,28,192,249,22,64,195,194,11,249,247,22,187,
4,248,22,65,195,195,249,247,22,187,4,194,195,87,94,28,248,80,158,36,37,
23,195,2,12,250,22,130,9,77,108,111,97,100,47,117,115,101,45,99,111,109,
22,190,4,28,192,192,247,22,178,13,20,14,159,80,158,35,39,250,80,158,38,
40,249,22,27,11,80,158,40,39,22,190,4,28,248,22,138,13,23,198,2,23,
197,1,87,94,23,197,1,247,22,178,13,247,194,250,22,156,13,23,197,1,23,
199,1,249,80,158,42,38,23,198,1,2,17,252,22,156,13,23,199,1,23,201,
1,2,18,247,22,178,7,249,80,158,44,38,23,200,1,80,159,44,35,37,87,
94,23,194,1,27,250,22,173,13,196,11,32,0,89,162,8,44,35,40,9,222,
11,28,192,249,22,65,195,194,11,27,252,22,156,13,23,200,1,23,202,1,2,
18,247,22,178,7,249,80,158,45,38,23,201,1,80,159,45,35,37,27,250,22,
173,13,196,11,32,0,89,162,8,44,35,40,9,222,11,28,192,249,22,65,195,
194,11,249,247,22,183,13,248,22,66,195,195,27,250,22,156,13,23,198,1,23,
200,1,249,80,158,43,38,23,199,1,2,17,27,250,22,173,13,196,11,32,0,
89,162,8,44,35,40,9,222,11,28,192,249,22,65,195,194,11,249,247,22,188,
4,248,22,66,195,195,249,247,22,188,4,194,195,87,94,28,248,80,158,36,37,
23,195,2,12,250,22,131,9,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,161,13,23,201,2,23,200,1,27,247,22,189,4,28,23,
193,2,249,22,162,13,23,203,1,23,195,1,200,90,161,38,36,11,248,22,158,
13,23,194,2,87,94,23,196,1,90,161,36,39,11,28,249,22,162,8,23,196,
36,35,11,28,248,22,162,13,23,201,2,23,200,1,27,247,22,190,4,28,23,
193,2,249,22,163,13,23,203,1,23,195,1,200,90,161,38,36,11,248,22,159,
13,23,194,2,87,94,23,196,1,90,161,36,39,11,28,249,22,163,8,23,196,
2,68,114,101,108,97,116,105,118,101,87,94,23,194,1,2,16,23,194,1,90,
161,36,40,11,247,22,179,13,27,89,162,43,36,49,62,122,111,225,7,5,3,
161,36,40,11,247,22,180,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,46,9,223,5,33,29,23,203,2,27,28,23,195,1,27,249,22,5,
89,162,8,44,36,52,9,225,13,11,9,33,30,23,205,2,27,28,23,196,2,
11,193,28,192,192,28,193,28,23,196,2,28,249,22,166,3,248,22,66,196,248,
22,66,23,199,2,193,11,11,11,11,28,23,193,2,249,80,159,47,54,36,202,
11,193,28,192,192,28,193,28,23,196,2,28,249,22,167,3,248,22,67,196,248,
22,67,23,199,2,193,11,11,11,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,166,3,248,22,66,196,248,22,66,199,193,11,11,11,11,28,192,249,80,
249,22,167,3,248,22,67,196,248,22,67,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,187,13,2,37,23,196,2,28,23,193,2,87,94,23,194,
1,249,22,64,248,22,89,23,196,2,27,248,22,98,23,197,1,27,249,22,187,
13,2,37,23,196,2,28,23,193,2,87,94,23,194,1,249,22,64,248,22,89,
23,196,2,27,248,22,98,23,197,1,27,249,22,187,13,2,37,23,196,2,28,
23,193,2,87,94,23,194,1,249,22,64,248,22,89,23,196,2,248,2,36,248,
22,98,23,197,1,248,22,74,194,248,22,74,194,248,22,74,194,32,39,89,162,
43,36,54,2,19,222,33,40,28,248,22,72,248,22,66,23,195,2,249,22,7,
9,248,22,65,195,91,159,37,11,90,161,37,35,11,27,248,22,66,23,197,2,
28,248,22,72,248,22,66,23,195,2,249,22,7,9,248,22,65,195,91,159,37,
11,90,161,37,35,11,27,248,22,66,23,197,2,28,248,22,72,248,22,66,23,
195,2,249,22,7,9,248,22,65,195,91,159,37,11,90,161,37,35,11,248,2,
39,248,22,66,23,197,2,249,22,7,249,22,64,248,22,65,23,200,1,23,197,
1,195,249,22,7,249,22,64,248,22,65,23,200,1,23,197,1,195,249,22,7,
249,22,64,248,22,65,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,169,4,195,12,250,22,130,9,2,20,
41,36,34,27,249,22,188,13,2,37,23,196,2,28,23,193,2,87,94,23,194,
1,249,22,65,248,22,90,23,196,2,27,248,22,99,23,197,1,27,249,22,188,
13,2,37,23,196,2,28,23,193,2,87,94,23,194,1,249,22,65,248,22,90,
23,196,2,27,248,22,99,23,197,1,27,249,22,188,13,2,37,23,196,2,28,
23,193,2,87,94,23,194,1,249,22,65,248,22,90,23,196,2,248,2,36,248,
22,99,23,197,1,248,22,75,194,248,22,75,194,248,22,75,194,32,39,89,162,
43,36,54,2,19,222,33,40,28,248,22,73,248,22,67,23,195,2,249,22,7,
9,248,22,66,195,91,159,37,11,90,161,37,35,11,27,248,22,67,23,197,2,
28,248,22,73,248,22,67,23,195,2,249,22,7,9,248,22,66,195,91,159,37,
11,90,161,37,35,11,27,248,22,67,23,197,2,28,248,22,73,248,22,67,23,
195,2,249,22,7,9,248,22,66,195,91,159,37,11,90,161,37,35,11,248,2,
39,248,22,67,23,197,2,249,22,7,249,22,65,248,22,66,23,200,1,23,197,
1,195,249,22,7,249,22,65,248,22,66,23,200,1,23,197,1,195,249,22,7,
249,22,65,248,22,66,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,170,4,195,12,250,22,131,9,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,138,2,80,159,41,42,37,248,22,143,14,247,22,184,11,11,28,23,193,2,
192,87,94,23,193,1,27,247,22,122,87,94,250,22,136,2,80,159,42,42,37,
248,22,143,14,247,22,184,11,195,192,250,22,136,2,195,198,66,97,116,116,97,
99,104,251,211,197,198,199,10,28,192,250,22,129,9,11,196,195,248,22,191,8,
194,28,249,22,163,6,194,6,1,1,46,2,16,28,249,22,163,6,194,6,2,
2,46,46,62,117,112,192,28,249,22,164,8,248,22,66,23,200,2,23,197,1,
28,249,22,162,8,248,22,65,23,200,2,23,196,1,251,22,191,8,2,20,6,
22,139,2,80,159,41,42,37,248,22,144,14,247,22,185,11,11,28,23,193,2,
192,87,94,23,193,1,27,247,22,123,87,94,250,22,137,2,80,159,42,42,37,
248,22,144,14,247,22,185,11,195,192,250,22,137,2,195,198,66,97,116,116,97,
99,104,251,211,197,198,199,10,28,192,250,22,130,9,11,196,195,248,22,128,9,
194,28,249,22,164,6,194,6,1,1,46,2,16,28,249,22,164,6,194,6,2,
2,46,46,62,117,112,192,28,249,22,165,8,248,22,67,23,200,2,23,197,1,
28,249,22,163,8,248,22,66,23,200,2,23,196,1,251,22,128,9,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,66,248,22,79,249,22,64,
23,206,1,23,202,1,12,12,247,192,20,14,159,80,159,39,44,37,249,22,64,
248,22,143,14,247,22,184,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,151,4,23,196,1,249,247,22,188,4,
23,198,1,248,22,53,248,22,141,13,23,198,1,87,94,28,28,248,22,137,13,
23,197,2,10,248,22,175,4,23,197,2,12,28,23,198,2,250,22,129,9,11,
32,126,101,58,32,126,101,23,200,1,249,22,2,22,67,248,22,80,249,22,65,
23,206,1,23,202,1,12,12,247,192,20,14,159,80,159,39,44,37,249,22,65,
248,22,144,14,247,22,185,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,152,4,23,196,1,249,247,22,189,4,
23,198,1,248,22,54,248,22,142,13,23,198,1,87,94,28,28,248,22,138,13,
23,197,2,10,248,22,176,4,23,197,2,12,28,23,198,2,250,22,130,9,11,
6,15,15,98,97,100,32,109,111,100,117,108,101,32,112,97,116,104,23,201,2,
250,22,130,9,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,62,23,197,2,249,22,162,
8,248,22,65,23,199,2,2,3,11,248,22,170,4,248,22,89,197,28,28,248,
22,62,23,197,2,249,22,162,8,248,22,65,23,199,2,66,112,108,97,110,101,
250,22,131,9,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,63,23,197,2,249,22,163,
8,248,22,66,23,199,2,2,3,11,248,22,171,4,248,22,90,197,28,28,248,
22,63,23,197,2,249,22,163,8,248,22,66,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,184,11,23,197,1,90,161,36,35,10,249,22,152,4,
27,11,80,158,42,39,22,185,11,23,197,1,90,161,36,35,10,249,22,153,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,52,23,199,2,
27,250,22,138,2,80,159,43,43,37,249,22,64,23,204,2,247,22,178,13,11,
99,116,105,111,110,45,101,114,114,223,6,33,44,27,28,248,22,53,23,199,2,
27,250,22,139,2,80,159,43,43,37,249,22,65,23,204,2,247,22,179,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,55,23,204,2,11,27,251,80,158,47,50,2,20,23,202,
1,28,248,22,72,23,199,2,23,199,2,248,22,65,23,199,2,28,248,22,72,
23,199,2,9,248,22,66,23,199,2,249,22,155,13,23,195,1,28,248,22,72,
23,197,1,87,94,23,197,1,6,7,7,109,97,105,110,46,115,115,249,22,180,
6,23,199,1,6,3,3,46,115,115,28,248,22,157,6,23,199,2,87,94,23,
194,1,27,248,80,159,41,55,36,23,201,2,27,250,22,138,2,80,159,44,43,
37,249,22,64,23,205,2,23,199,2,11,28,23,193,2,192,87,94,23,193,1,
159,44,48,36,248,22,56,23,204,2,11,27,251,80,158,47,50,2,20,23,202,
1,28,248,22,73,23,199,2,23,199,2,248,22,66,23,199,2,28,248,22,73,
23,199,2,9,248,22,67,23,199,2,249,22,156,13,23,195,1,28,248,22,73,
23,197,1,87,94,23,197,1,6,7,7,109,97,105,110,46,115,115,249,22,181,
6,23,199,1,6,3,3,46,115,115,28,248,22,158,6,23,199,2,87,94,23,
194,1,27,248,80,159,41,55,36,23,201,2,27,250,22,139,2,80,159,44,43,
37,249,22,65,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,155,13,23,199,1,249,22,78,249,22,2,32,0,89,162,8,44,36,43,
9,222,33,45,23,200,1,248,22,74,23,200,1,28,248,22,137,13,23,199,2,
87,94,23,194,1,28,248,22,160,13,23,199,2,23,198,2,248,22,74,6,26,
1,22,156,13,23,199,1,249,22,79,249,22,2,32,0,89,162,8,44,36,43,
9,222,33,45,23,200,1,248,22,75,23,200,1,28,248,22,138,13,23,199,2,
87,94,23,194,1,28,248,22,161,13,23,199,2,23,198,2,248,22,75,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,162,8,248,22,65,23,201,2,2,21,27,250,
22,138,2,80,159,43,43,37,249,22,64,23,204,2,247,22,178,13,11,28,23,
111,108,117,116,101,41,28,249,22,163,8,248,22,66,23,201,2,2,21,27,250,
22,139,2,80,159,43,43,37,249,22,65,23,204,2,247,22,179,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,89,23,205,2,11,90,161,36,37,11,28,248,22,72,248,22,91,
23,204,2,28,248,22,72,23,194,2,249,22,189,13,0,8,35,114,120,34,91,
46,93,34,23,196,2,11,10,27,27,28,23,197,2,249,22,78,28,248,22,72,
248,22,91,23,208,2,21,93,6,5,5,109,122,108,105,98,249,22,1,22,78,
249,22,2,80,159,51,56,36,248,22,91,23,211,2,23,197,2,28,248,22,72,
23,196,2,248,22,74,23,197,2,23,195,2,251,80,158,49,50,2,20,23,204,
1,248,22,65,23,198,2,248,22,66,23,198,1,249,22,155,13,23,195,1,28,
23,198,1,87,94,23,196,1,23,197,1,28,248,22,72,23,197,1,87,94,23,
197,1,6,7,7,109,97,105,110,46,115,115,28,249,22,189,13,0,8,35,114,
120,34,91,46,93,34,23,199,2,23,197,1,249,22,180,6,23,199,1,6,3,
3,46,115,115,28,249,22,162,8,248,22,65,23,201,2,64,102,105,108,101,249,
22,162,13,248,22,166,13,248,22,89,23,202,2,248,80,159,42,55,36,23,202,
2,12,87,94,28,28,248,22,137,13,23,194,2,10,248,22,179,7,23,194,2,
87,94,23,200,1,12,28,23,200,2,250,22,129,9,67,114,101,113,117,105,114,
101,249,22,141,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,65,23,199,2,6,0,0,23,203,1,87,
94,23,200,1,250,22,130,9,2,20,249,22,141,7,6,13,13,109,111,100,117,
108,101,32,112,97,116,104,126,97,28,23,198,2,248,22,65,23,199,2,6,0,
0,23,201,2,27,28,248,22,179,7,23,195,2,249,22,184,7,23,196,2,35,
249,22,164,13,248,22,165,13,23,197,2,11,27,28,248,22,179,7,23,196,2,
249,22,184,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,179,7,23,199,2,250,22,7,2,22,249,22,184,7,
23,203,2,37,2,22,248,22,158,13,23,198,2,87,95,23,195,1,23,193,1,
27,28,248,22,179,7,23,200,2,249,22,184,7,23,201,2,38,249,80,158,47,
52,23,197,2,5,0,27,28,248,22,179,7,23,201,2,249,22,184,7,23,202,
2,39,248,22,170,4,23,200,2,27,27,250,22,138,2,80,159,51,42,37,248,
22,143,14,247,22,184,11,11,28,23,193,2,192,87,94,23,193,1,27,247,22,
122,87,94,250,22,136,2,80,159,52,42,37,248,22,143,14,247,22,184,11,195,
192,87,95,28,23,209,1,27,250,22,138,2,23,197,2,197,11,28,23,193,1,
48,36,248,22,90,23,205,2,11,90,161,36,37,11,28,248,22,73,248,22,92,
23,204,2,28,248,22,73,23,194,2,249,22,190,13,0,8,35,114,120,34,91,
46,93,34,23,196,2,11,10,27,27,28,23,197,2,249,22,79,28,248,22,73,
248,22,92,23,208,2,21,93,6,5,5,109,122,108,105,98,249,22,1,22,79,
249,22,2,80,159,51,56,36,248,22,92,23,211,2,23,197,2,28,248,22,73,
23,196,2,248,22,75,23,197,2,23,195,2,251,80,158,49,50,2,20,23,204,
1,248,22,66,23,198,2,248,22,67,23,198,1,249,22,156,13,23,195,1,28,
23,198,1,87,94,23,196,1,23,197,1,28,248,22,73,23,197,1,87,94,23,
197,1,6,7,7,109,97,105,110,46,115,115,28,249,22,190,13,0,8,35,114,
120,34,91,46,93,34,23,199,2,23,197,1,249,22,181,6,23,199,1,6,3,
3,46,115,115,28,249,22,163,8,248,22,66,23,201,2,64,102,105,108,101,249,
22,163,13,248,22,167,13,248,22,90,23,202,2,248,80,159,42,55,36,23,202,
2,12,87,94,28,28,248,22,138,13,23,194,2,10,248,22,180,7,23,194,2,
87,94,23,200,1,12,28,23,200,2,250,22,130,9,67,114,101,113,117,105,114,
101,249,22,142,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,66,23,199,2,6,0,0,23,203,1,87,
94,23,200,1,250,22,131,9,2,20,249,22,142,7,6,13,13,109,111,100,117,
108,101,32,112,97,116,104,126,97,28,23,198,2,248,22,66,23,199,2,6,0,
0,23,201,2,27,28,248,22,180,7,23,195,2,249,22,185,7,23,196,2,35,
249,22,165,13,248,22,166,13,23,197,2,11,27,28,248,22,180,7,23,196,2,
249,22,185,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,180,7,23,199,2,250,22,7,2,22,249,22,185,7,
23,203,2,37,2,22,248,22,159,13,23,198,2,87,95,23,195,1,23,193,1,
27,28,248,22,180,7,23,200,2,249,22,185,7,23,201,2,38,249,80,158,47,
52,23,197,2,5,0,27,28,248,22,180,7,23,201,2,249,22,185,7,23,202,
2,39,248,22,171,4,23,200,2,27,27,250,22,139,2,80,159,51,42,37,248,
22,144,14,247,22,185,11,11,28,23,193,2,192,87,94,23,193,1,27,247,22,
123,87,94,250,22,137,2,80,159,52,42,37,248,22,144,14,247,22,185,11,195,
192,87,95,28,23,209,1,27,250,22,139,2,23,197,2,197,11,28,23,193,1,
12,87,95,27,27,28,248,22,17,80,159,51,45,37,80,159,50,45,37,247,22,
19,250,22,25,248,22,23,23,197,2,80,159,53,44,37,23,196,1,27,248,22,
143,14,247,22,184,11,249,22,3,83,158,39,20,97,94,89,162,8,44,36,54,
144,14,247,22,185,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,159,
50,45,37,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,136,2,23,197,1,197,10,
12,28,28,248,22,179,7,23,202,1,11,27,248,22,157,6,23,208,2,28,192,
192,28,248,22,62,23,208,2,249,22,162,8,248,22,65,23,210,2,2,21,11,
250,22,136,2,80,159,50,43,37,28,248,22,157,6,23,210,2,249,22,64,23,
211,1,248,80,159,53,55,36,23,213,1,87,94,23,210,1,249,22,64,23,211,
1,247,22,178,13,252,22,181,7,23,208,1,23,207,1,23,205,1,23,203,1,
43,35,50,9,227,14,9,8,4,3,33,48,250,22,137,2,23,197,1,197,10,
12,28,28,248,22,180,7,23,202,1,11,27,248,22,158,6,23,208,2,28,192,
192,28,248,22,63,23,208,2,249,22,163,8,248,22,66,23,210,2,2,21,11,
250,22,137,2,80,159,50,43,37,28,248,22,158,6,23,210,2,249,22,65,23,
211,1,248,80,159,53,55,36,23,213,1,87,94,23,210,1,249,22,65,23,211,
1,247,22,179,13,252,22,182,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,150,4,248,80,159,37,49,37,247,22,184,11,248,22,188,4,80,159,
36,36,37,248,22,175,12,80,159,36,41,36,159,35,20,103,159,35,16,1,11,
95,248,22,151,4,248,80,159,37,49,37,247,22,185,11,248,22,189,4,80,159,
36,36,37,248,22,176,12,80,159,36,41,36,159,35,20,103,159,35,16,1,11,
16,0,83,158,41,20,100,143,66,35,37,98,111,111,116,29,11,11,11,11,10,
10,36,80,158,35,35,20,103,159,39,16,19,2,1,2,2,30,2,4,72,112,
97,116,104,45,115,116,114,105,110,103,63,10,30,2,4,75,112,97,116,104,45,
@ -543,12 +543,12 @@
43,36,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,176,7,69,115,111,45,115,117,102,
80,159,35,54,36,83,158,35,16,2,248,22,177,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,2,223,
0,33,35,80,159,35,36,36,83,158,35,16,2,32,0,89,162,8,44,36,41,
2,6,222,192,80,159,35,41,36,83,158,35,16,2,247,22,125,80,159,35,42,
36,83,158,35,16,2,247,22,124,80,159,35,43,36,83,158,35,16,2,247,22,
60,80,159,35,44,36,83,158,35,16,2,248,22,18,74,109,111,100,117,108,101,
2,6,222,192,80,159,35,41,36,83,158,35,16,2,247,22,126,80,159,35,42,
36,83,158,35,16,2,247,22,125,80,159,35,43,36,83,158,35,16,2,247,22,
61,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,44,2,13,222,33,41,80,159,35,48,36,83,158,35,16,2,89,162,8,

View File

@ -137,6 +137,7 @@ static Scheme_Object *procedure_arity(int argc, Scheme_Object *argv[]);
static Scheme_Object *procedure_arity_p(int argc, Scheme_Object *argv[]);
static Scheme_Object *procedure_arity_includes(int argc, Scheme_Object *argv[]);
static Scheme_Object *procedure_reduce_arity(int argc, Scheme_Object *argv[]);
static Scheme_Object *procedure_rename(int argc, Scheme_Object *argv[]);
static Scheme_Object *procedure_equal_closure_p(int argc, Scheme_Object *argv[]);
static Scheme_Object *primitive_p(int argc, Scheme_Object *argv[]);
static Scheme_Object *primitive_closure_p(int argc, Scheme_Object *argv[]);
@ -497,6 +498,11 @@ scheme_init_fun (Scheme_Env *env)
"procedure-reduce-arity",
2, 2),
env);
scheme_add_global_constant("procedure-rename",
scheme_make_prim_w_arity(procedure_rename,
"procedure-rename",
2, 2),
env);
scheme_add_global_constant("procedure-closure-contents-eq?",
scheme_make_folding_prim(procedure_equal_closure_p,
"procedure-closure-contents-eq?",
@ -3133,15 +3139,21 @@ Scheme_Object *scheme_proc_struct_name_source(Scheme_Object *a)
Scheme_Object *b;
while (SCHEME_PROC_STRUCTP(a)) {
/* Either use struct name, or extract proc, depending
whether it's method-style */
int is_method;
b = scheme_extract_struct_procedure(a, -1, NULL, &is_method);
if (!is_method && SCHEME_PROCP(b)) {
a = b;
SCHEME_USE_FUEL(1);
} else
break;
if (scheme_reduced_procedure_struct
&& scheme_is_struct_instance(scheme_reduced_procedure_struct, a)
&& SCHEME_TRUEP(((Scheme_Structure *)a)->slots[2])) {
return a;
} else {
/* Either use struct name, or extract proc, depending
whether it's method-style */
int is_method;
b = scheme_extract_struct_procedure(a, -1, NULL, &is_method);
if (!is_method && SCHEME_PROCP(b)) {
a = b;
SCHEME_USE_FUEL(1);
} else
break;
}
}
return a;
@ -3200,15 +3212,28 @@ const char *scheme_get_proc_name(Scheme_Object *p, int *len, int for_error)
Scheme_Object *other;
other = scheme_proc_struct_name_source(p);
if (SAME_OBJ(other, p)) {
Scheme_Object *sym;
sym = SCHEME_STRUCT_NAME_SYM(p);
*len = SCHEME_SYM_LEN(sym);
s = (char *)scheme_malloc_atomic((*len) + 8);
memcpy(s, "struct ", 7);
memcpy(s + 7, scheme_symbol_val(sym), *len);
(*len) += 7;
s[*len] = 0;
return s;
if (scheme_reduced_procedure_struct
&& scheme_is_struct_instance(scheme_reduced_procedure_struct, p)) {
/* It must have a name: */
Scheme_Object *sym = ((Scheme_Structure *)p)->slots[2];
if (for_error < 0) {
s = (char *)sym;
*len = -1;
} else {
*len = SCHEME_SYM_LEN(sym);
s = scheme_symbol_val(sym);
}
} else {
Scheme_Object *sym;
sym = SCHEME_STRUCT_NAME_SYM(p);
*len = SCHEME_SYM_LEN(sym);
s = (char *)scheme_malloc_atomic((*len) + 8);
memcpy(s, "struct ", 7);
memcpy(s + 7, scheme_symbol_val(sym), *len);
(*len) += 7;
s[*len] = 0;
return s;
}
} else {
p = other;
goto top;
@ -3288,8 +3313,16 @@ static Scheme_Object *object_name(int argc, Scheme_Object **argv)
{
Scheme_Object *a = argv[0];
if (SCHEME_PROC_STRUCTP(a))
if (SCHEME_PROC_STRUCTP(a)) {
a = scheme_proc_struct_name_source(a);
if (SCHEME_STRUCTP(a)
&& scheme_reduced_procedure_struct
&& scheme_is_struct_instance(scheme_reduced_procedure_struct, a)) {
/* It must have a name: */
return ((Scheme_Structure *)a)->slots[2];
}
}
if (SCHEME_STRUCTP(a)) {
return SCHEME_STRUCT_NAME_SYM(a);
@ -3417,18 +3450,11 @@ static int is_arity(Scheme_Object *a, int at_least_ok, int list_ok)
return 0;
}
static Scheme_Object *procedure_reduce_arity(int argc, Scheme_Object *argv[])
static void init_reduced_proc_struct()
{
Scheme_Object *orig, *req, *oa, *ra, *ol, *lra, *ara, *prev, *pr, *tmp, *a[3];
if (!SCHEME_PROCP(argv[0]))
scheme_wrong_type("procedure-reduce-arity", "procedure", 0, argc, argv);
if (!is_arity(argv[1], 1, 1)) {
scheme_wrong_type("procedure-reduce-arity", "arity", 1, argc, argv);
}
if (!scheme_reduced_procedure_struct) {
Scheme_Object *pr, *orig;
REGISTER_SO(scheme_reduced_procedure_struct);
pr = scheme_get_param(scheme_current_config(), MZCONFIG_INSPECTOR);
while (((Scheme_Inspector *)pr)->superior->superior) {
@ -3438,18 +3464,52 @@ static Scheme_Object *procedure_reduce_arity(int argc, Scheme_Object *argv[])
scheme_reduced_procedure_struct = scheme_make_proc_struct_type(NULL,
NULL,
pr,
2, 0,
3, 0,
scheme_false,
scheme_make_integer(0),
NULL);
}
}
static Scheme_Object *make_reduced_proc(Scheme_Object *proc, Scheme_Object *aty, Scheme_Object *name)
{
Scheme_Object *a[3];
if (SCHEME_STRUCTP(proc)
&& scheme_is_struct_instance(scheme_reduced_procedure_struct, proc)) {
/* Don't need the intermediate layer */
if (!name)
name = ((Scheme_Structure *)proc)->slots[2];
proc = ((Scheme_Structure *)proc)->slots[0];
}
a[0] = proc;
a[1] = aty;
a[2] = (name ? name : scheme_false);
return scheme_make_struct_instance(scheme_reduced_procedure_struct, 3, a);
}
static Scheme_Object *procedure_reduce_arity(int argc, Scheme_Object *argv[])
{
Scheme_Object *orig, *req, *aty, *oa, *ra, *ol, *lra, *ara, *prev, *pr, *tmp;
if (!SCHEME_PROCP(argv[0]))
scheme_wrong_type("procedure-reduce-arity", "procedure", 0, argc, argv);
if (!is_arity(argv[1], 1, 1)) {
scheme_wrong_type("procedure-reduce-arity", "arity", 1, argc, argv);
}
init_reduced_proc_struct();
/* Check whether current arity covers the requested arity. This is
a bit complicated, because both the source and target can be
lists that include arity-at-least records. */
orig = get_or_check_arity(argv[0], -1, NULL);
req = argv[1];
aty = clone_arity(argv[1]);
req = aty;
if (!SCHEME_PAIRP(orig) && !SCHEME_NULLP(orig))
orig = scheme_make_pair(orig, scheme_null);
@ -3574,12 +3634,23 @@ static Scheme_Object *procedure_reduce_arity(int argc, Scheme_Object *argv[])
}
/* Construct a procedure that has the given arity. */
return make_reduced_proc(argv[0], aty, NULL);
}
a[0] = argv[0];
pr = clone_arity(argv[1]);
a[1] = pr;
static Scheme_Object *procedure_rename(int argc, Scheme_Object *argv[])
{
Scheme_Object *aty;
return scheme_make_struct_instance(scheme_reduced_procedure_struct, 2, a);
if (!SCHEME_PROCP(argv[0]))
scheme_wrong_type("procedure-rename", "procedure", 0, argc, argv);
if (!SCHEME_SYMBOLP(argv[1]))
scheme_wrong_type("procedure-rename", "symbol", 1, argc, argv);
init_reduced_proc_struct();
aty = get_or_check_arity(argv[0], -1, NULL);
return make_reduced_proc(argv[0], aty, argv[1]);
}
static Scheme_Object *procedure_equal_closure_p(int argc, Scheme_Object *argv[])

View File

@ -1977,20 +1977,28 @@ print(Scheme_Object *obj, int notdisplay, int compact, Scheme_Hash_Table *ht,
src = obj;
if (SAME_OBJ(src, obj)) {
int l;
const char *s;
Scheme_Object *name;
print_utf8_string(pp, "#<", 0, 2); /* used to have "struct:" prefix */
{
int l;
const char *s;
Scheme_Object *name = SCHEME_STRUCT_NAME_SYM(obj);
s = scheme_symbol_name_and_size(name, (unsigned int *)&l,
(pp->print_struct
? SCHEME_SNF_FOR_TS
: (pp->can_read_pipe_quote
? SCHEME_SNF_PIPE_QUOTE
: SCHEME_SNF_NO_PIPE_QUOTE)));
print_utf8_string(pp, s, 0, l);
}
if (scheme_reduced_procedure_struct
&& scheme_is_struct_instance(scheme_reduced_procedure_struct, obj)) {
/* Since scheme_proc_struct_name_source() didn't redirect, this one
must have a name. */
print_utf8_string(pp, "procedure:", 0, 10);
name = ((Scheme_Structure *)obj)->slots[2];
} else {
name = SCHEME_STRUCT_NAME_SYM(obj);
}
s = scheme_symbol_name_and_size(name, (unsigned int *)&l,
(pp->print_struct
? SCHEME_SNF_FOR_TS
: (pp->can_read_pipe_quote
? SCHEME_SNF_PIPE_QUOTE
: SCHEME_SNF_NO_PIPE_QUOTE)));
print_utf8_string(pp, s, 0, l);
PRINTADDRESS(pp, obj);
print_utf8_string(pp, ">", 0, 1);
} else {

View File

@ -13,7 +13,7 @@
#define USE_COMPILED_STARTUP 1
#define EXPECTED_PRIM_COUNT 944
#define EXPECTED_PRIM_COUNT 945
#ifdef MZSCHEME_SOMETHING_OMITTED
# undef USE_COMPILED_STARTUP

View File

@ -13,12 +13,12 @@
consistently.)
*/
#define MZSCHEME_VERSION "4.1.3.7"
#define MZSCHEME_VERSION "4.1.3.8"
#define MZSCHEME_VERSION_X 4
#define MZSCHEME_VERSION_Y 1
#define MZSCHEME_VERSION_Z 3
#define MZSCHEME_VERSION_W 7
#define MZSCHEME_VERSION_W 8
#define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y)
#define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W)