almost does compile parser