;;; $Id: char-parser.def,v 1.2 1998/11/03 18:06:54 leavens Exp $

trustme!

(deftype token? (-> (datum) boolean))
(deftype make-token (-> (?s ?t) (token ?s ?t)))
(deftype token->class (-> ((token ?t ?s)) ?t))
(deftype token->data (-> ((token ?s ?t)) ?t))

(deftype scanner-answer? (-> (datum) boolean))
(deftype make-scanner-answer (-> (?s ?t) (scanner-answer ?s ?t)))
(deftype scanner-answer->token (-> ((scanner-answer ?t ?s)) ?t))
(deftype scanner-answer->unscanned (-> ((scanner-answer ?s ?t)) ?t))

(deftype parser-answer? (-> (datum) boolean))
(deftype make-parser-answer (-> (?s ?t) (parser-answer ?s ?t)))
(deftype parser-answer->tree (-> ((parser-answer ?t ?s)) ?t))
(deftype parser-answer->unparsed (-> ((parser-answer ?s ?t)) ?t))

(deftype character-string-parser (-> (?t) parsed-form))
(deftype parse-token-seq (-> ((-> ((token symbol ?t)) ?s) (list (token symbol ?t))) ?s))
(deftype parse-once (-> ((-> (?t) ?s) (list ?t)) ?u))
(deftype parse-form (-> ((token ?s ?t)) parsed-form))
(deftype parse-exp (-> ((token ?s ?t)) parsed-exp))
