/** @copyright 2020 Sean Kasun */ #pragma once #include #include #include "types.h" class Compiler { public: bool run(std::map &symbols); private: int numErrors; bool calculateSizes(Symbol *s); int32_t calcRefSize(Ref *ref, Symbol *parent); int32_t calcStructSize(Struct *s, Symbol *parent); int32_t calcUnionSize(Struct *s, Symbol *parent); bool refErr(Symbol *symbol, const char *format, ...); bool defErr(Symbol *symbol, const char *format, ...); };