DIRECTORY ParserTypeDefs; ParserTypes: CEDAR PROGRAM EXPORTS ParserTypeDefs = BEGIN OPEN ParserTypeDefs; InitTypes: PUBLIC PROCEDURE RETURNS [BOOLEAN] = BEGIN RETURN[TRUE]; END; FinishTypes: PUBLIC PROCEDURE RETURNS [BOOLEAN] = BEGIN RETURN[TRUE]; END; PathLength: PUBLIC PROCEDURE [a: Path] RETURNS [CARDINAL] = BEGIN RETURN[a.length]; END; AllocatePath: PUBLIC PROCEDURE RETURNS [Path] = {RETURN[NEW[PathRecord _ [first: NIL, last: NIL, length: 0]]]}; FreePath: PUBLIC PROCEDURE [a: Path] = {NULL}; AppendPoint: PUBLIC PROCEDURE [a: Path, p: Point] = BEGIN IF a.first = NIL THEN {a.first _ a.last _ CONS[p, NIL]; a.length _ 1} ELSE {a.last.rest _ CONS[p, NIL]; a.last _ a.last.rest; a.length _ a.length+1}; END; CopyPath: PUBLIC PROCEDURE [from, to: Path] = BEGIN IF from = to THEN RETURN; FOR temp: PointList _ from.first, temp.rest UNTIL temp = NIL DO AppendPoint[to, temp.first]; ENDLOOP; END; RemovePoint: PUBLIC PROCEDURE [a: Path] RETURNS [BOOLEAN, Point] = BEGIN ans: Point; IF a.first = NIL THEN RETURN [FALSE, ans] ELSE BEGIN ans _ a.first.first; a.first _ a.first.rest; IF a.first = NIL THEN a.last _ NIL; a.length _ a.length - 1; RETURN [TRUE, ans]; END; END; AllocateTList: PUBLIC PROCEDURE RETURNS [TList] = {RETURN[NEW[TRecord _ [first: NIL, last: NIL, length: 0]]]}; FreeTList: PUBLIC PROCEDURE [a: TList] = {NULL}; AppendTList: PUBLIC PROCEDURE [a: TList, p: TEntry] = BEGIN IF a.first = NIL THEN {a.first _ a.last _ CONS[p, NIL]; a.length _ 1} ELSE {a.last.rest _ CONS[p, NIL]; a.last _ a.last.rest; a.length _ a.length+1}; END; RemoveTList: PUBLIC PROCEDURE [a: TList] RETURNS [BOOLEAN, TEntry] = BEGIN ans: TEntry; IF a.first = NIL THEN RETURN [FALSE, ans] ELSE BEGIN ans _ a.first.first; a.first _ a.first.rest; IF a.first = NIL THEN a.last _ NIL; a.length _ a.length - 1; RETURN [TRUE, ans]; END; END; TListLength: PUBLIC PROCEDURE [a: TList] RETURNS [CARDINAL] = BEGIN RETURN[a.length]; END; END. ¼File ParserTypes.mesa March 5, 1980 5:04 PM Converte to Mesa 6 October 20, 1980 4:20 PM October 20, 1980 4:20 PM by MN Last Edited by: McCreight, January 28, 1985 4:06:15 pm PST Ê(˜Jšœ™Jšœ™Jšœ,™,Jšœ™Jšœ:™:J˜šÏk ˜ J˜—J˜Jšœ œœœ˜3˜Jšœœ˜J˜š Ïn œœ œœœ˜/Jš˜Jšœœ˜ Jšœ˜J˜—š ž œœ œœœ˜1Jš˜Jšœœ˜ Jšœ˜J˜—š ž œœ œ œœ˜;Jš˜Jšœ ˜Jšœ˜J˜—šž œœ œœ ˜/Jš œœœœœ˜?J˜—šžœœ œœ˜.J˜—šž œœ œ˜3Jš˜šœ œ˜Jšœœœ˜/—š˜Jšœœœ0˜J—Jšœ˜J˜—šžœœ œ˜-Jš˜Jšœ œœ˜šœ)œœ˜?J˜Jšœ˜—Jšœ˜J˜—š ž œœ œ œœ ˜BJš˜J˜ š œ œœœœ˜.Jš˜J˜Jšœ˜Jšœ œœ œ˜#J˜Jšœœ˜Jšœ˜—Jšœ˜J˜J˜—šž œœ œœ ˜1Jš œœœœœ˜