signature CPP = sig type t type tkPos type tkExpectedValue exception TkExpected of tkExpectedValue datatype tkExp = Tk of Tokenizer.token | Id | NumConst | StrLiteral | UnOp | BinOp | Op val create: string -> t val getToken: t -> Tokenizer.token * t val getLastPos: t -> tkPos val prepAndRaise: t -> tkPos -> tkExp list -> 'a val tkExpectedPrint: tkExpectedValue -> unit val debugPrint: string -> unit end