|
|
@@ -13,6 +13,7 @@ MODULE -->Grammar;
|
|
|
RefineActualCount, RefineActualGet, SetTwoPhase;
|
|
|
IMPORT
|
|
|
Strings, Storage, SYSTEM, FileIO, SymTab, QbeGen, AST, Lower;
|
|
|
+ FROM libc IMPORT exit;
|
|
|
(* and any others needed *)
|
|
|
|
|
|
TYPE
|
|
|
@@ -430,7 +431,8 @@ MODULE -->Grammar;
|
|
|
END;
|
|
|
IF nFiles = 0 THEN
|
|
|
FileIO.WriteString(FileIO.StdOut, "No input file specified");
|
|
|
- HALT
|
|
|
+ FileIO.WriteLn(FileIO.StdOut);
|
|
|
+ exit(2)
|
|
|
END;
|
|
|
|
|
|
BaseName(files[nFiles - 1], progName);
|
|
|
@@ -445,9 +447,10 @@ MODULE -->Grammar;
|
|
|
Strings.Assign(files[f], sourceName);
|
|
|
FileIO.Open(src, sourceName, FALSE);
|
|
|
IF NOT FileIO.Okay THEN
|
|
|
- FileIO.WriteString(FileIO.StdOut, "Could not open input file");
|
|
|
+ FileIO.WriteString(FileIO.StdOut, "Could not open input file: ");
|
|
|
+ FileIO.WriteString(FileIO.StdOut, sourceName);
|
|
|
FileIO.WriteLn(FileIO.StdOut);
|
|
|
- HALT
|
|
|
+ exit(2)
|
|
|
END;
|
|
|
ChangeExtension(sourceName, ".LST", listName);
|
|
|
FileIO.Open(lst, listName, TRUE);
|
|
|
@@ -487,8 +490,13 @@ MODULE -->Grammar;
|
|
|
|
|
|
Lower.EndSession;
|
|
|
|
|
|
- IF bad OR NOT SymTab.HaveProgram()
|
|
|
- THEN FileIO.WriteString(FileIO.StdOut, "Incorrect source")
|
|
|
- ELSE FileIO.WriteString(FileIO.StdOut, "Parsed correctly")
|
|
|
+ IF bad OR NOT SymTab.HaveProgram() THEN
|
|
|
+ FileIO.WriteString(FileIO.StdOut, "Incorrect source");
|
|
|
+ FileIO.WriteLn(FileIO.StdOut);
|
|
|
+ exit(1)
|
|
|
+ ELSE
|
|
|
+ FileIO.WriteString(FileIO.StdOut, "Parsed correctly");
|
|
|
+ FileIO.WriteLn(FileIO.StdOut);
|
|
|
+ exit(0)
|
|
|
END
|
|
|
END -->Grammar.
|