From 93093f5a220582ade7e51008d6c234a508381089 Mon Sep 17 00:00:00 2001
From: Leo Tenenbaum int
, whereas 0.0
defaults to a float
.
Here are all of toc’s builtin types and their ranges of values:
+Here are all of toc's builtin types and their ranges of values:
int
- A 64-bit signed integer (always), -9223372036854775808 to 9223372036854775807float
.
char
- A character. The specific values are technically platform-dependent, but usually there are 256 of them.At the moment, it is not technically guaranteed that f32
/float
is actually 32-bit and that f64
is actually 64-bit; they are platform dependent. Perhaps someday there will be a version of toc which does not compile to C, where that could be guaranteed.
To make declarations constant, use ::
instead of :
. e.g.
-x ::= 5+3;
+x ::= 5+3;
y :: float = 5.123;
Here, “constant” means constant at compile time, not read-only as it does in C. One interesting thing about toc is that normal functions can run at compile time, so pretty much any expression is a valid initializer for a constant, e.g. doing x ::= some_function();
runs some_function
at compile time, not at run time.
Here, "constant" means constant at compile time, not read-only as it does in C. One interesting thing about toc is that normal functions can run at compile time, so pretty much any expression is a valid initializer for a constant, e.g. doing x ::= some_function();
runs some_function
at compile time, not at run time.