INTERFACEJump is introduced in the flatten step. jumps are unconditional and have code = -2PDATrans ; CONST Brand = "PDATrans"; TYPE ActKind = {Shift, Reduce, Error, Accept, ShiftReduce, ShiftAccept, Jump};
T = RECORD code: INTEGER; (* -1 means "set default", else a symbol code *) kind: ActKind; target: INTEGER; (* reduce rule number, or shift state number, or 0 *) END; PROCEDURE Compare(a, b: T): [-1..1]; PROCEDURE Equal(a, b: T): BOOLEAN; PROCEDURE Hash(a: T): INTEGER; PROCEDURE Format(a: T): TEXT; PROCEDURE PreShift(a: T; code: INTEGER): T; END PDATrans.