signature PARSER =
sig
structure Token : TOKEN
structure Stream : STREAM
exception ParseError
type pos (* pos is the type of line numbers *)
type result (* value returned by the parser *)
type arg (* type of the user-supplied argument *)
type svalue (* the types of semantic values *)
val makeLexer : (int -> string) ->
(svalue,pos) Token.token Stream.stream
val parse :
int * ((svalue,pos) Token.token Stream.stream) *
(string * pos * pos -> unit) * arg ->
result * (svalue,pos) Token.token Stream.stream
val sameToken :
(svalue,pos) Token.token * (svalue,pos) Token.token ->
bool
end
or the signature ARG_PARSER if you used