From ac6e0671373351c07ee05e5217108a636cb707cc Mon Sep 17 00:00:00 2001 From: Leo Tenenbaum Date: Sun, 21 Jun 2020 17:53:59 -0400 Subject: oops gitignore was ignoring docs --- docs/00.html | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 docs/00.html (limited to 'docs/00.html') diff --git a/docs/00.html b/docs/00.html new file mode 100644 index 0000000..b32be13 --- /dev/null +++ b/docs/00.html @@ -0,0 +1,71 @@ + + + + +Declarations + + +

Declarations

+ +

Table of contents · Next

+ +Variable declarations have the following syntax: +
+<name> :[:] [type] [= expression];
+
+ +

The square brackets ([]) indicate something optional.

+ +

+All of the following statements +declare an new variable x which is an integer, and has a value of 0: +

+x : int;
+x : int = 0;
+x := 0;
+
+Note that in the first of those statements, although no expression +is specified, it defaults to 0. +

+ +

If you wanted x to be a floating-point number, you could use:

+ +
+x : float;
+x : float = 0;
+x := 0.0;
+
+ +

Note that 0 can be used as both a float and an integer, but +when no type is specified, it defaults to an int, whereas 0.0 +defaults to a float.

+ +

Here are all of toc's basic builtin types and their ranges of values:

+ + + +

To make declarations constant, use :: instead of :. e.g.

+ +

+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.

+ + -- cgit v1.2.3