##KNOWN BUGS
**[ ] - lexer **
- rewrite my shit lexer after other stuff done.
- keywords are searched for before indentifiers and dont use a regexp or any sort of lookahead for non a-z
- include strings into the token string instead of ignoring them deliberately
- attach a line number for each token generated, so we can have better debugging
**[ ] - parser **
- parses require a semantic pass,
- parser or semantic needs to employ a roll up strategy on branches without terminals
- cst or ast is incorrectly collapsing arithmetic operations , resulting in poor arithemetic. fix it after we finish the interpreter, use parentheses in the mean time
- initial token to cst is very slow. probably due to string comparison, but also likely due to the grammar rules not having some ability to short circuit.
- does not give adequate (any) parse errors
- binary arithmetic expression do not form properly. this needs to be addressed in ast.
**[ ] -m7 interpreter
- interpreter is unfinished, assignments, and functions mostly work, as do builtins but need a look over.
- garbage collection and heap work but require a final pass
- control statements, conditionals, block statements all need to be finished.
- declarations need to be finished