Text this: A symbolic analysis framework for static analysis of imperative programming languages