diff --git a/backends/GenerateC.hs b/backends/GenerateC.hs index 3297175..491ea73 100644 --- a/backends/GenerateC.hs +++ b/backends/GenerateC.hs @@ -2183,6 +2183,10 @@ cgenIntrinsicProc :: Meta -> String -> [A.Actual] -> CGen () cgenIntrinsicProc m "ASSERT" [A.ActualExpression e] = call genAssert m e cgenIntrinsicProc _ "RESCHEDULE" [] = call genReschedule cgenIntrinsicProc m "CAUSEERROR" [] = call genStop m "CAUSEERROR" +cgenIntrinsicProc m "EXIT" [A.ActualExpression e] + = do tell ["exit("] + call genExpression e + tell [");"] cgenIntrinsicProc m "SETAFF" [A.ActualExpression e] = call genSetAff m e cgenIntrinsicProc m "SETPRI" [A.ActualExpression e] = call genSetPri m e cgenIntrinsicProc m s as = case lookup s intrinsicProcs of diff --git a/common/Intrinsics.hs b/common/Intrinsics.hs index e7590f3..60a1cec 100644 --- a/common/Intrinsics.hs +++ b/common/Intrinsics.hs @@ -130,6 +130,7 @@ intrinsicProcs :: [(String, [(A.AbbrevMode, A.Type, String)])] intrinsicProcs = [ ("ASSERT", [(A.ValAbbrev, A.Bool, "value")]) , ("CAUSEERROR", []) + , ("EXIT", [(A.ValAbbrev, A.Int, "code")]) , ("RESCHEDULE", []) , ("SETAFF", [(A.ValAbbrev, A.Int, "aff")]) , ("SETPRI", [(A.ValAbbrev, A.Int, "pri")])