} // ListingShape public static void GenerateListing(TextReader src, TextWriter lst, ListingShape listShape) { //-----------------------------------|---------------------------------------- ErrorWarn eow = null; int lnr, skip; String srcLine; ((StreamReader)src).BaseStream.Seek(0, SeekOrigin.Begin); eow = eowl; if (eow != null) { while (eow != null && eow.info.line < 1) { PutMsg(lst, eow); eow = eow.next; } // while lst.WriteLine(); } // if lnr = 1; for (; ;) { if (listShape == ListingShape.shortListing) { if (eow == null) { lst.WriteLine("..."); break; } // if skip = eow.info.line - lnr; if (skip > 0) { lst.WriteLine("..."); lnr = eow.info.line; while (skip-- > 0) { srcLine = src.ReadLine(); if (srcLine == null) { break; } } // while } // if } // if srcLine = src.ReadLine(); if (srcLine == null) { break; } lst.WriteLine("{0,5}| {1}", lnr, srcLine); while (eow != null && eow.info.line == lnr) { PutMsg(lst, eow); eow = eow.next; } // while lnr++; } // for lst.WriteLine(); while (eow != null) { PutMsg(lst, eow); eow = eow.next; } // while lst.WriteLine(); lst.WriteLine("error(s) and warning(s):"); lst.WriteLine("-----------------------"); lst.WriteLine(); lst.WriteLine("{0,5} lexical error(s) ", NumOfLexErrors()); lst.WriteLine("{0,5} syntax error(s) ", NumOfSynErrors()); lst.WriteLine("{0,5} semantic error(s)", NumOfSemErrors()); lst.WriteLine("{0,5} warning(s) ", NumOfWarnings()); } // GenerateListing
} // ListingShape public static void GenerateListing(TextReader src, TextWriter lst, ListingShape listShape) { //-----------------------------------|---------------------------------------- ErrorWarn eow = null; int lnr, skip; String srcLine; ((StreamReader)src).BaseStream.Seek(0, SeekOrigin.Begin); eow = eowl; if (eow != null) { while (eow != null && eow.info.line < 1) { PutMsg(lst, eow); eow = eow.next; } // while lst.WriteLine(); } // if lnr = 1; for (; ; ) { if (listShape == ListingShape.shortListing) { if (eow == null) { lst.WriteLine("..."); break; } // if skip = eow.info.line - lnr; if (skip > 0) { lst.WriteLine("..."); lnr = eow.info.line; while (skip-- > 0) { srcLine = src.ReadLine(); if (srcLine == null) break; } // while } // if } // if srcLine = src.ReadLine(); if (srcLine == null) break; lst.WriteLine("{0,5}| {1}", lnr, srcLine); while (eow != null && eow.info.line == lnr) { PutMsg(lst, eow); eow = eow.next; } // while lnr++; } // for lst.WriteLine(); while (eow != null) { PutMsg(lst, eow); eow = eow.next; } // while lst.WriteLine(); lst.WriteLine("error(s) and warning(s):"); lst.WriteLine("-----------------------"); lst.WriteLine(); lst.WriteLine("{0,5} lexical error(s) ", NumOfLexErrors()); lst.WriteLine("{0,5} syntax error(s) ", NumOfSynErrors()); lst.WriteLine("{0,5} semantic error(s)", NumOfSemErrors()); lst.WriteLine("{0,5} warning(s) ", NumOfWarnings()); } // GenerateListing