TypeVisitor.cpp 774 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include "TypeVisitor.h"
  2. #include "Type.h"
  3. using namespace qlow;
  4. sem::Type* sem::TypeVisitor::visit(sem::Expression& expr, const sem::SymbolTable<sem::Class>& classes)
  5. {
  6. }
  7. sem::Type* sem::TypeVisitor::visit(sem::UnaryOperation& expr, const sem::SymbolTable<sem::Class>& classes)
  8. {
  9. return visit(*expr.arg, classes);
  10. }
  11. sem::Type* sem::TypeVisitor::visit(sem::BinaryOperation& expr, const sem::SymbolTable<sem::Class>& classes)
  12. {
  13. return visit(*expr.left, classes);
  14. }
  15. sem::Type* sem::TypeVisitor::visit(sem::FeatureCallExpression& expr, const sem::SymbolTable<sem::Class>& classes)
  16. {
  17. return expr.callee->returnType;
  18. }
  19. sem::Type* sem::TypeVisitor::visit(sem::IntConst& expr, const sem::SymbolTable<sem::Class>& classes)
  20. {
  21. return Type::INTEGER;
  22. }