compile(FileStream) -> preprocess -> compile_code -> compile_data -> (CodeTree, DataSet)

preprocess(FileStream) -> (CodeStream, DataStream)

1) Handle CompilerDirectives
2) Remove LineComments
3) Unescape
4) Split DataStream

compile_code(CodeStream) -> CodeTree

compile_data(DataStream) -> DataSet

