Handbook
Glossary
compressed-block ( literals distances reader output -- )
Vocabulary
compression
.
deflate
.
private
Inputs
literals
an
object
distances
an
object
reader
an
object
output
an
object
Outputs
None
Definition
USING:
compression.deflate
kernel
math
sequences
;
IN:
compression.deflate.private
::
compressed-block
( literals distances reader output -- )
f
:>
done!
[
done
not
]
[
literals reader
read-code
:>
symbol symbol 256
<
[
symbol output
push
]
[
symbol 256
=
[
t
done!
]
[
symbol 285
>
[
"reserved length code"
invalid-deflate
]
when
symbol 257
-
:>
i i
length-bases
nth
i
length-extras
nth
reader
read-bits
+
:>
n distances reader
read-code
:>
d d 30
>=
[
"reserved distance code"
invalid-deflate
]
when
d
distance-bases
nth
d
distance-extras
nth
reader
read-bits
+
:>
distance n distance output
copy-match
]
if
]
if
]
while
;