Wonky follows the standart architecture
of a parsing and lexing frontend followed by a
code generation backend.
Currently there is no middle end -
the intermideate representation and
optimisations done on it. It is a goal
to make one.
Parsing and semantics are separated.
Constraint checks are separated from whatever
has constraint checks in the hope of preserving
code readability. ( Not fully implemented )
ASTs are a very fragile part of the design.
Adding node types is very difficult, because
their use is scattered accross the whole program.
This was done to simplify code organisation, but
did not work out. Will refactor them so that
the functions that use them are in them ( very
C++ like ). This or rely on IR to serve as a
mask to the asts.