/// <summary> /// Parses a Fast program from given stream. /// </summary> public static MonaProgram Parse(Stream stream, string filename = null) { try { var parser = new MonaParser(stream, filename); bool ok = parser.Parse(); if (ok) { parser.program.Typecheck(); return(parser.program); } else { throw new MonaParseException(); } } catch (Exception e) { if (e is MonaParseException) { throw e; } else { throw new MonaParseException("unexpected error", e); } } }
/// <summary> /// Parses a Fast program from given stream. /// </summary> public static Program Parse(Stream stream, string filename = null) { var parser = new MonaParser(stream, filename); bool ok = parser.Parse(); if (ok) { return(parser.program); } else { throw new MonaParseException("Error: mona parser failed", filename); } }