Does this offer any flexibility on the level of homoiconic macros? It looks like it is just pattern matching based (which would mean no), but I don't know if a "frame" gets full access to the code body.
Please note that, because its intended purpose is very different from a more traditional language, it will most likely never fully implement the traditional lexical analysis/AST formation/execution procedure, and instead have some overlap between lexing and parsing.
CHANGELOG
0.0.5 (ALPHA) - Full engine rewrite
{"for%s-(%b())%s-(%b{});", ""},
# % ( ) * , - . / : ; < = > [ ] ^ { }
TK_AND, TK_BREAK, TK_DO, TK_ELSE, TK_ELSEIF, TK_END, TK_FALSE, TK_FOR, TK_FUNCTION, TK_GOTO, TK_IF, TK_IN, TK_LOCAL, TK_NIL, TK_NOT, TK_OR, TK_REPEAT, TK_RETURN, TK_THEN, TK_TRUE, TK_UNTIL, TK_WHILE, TK_CONCAT, TK_DOTS, TK_EQ, TK_GE, TK_LE, TK_NE, TK_DBCOLON, TK_EOS
TK_NUMBER(number), TK_NAME(identifier), TK_STRING(string)
..into TK_CONCAT and
'else'into a string and not a keyword. Only.