#ifndef TYPECHECK_H #define TYPECHECK_H #include #include "types.h" #include "binops.h" #include "casting.h" #include "errors.h" namespace typecheck { struct Scope { std::map> symbols; std::map> structs; std::optional> return_ty; }; struct State { std::vector binops; std::vector unops; std::vector casts; std::vector errors; }; struct ExpressionType { std::shared_ptr type; bool array_initializer; bool lvalue; }; } #endif