allowed for statements starting with ( like (&a)->b = x, moved precompiler directives to separate function and fixed them breaking when not in global space, added support for struct initialisers