From c77a2df387edc3f975143cf1aaab48e4c761bf5b Mon Sep 17 00:00:00 2001 From: SoniEx2 Date: Tue, 9 Apr 2019 16:51:05 -0300 Subject: [PATCH] Add README.md --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..ebb76b8 --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +The Cratera Programming Language (and support components) +========================================================= + +This repo contains the Cratera to Lua compiler, as well as support components for the Cratera to Lua compiler, namely a pure-Lua Lua tokenizer and a table-based parser thing. + +Cratera is a language very similar to Lua, and as such most of the Lua manual applies to it. Additionally, it supports the following syntax sugar, called "traits": + + mytable:[mytrait].myfunction(myargument) + +which is equivalent to: + + mytable[mytrait].myfunction(mytable, myargument) + +This syntax sugar is similar to the "methods" syntax sugar ([Lua 5.3 §3.4.10](http://www.lua.org/manual/5.3/manual.html#3.4.10), +[Lua 5.2 §3.4.9](http://www.lua.org/manual/5.2/manual.html#3.4.9), [Lua 5.1 §2.5.8](http://www.lua.org/manual/5.1/manual.html#2.5.8)), +and, indeed, `mytable` is only evaluated once.