add cast expression support

couldn't this visitor return DataType and have a Void context? maybe its easier that way?