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
DIRECTORY
IPMaster USING [Op, SequenceType],
Rope USING [ROPE];
IPScan: CEDAR DEFINITIONS
~ 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: BOOLFALSE] RETURNS [quit: BOOLFALSE];
ScanRope: PROC [ip: ROPE, ops: LIST OF Op ← NIL, seqs: LIST OF Seq ← NIL, nums: BOOLFALSE, 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;
END.