change the way ASTContext is retrieved; add abstract syntax semantics