TypeVisitor.cpp 751 B

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