#pragma once
#include <vector>
#include <map>
#include <string>

#include "Token.hpp"

class Interpreter
{
public:
	static double interpret(char* _string);

private:
	static bool scanForErrors();
	static bool getResult();

	static bool createSymbolList(std::vector<Symbol*>& symbols);
	static bool createOrderedTokenList(std::vector<Symbol*> symbols, std::vector<NonChar*>& tokens);

	static std::string string;
	static std::string numbers;
	static std::string operators;
	static std::map<char, unsigned int> operation_order;

	static double result;
	static bool justNumber;
};