~groctel/lox

refactor(clox): Move assignment checker to compiler object
fix(clox): Synchronising the compiler would result in an infinite loop
refactor(clox): Extract compiler strategies into their own file
feat(clox): Global variables

This has been a challenging chapter. I'll have to take some notes and
will probably do some cleanup of the compiler source to help with
understanding the code later on.
feat(clox): Debug trace options and toggles
feat(clox): Disassemble strings, improve debug print style
refactor(clox): Make Vm a non-static object
refactor(clox): Make scanner, parser, compiler non-static
feat(clox): Hash map and hash set for strings
refactor(clox): Use designated struct initialisers
feat(clox): String literals and concatenation
chore(clox): Add address sanitiser compilation option
fix(jlox): Operator == was working as !=
feat(clox): Boolean and nil types
feat(clox): Expression parser and Pratt compiler
chore(jlox): Simplify Makefile, remove unused AstPrinter
chore(clox): Create modules with their own Makefiles
feat(clox) Source code scanner
refactor(clox): Define LOXVm_print_stack only if LOX_DEBUG_TRACE

Otherwise, the compiler warns about the unused function when LOXDEBUG
isn't defined.
refactor(clox): Remove unneeded const qualifier from prototypes
Next
Do not follow this link