cleaned up SystemTasks.hs

This commit is contained in:
Ethan Sifferman 2024-01-25 11:57:38 -08:00 committed by Zachary Snow
parent 4181b94c0f
commit 31ffa439f7
3 changed files with 14 additions and 9 deletions

View File

@ -14,34 +14,36 @@ convert =
map $ traverseDescriptions $ traverseModuleItems $
traverseStmts $ traverseNestedStmts convertStmt
timeCall :: Expr
timeCall = Call (Ident "$time") (Args [] [])
convertStmt :: Stmt -> Stmt
convertStmt (Subroutine (Ident "$info") args) =
Block Seq "" [] [
(Subroutine (Ident "$write") (Args [(String "[%0t] Info: "), (Call (Ident "$time") (Args [] []))] [])),
(Subroutine (Ident "$write") (Args [(String "[%0t] Info: "), timeCall] [])),
(Subroutine (Ident "$display") args)
]
convertStmt (Subroutine (Ident "$warning") args) =
Block Seq "" [] [
(Subroutine (Ident "$write") (Args [(String "[%0t] Warning: "), (Call (Ident "$time") (Args [] []))] [])),
(Subroutine (Ident "$write") (Args [(String "[%0t] Warning: "), timeCall] [])),
(Subroutine (Ident "$display") args)
]
convertStmt (Subroutine (Ident "$error") args) =
Block Seq "" [] [
(Subroutine (Ident "$write") (Args [(String "[%0t] Error: "), (Call (Ident "$time") (Args [] []))] [])),
(Subroutine (Ident "$write") (Args [(String "[%0t] Error: "), timeCall] [])),
(Subroutine (Ident "$display") args)
]
convertStmt (Subroutine (Ident "$fatal") (Args [] [])) =
Block Seq "" [] [
(Subroutine (Ident "$write") (Args [(String "[%0t] Fatal: "), (Call (Ident "$time") (Args [] []))] [])),
(Subroutine (Ident "$display") (Args [] [])),
(Subroutine (Ident "$display") (Args [(String "[%0t] Fatal:"), timeCall] [])),
(Subroutine (Ident "$finish") (Args [] []))
]
convertStmt (Subroutine (Ident "$fatal") (Args (finishArgs:displayArgs) [])) =
convertStmt (Subroutine (Ident "$fatal") (Args (finishArgs:displayArgs) _)) =
Block Seq "" [] [
(Subroutine (Ident "$write") (Args [(String "Fatal:")] [])),
(Subroutine (Ident "$write") (Args [(String "[%0t] Fatal: "), timeCall] [])),
(Subroutine (Ident "$display") (Args displayArgs [])),
(Subroutine (Ident "$finish") (Args [finishArgs] []))
]

View File

@ -7,6 +7,7 @@ module top;
$error;
$error("%b", 3);
$fatal;
$fatal(0);
$fatal(0, "%b", 4);
end
endmodule

View File

@ -12,10 +12,12 @@ module top;
$display;
$write("[%0t] Error: ", $time);
$display("%b", 3);
$display("[%0t] Fatal:", $time);
$finish;
$write("[%0t] Fatal: ", $time);
$display;
$finish;
$write("Fatal:");
$finish(0);
$write("[%0t] Fatal: ", $time);
$display("%b", 4);
$finish(0);
end