home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.cs.arizona.edu
/
ftp.cs.arizona.edu.tar
/
ftp.cs.arizona.edu
/
icon
/
historic
/
v941.tgz
/
icon.v941src.tar
/
icon.v941src
/
ipl
/
gprogs
/
xformpat.icn
< prev
next >
Wrap
Text File
|
2000-07-29
|
1KB
|
53 lines
############################################################################
#
# File: xformpat.icn
#
# Subject: Program to apply transformation to patterns
#
# Author: Ralph E. Griswold
#
# Date: August 12, 1993
#
############################################################################
#
# This file is in the public domain.
#
############################################################################
#
# This program takes patterns from standard input and applies a
# transformation to each one, writing the results to standard output.
# The transformation to be applied is given in terms of command-line
# arguments, with the transformation first, followed by any arguments,
# as in
#
# xformpat center 32 32
#
# which would attempt to produce a 32x32 centered pattern from each
# pattern in standard input.
#
# Warning: Some transformations can fail. In cae of failure, no
# pattern is written.
#
############################################################################
#
# Links: patxform
#
############################################################################
invocable all
link patxform
procedure main(args)
local xform, rows
xform := proc("p" || args[1]) | stop("** invalid transformation")
while rows := pat2rows(readpatt()) do {
get(args) # a trick here; there's always an extra
push(args, rows)
write(rows2pat(xform ! args))
}
end