+ support for 3 different modes: diagnostic, interactive, build
- removed unused ASTContext parameter