diff options
Diffstat (limited to 'tests/i/function-call-statements/program.cps')
| -rw-r--r-- | tests/i/function-call-statements/program.cps | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/i/function-call-statements/program.cps b/tests/i/function-call-statements/program.cps new file mode 100644 index 0000000..403414b --- /dev/null +++ b/tests/i/function-call-statements/program.cps @@ -0,0 +1,36 @@ +TYPE Raw = C_TYPE("void*") +TYPE NativePointer = C_TYPE("int*") +TYPE IntPointer = ^INTEGER +DECLARE Number : INTEGER +DECLARE Pointer : IntPointer +DECLARE Address : Raw +DECLARE Native : C_INT +DECLARE NativeAddress : NativePointer +Number <- 17 +Pointer <- ^Number +Address <- (Raw)Pointer +Pointer <- (IntPointer)Address +OUTPUT Pointer^ +Native <- (C_INT)23 +NativeAddress <- ^Native +Address <- (Raw)NativeAddress +NativeAddress <- (NativePointer)Address +OUTPUT NativeAddress^ +FUNCTION Echo(Value : INTEGER) RETURNS INTEGER + OUTPUT Value + RETURN Value +ENDFUNCTION +Echo(7) +LENGTH("discard") +CALL LENGTH("also discard") +PROCEDURE Change(BYREF Value : INTEGER) + Value <- Value + 1 +ENDPROCEDURE +Change(Number) +CALL Change(Number) +OUTPUT Number +TRY + Echo(1 DIV 0) +CATCH + OUTPUT "caught" +ENDTRY |
