#pragma once #include "../main.h" #include #include #include #include /* functions map Contains the code of functions and types of their values */ extern std::map functions; /* structs map Contains structs (see the Struct struct for more info) */ extern std::map structs; /* fnArgs vector Containst the arguments to be passed to a function */ extern std::vector fnArgs; // External library functions and other things // Handle to loaded libraries extern std::map loadedLibraries; // Map of function name to function pointer extern std::map externalFunctions; // Libraries currently imported extern std::vector libraries; // catches stackmap extern std::stack> catches; // labelStack stack extern std::stack> labelStack; // variables map extern std::map variables; GroundValue literalToGroundValue(const Literal& lit); Literal groundValueToLiteral(const GroundValue& gv); void setVal(std::string varName, Literal value); bool isInt(std::string in); bool isDouble(std::string in); bool isBool(std::string in); bool isString(std::string in); bool isChar(std::string in); bool isValue(std::string in); bool isDirect(std::string in); bool isLine(std::string in); bool isLabel(std::string in); bool isType(std::string in); bool isFunction(std::string in); bool isReferencingStruct(std::string in); Types getType(std::string in); Types getLitType(Literal in); void setVal(std::string varName, Literal value);