#ifndef LOGGER_H #define LOGGER_H #include class Token; enum class TokenKind; class ValueType; class Statement; class StatementMetaExternFunction; class StatementVariable; class StatementFunction; class StatementRawFunction; class StatementBlock; class StatementAssignment; class StatementReturn; class StatementRepeat; class StatementExpression; class Expression; class ExpressionBinary; class ExpressionUnary; class ExpressionIfElse; class ExpressionVariable; class ExpressionGrouping; class ExpressionLiteral; class ExpressionArrayLiteral; class ExpressionCall; class ExpressionBlock; class Error; using namespace std; class Logger { private: static string toString(shared_ptr token); static string toString(TokenKind tokenKind); static string toString(shared_ptr valueType); static string toString(shared_ptr statement); static string toString(shared_ptr statement); static string toString(shared_ptr statement); static string toString(shared_ptr statement); static string toString(shared_ptr statement); static string toString(shared_ptr statement); static string toString(shared_ptr statement); static string toString(shared_ptr statement); static string toString(shared_ptr statement); static string toString(shared_ptr statement); static string toString(shared_ptr expression); static string toString(shared_ptr expression); static string toString(shared_ptr expression); static string toString(shared_ptr expression); static string toString(shared_ptr expression); static string toString(shared_ptr expression); static string toString(shared_ptr expression); static string toString(shared_ptr expression); static string toString(shared_ptr expression); static string toString(shared_ptr expression); public: static void print(vector> tokens); static void print(vector> statements); static void print(shared_ptr error); }; #endif