-(* L1 Compiler
+(* L5 Compiler
* Parsing
* Author: Kaustuv Chaudhuri <kaustuv+@cs.cmu.edu>
* Modified: Frank Pfenning <fp@cs.cmu.edu>
structure Parse :> PARSE =
struct
- structure L1LrVals = L1LrValsFn (structure Token = LrParser.Token)
- structure L1Lex = L1LexFn (structure Tokens = L1LrVals.Tokens)
- structure L1Parse = Join (structure ParserData = L1LrVals.ParserData
- structure Lex = L1Lex
+ structure L5LrVals = L5LrValsFn (structure Token = LrParser.Token)
+ structure L5Lex = L5LexFn (structure Tokens = L5LrVals.Tokens)
+ structure L5Parse = Join (structure ParserData = L5LrVals.ParserData
+ structure Lex = L5Lex
structure LrParser = LrParser)
(* Main parsing function *)
val _ = ParseState.setfile filename (* start at position 0 in filename *)
fun parseerror (s, p1, p2) = ErrorMsg.error (ParseState.ext (p1,p2)) s
val lexer = LrParser.Stream.streamify
- (L1Lex.makeLexer (fn _ => TextIO.input instream))
+ (L5Lex.makeLexer (fn _ => TextIO.input instream))
(* 0 = no error correction, 15 = reasonable lookahead for correction *)
- val (absyn, _) = L1Parse.parse(0, lexer, parseerror, ())
+ val (absyn, _) = L5Parse.parse(0, lexer, parseerror, ())
val _ = if !ErrorMsg.anyErrors
then raise ErrorMsg.Error
else ()
in
absyn
end)
- handle L1Lex.LexError => ( ErrorMsg.error NONE "lexer error" ;
+ handle (*L5Lex.LexError => ( ErrorMsg.error NONE "lexer error" ;
raise ErrorMsg.Error )
- | LrParser.ParseError => raise ErrorMsg.Error (* always preceded by msg *)
+ |*) LrParser.ParseError => raise ErrorMsg.Error (* always preceded by msg *)
| e as IO.Io _ => ( ErrorMsg.error NONE (exnMessage e);
raise ErrorMsg.Error )