summaryrefslogtreecommitdiff
path: root/docs/01.html
diff options
context:
space:
mode:
authorLeo Tenenbaum <pommicket@gmail.com>2019-12-07 18:21:03 -0500
committerLeo Tenenbaum <pommicket@gmail.com>2019-12-07 18:21:03 -0500
commit390f1e368cfdc5011e9eb9af76d2fb44cd8dc0b2 (patch)
treed299c8e4360a68038f575c16d8083275cb1046f0 /docs/01.html
parent9c44be7b25d61450808e918c14b8dfff49a78a8a (diff)
fixed something weird going on with the tokenizer that might be a bug in clang
Diffstat (limited to 'docs/01.html')
-rw-r--r--docs/01.html18
1 files changed, 18 insertions, 0 deletions
diff --git a/docs/01.html b/docs/01.html
new file mode 100644
index 0000000..633295b
--- /dev/null
+++ b/docs/01.html
@@ -0,0 +1,18 @@
+<h3>A first program</h3>
+
+<p>The <code>main</code> function in toc corresponds to the <code>main</code> function in C. This function is called when your program is run. So, this is a valid toc program which does nothing:</p>
+
+<p><code>
+main ::= fn() {
+};
+</code></p>
+
+<p>It declares a constant, <code>main</code>, which is a function with an empty body. Note that the syntax for declaring functions is the same as the syntax for declaring constants (it isn't something like <code>fn main() { ... }</code>).</p>
+
+<p>Assuming you have compiled the compiler (see <code>README.md</code> for instructions about that), you can compile it with</p>
+
+<p><code>
+toc &lt;your filename&gt;
+</code></p>
+
+<p>You will get a file called <code>out.c</code>, which you can then put through your C compiler to get an executable file which does nothing. Congratulations! You've written your first toc program.</p>