IPScan.mesa
Copyright Ó 1988 by Xerox Corporation. All rights reserved.
Eric Nickell, November 22, 1988 4:00:13 am PST
Bob Coleman, April 23, 1990 4:46:17 pm PDT
~
BEGIN
Op: TYPE ~ IPMaster.Op;
ROPE: TYPE ~ Rope.ROPE;
Seq: TYPE ~ IPMaster.SequenceType;
IPRopeFromName:
PROC [xeroxName:
ROPE]
RETURNS [header, ip:
ROPE];
xeroxName is a file name.
header is the Interpress header
ip is (probably) a RopeFile of the chars in the master
Neither header nor ip contain the delimiting space character
ScanProc: TYPE ~ PROC [min, max: INT, op: Op ← nil, seq: Seq ← nil, num: INTEGER ← 0, punt: BOOL ← FALSE] RETURNS [quit: BOOL ← FALSE];
ScanRope:
PROC [ip:
ROPE, ops:
LIST
OF Op ←
NIL, seqs:
LIST
OF Seq ←
NIL, nums:
BOOL ←
FALSE, action: ScanProc];
Scan through the given master, calling back action for the desired ops, seqs, or small numbers.
ip is the rope containing the master, a la IPRopeFromName.
allOps: READONLY LIST OF Op;
allSeqs: READONLY LIST OF Seq;