seperated basic instruction pointer from lexer
attempt to export AST. now we have a small lexer and a big AST module
satisfy hlint
Merge remote-tracking branch 'origin/preproc-lexer'