Add Ast models, visitor, literal support, and test cases