Parse source files using AST only once