Color printing text for windows

This commit is contained in:
sam-astro 2022-05-09 16:16:28 -04:00
parent 0350150563
commit 7a4464725f
3 changed files with 163 additions and 64 deletions

View File

@ -39,6 +39,12 @@
} }
"Entry" "Entry"
{ {
"MsmKey" = "8:_46D1C7842E24CD892F141F606320254D"
"OwnerKey" = "8:_2441313DD4DA406BBC1915DDEE0AC74C"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_4B23F888FF8342319507C8AAA3334953" "MsmKey" = "8:_4B23F888FF8342319507C8AAA3334953"
"OwnerKey" = "8:_UNDEFINED" "OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED"
@ -75,12 +81,24 @@
} }
"Entry" "Entry"
{ {
"MsmKey" = "8:_B45D1C0CAD47E39747A5D61CA224DD63"
"OwnerKey" = "8:_2441313DD4DA406BBC1915DDEE0AC74C"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_EF059CAB8D2A4444B8233E61C53F3349" "MsmKey" = "8:_EF059CAB8D2A4444B8233E61C53F3349"
"OwnerKey" = "8:_UNDEFINED" "OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED"
} }
"Entry" "Entry"
{ {
"MsmKey" = "8:_FE3DC1C6AB05AF8BE37B122F3511FF54"
"OwnerKey" = "8:_2441313DD4DA406BBC1915DDEE0AC74C"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
{
"MsmKey" = "8:_FEA298B841784CB2933DCEB504513792" "MsmKey" = "8:_FEA298B841784CB2933DCEB504513792"
"OwnerKey" = "8:_UNDEFINED" "OwnerKey" = "8:_UNDEFINED"
"MsmSig" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED"
@ -232,6 +250,26 @@
"IsDependency" = "11:FALSE" "IsDependency" = "11:FALSE"
"IsolateTo" = "8:" "IsolateTo" = "8:"
} }
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_46D1C7842E24CD892F141F606320254D"
{
"SourcePath" = "8:VCRUNTIME140.dll"
"TargetName" = "8:VCRUNTIME140.dll"
"Tag" = "8:"
"Folder" = "8:_BCDF457FF4564F7BBFD6AEF054FE16C2"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:TRUE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_4B23F888FF8342319507C8AAA3334953" "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_4B23F888FF8342319507C8AAA3334953"
{ {
"SourcePath" = "8:..\\Releases\\ZSharp-Win-x64\\libpng16-16.dll" "SourcePath" = "8:..\\Releases\\ZSharp-Win-x64\\libpng16-16.dll"
@ -352,6 +390,26 @@
"IsDependency" = "11:FALSE" "IsDependency" = "11:FALSE"
"IsolateTo" = "8:" "IsolateTo" = "8:"
} }
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B45D1C0CAD47E39747A5D61CA224DD63"
{
"SourcePath" = "8:MSVCP140.dll"
"TargetName" = "8:MSVCP140.dll"
"Tag" = "8:"
"Folder" = "8:_BCDF457FF4564F7BBFD6AEF054FE16C2"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:TRUE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_EF059CAB8D2A4444B8233E61C53F3349" "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_EF059CAB8D2A4444B8233E61C53F3349"
{ {
"SourcePath" = "8:..\\Releases\\ZSharp-Win-x64\\Pong-Example-Project\\script.zs" "SourcePath" = "8:..\\Releases\\ZSharp-Win-x64\\Pong-Example-Project\\script.zs"
@ -372,6 +430,26 @@
"IsDependency" = "11:FALSE" "IsDependency" = "11:FALSE"
"IsolateTo" = "8:" "IsolateTo" = "8:"
} }
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_FE3DC1C6AB05AF8BE37B122F3511FF54"
{
"SourcePath" = "8:VCRUNTIME140_1.dll"
"TargetName" = "8:VCRUNTIME140_1.dll"
"Tag" = "8:"
"Folder" = "8:_BCDF457FF4564F7BBFD6AEF054FE16C2"
"Condition" = "8:"
"Transitive" = "11:FALSE"
"Vital" = "11:TRUE"
"ReadOnly" = "11:FALSE"
"Hidden" = "11:FALSE"
"System" = "11:FALSE"
"Permanent" = "11:FALSE"
"SharedLegacy" = "11:FALSE"
"PackageAs" = "3:1"
"Register" = "3:1"
"Exclude" = "11:FALSE"
"IsDependency" = "11:TRUE"
"IsolateTo" = "8:"
}
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_FEA298B841784CB2933DCEB504513792" "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_FEA298B841784CB2933DCEB504513792"
{ {
"SourcePath" = "8:..\\Releases\\ZSharp-Win-x64\\libfreetype-6.dll" "SourcePath" = "8:..\\Releases\\ZSharp-Win-x64\\libfreetype-6.dll"
@ -459,15 +537,15 @@
{ {
"Name" = "8:Microsoft Visual Studio" "Name" = "8:Microsoft Visual Studio"
"ProductName" = "8:ZSharp" "ProductName" = "8:ZSharp"
"ProductCode" = "8:{B75754F2-622A-4EEE-9B96-1D044E1D851A}" "ProductCode" = "8:{627A4201-79CB-478F-8428-14290415EB37}"
"PackageCode" = "8:{43E9A0EA-2D92-4C19-B840-BADB645A9016}" "PackageCode" = "8:{CC2CE192-0CB8-470F-A41F-324CE6C0C71E}"
"UpgradeCode" = "8:{8ABDE53F-7FF9-455B-A777-B4C1C624FA13}" "UpgradeCode" = "8:{8ABDE53F-7FF9-455B-A777-B4C1C624FA13}"
"AspNetVersion" = "8:2.0.50727.0" "AspNetVersion" = "8:2.0.50727.0"
"RestartWWWService" = "11:FALSE" "RestartWWWService" = "11:FALSE"
"RemovePreviousVersions" = "11:TRUE" "RemovePreviousVersions" = "11:TRUE"
"DetectNewerInstalledVersion" = "11:TRUE" "DetectNewerInstalledVersion" = "11:TRUE"
"InstallAllUsers" = "11:FALSE" "InstallAllUsers" = "11:FALSE"
"ProductVersion" = "8:2.0.0" "ProductVersion" = "8:2.0.1"
"Manufacturer" = "8:Sam-Astro" "Manufacturer" = "8:Sam-Astro"
"ARPHELPTELEPHONE" = "8:" "ARPHELPTELEPHONE" = "8:"
"ARPHELPLINK" = "8:" "ARPHELPLINK" = "8:"

View File

@ -4,6 +4,7 @@
#include <string> #include <string>
#define DEVELOPER_MESSAGES false #define DEVELOPER_MESSAGES false
#define EXAMPLE_PROJECT false #define EXAMPLE_PROJECT false
#define NAMEVERSION "ZSharp v2.0.1"
#if defined(__unix__) #if defined(__unix__)
#define UNIX true #define UNIX true
@ -667,6 +668,9 @@ int parseZSharp(string script)
int main(int argc, char* argv[]) int main(int argc, char* argv[])
{ {
PrintColored(NAMEVERSION, blackFGColor, whiteBGColor, false);
cout << endl << endl;
// Gathers builtin functions and variables // Gathers builtin functions and variables
GetBuiltins(ZSContents); GetBuiltins(ZSContents);
functionValues = builtinFunctionValues; functionValues = builtinFunctionValues;

View File

@ -16,7 +16,9 @@
#include "strops.h" #include "strops.h"
#include "graphics.h" #include "graphics.h"
#include "anyops.h" #include "anyops.h"
#if WINDOWS
#include "color.hpp" #include "color.hpp"
#endif
//#define DEVELOPER_MESSAGES false //#define DEVELOPER_MESSAGES false
@ -28,41 +30,42 @@ vector<string> types = { "int", "float", "string", "bool", "void", "null", "Spri
unordered_map<string, vector<vector<string>>> builtinFunctionValues; unordered_map<string, vector<vector<string>>> builtinFunctionValues;
unordered_map<string, boost::any> builtinVarVals; unordered_map<string, boost::any> builtinVarVals;
// Foreground colors // Foreground colors
const std::string blackFGColor = "\x1B[30m"; const std::string blackFGColor = "\x1B[30m";
const std::string redFGColor = "\x1B[31m"; const std::string redFGColor = "\x1B[31m";
const std::string greenFGColor = "\x1B[32m"; const std::string greenFGColor = "\x1B[32m";
const std::string yellowFGColor = "\x1B[33m"; const std::string yellowFGColor = "\x1B[33m";
const std::string blueFGColor = "\x1B[34m"; const std::string blueFGColor = "\x1B[34m";
const std::string magentaFGColor = "\x1B[35m"; const std::string magentaFGColor = "\x1B[35m";
const std::string cyanFGColor = "\x1B[36m"; const std::string cyanFGColor = "\x1B[36m";
const std::string whiteFGColor = "\x1B[37m"; const std::string whiteFGColor = "\x1B[37m";
const std::string brightBlackFGColor = "\x1B[90m"; const std::string brightBlackFGColor = "\x1B[90m";
const std::string brightRedFGColor = "\x1B[91m"; const std::string brightRedFGColor = "\x1B[91m";
const std::string brightGreenFGColor = "\x1B[92m"; const std::string brightGreenFGColor = "\x1B[92m";
const std::string brightYellowFGColor = "\x1B[93m"; const std::string brightYellowFGColor = "\x1B[93m";
const std::string brightBlueFGColor = "\x1B[94m"; const std::string brightBlueFGColor = "\x1B[94m";
const std::string brightMagentaFGColor = "\x1B[95m"; const std::string brightMagentaFGColor = "\x1B[95m";
const std::string brightCyanFGColor = "\x1B[96m"; const std::string brightCyanFGColor = "\x1B[96m";
const std::string brightWhiteFGColor = "\x1B[97m"; const std::string brightWhiteFGColor = "\x1B[97m";
//Background colors
//Background colors const std::string blackBGColor = "\x1B[40m";
const std::string blackBGColor = "\x1B[40m"; const std::string redBGColor = "\x1B[41m";
const std::string redBGColor = "\x1B[41m"; const std::string greenBGColor = "\x1B[42m";
const std::string greenBGColor = "\x1B[42m"; const std::string yellowBGColor = "\x1B[43m";
const std::string yellowBGColor = "\x1B[43m"; const std::string blueBGColor = "\x1B[44m";
const std::string blueBGColor = "\x1B[44m"; const std::string magentaBGColor = "\x1B[45m";
const std::string magentaBGColor = "\x1B[45m"; const std::string cyanBGColor = "\x1B[46m";
const std::string cyanBGColor = "\x1B[46m"; const std::string whiteBGColor = "\x1B[47m";
const std::string whiteBGColor = "\x1B[47m"; const std::string brightBlackBGColor = "\x1B[100m";
const std::string brightBlackBGColor = "\x1B[100m"; const std::string brightRedBGColor = "\x1B[101m";
const std::string brightRedBGColor = "\x1B[101m"; const std::string brightGreenBGColor = "\x1B[102m";
const std::string brightGreenBGColor = "\x1B[102m"; const std::string brightYellowBGColor = "\x1B[103m";
const std::string brightYellowBGColor = "\x1B[103m"; const std::string brightBlueBGColor = "\x1B[104m";
const std::string brightBlueBGColor = "\x1B[104m"; const std::string brightMagentaBGColor = "\x1B[105m";
const std::string brightMagentaBGColor = "\x1B[105m"; const std::string brightCyanBGColor = "\x1B[106m";
const std::string brightCyanBGColor = "\x1B[106m"; const std::string brightWhiteBGColor = "\x1B[107m";
const std::string brightWhiteBGColor = "\x1B[107m"; // Reset color
const std::string resetColor = "\033[0m";
class NullType { class NullType {
public: public:
@ -87,32 +90,46 @@ float lerp(float a, float b, float f)
void PrintColored(std::string text, std::string fgColor, std::string bgColor, bool isError) void PrintColored(std::string text, std::string fgColor, std::string bgColor, bool isError)
{ {
#if WINDOWS #if WINDOWS
auto fg = dye::white(text);
if (fgColor == blackFGColor) if (fgColor == blackFGColor)
fg = dye::black(text); cerr << hue::black;
else if (fgColor == redFGColor) else if (fgColor == redFGColor)
fg = dye::red(text); cerr << hue::red;
else if (fgColor == greenFGColor) else if (fgColor == greenFGColor)
fg = dye::green(text); cerr << hue::green;
else if (fgColor == yellowFGColor) else if (fgColor == yellowFGColor)
fg = dye::yellow(text); cerr << hue::yellow;
else if (fgColor == blueFGColor) else if (fgColor == blueFGColor)
fg = dye::blue(text); cerr << hue::blue;
else if (fgColor == magentaFGColor) else if (fgColor == magentaFGColor)
fg = dye::purple(text); cerr << hue::purple;
else if (fgColor == cyanFGColor) else if (fgColor == cyanFGColor)
fg = dye::aqua(text); cerr << hue::aqua;
else if (fgColor == whiteFGColor) else if (fgColor == whiteFGColor)
fg = dye::white(text); cerr << hue::white;
if(!isError)
std::cout << fg; if (bgColor == blackBGColor)
else cerr << hue::on_black;
std::cerr << fg; else if (bgColor == redBGColor)
cerr << hue::on_red;
else if (bgColor == greenBGColor)
cerr << hue::on_green;
else if (bgColor == yellowBGColor)
cerr << hue::on_yellow;
else if (bgColor == blueBGColor)
cerr << hue::on_blue;
else if (bgColor == magentaBGColor)
cerr << hue::on_purple;
else if (bgColor == cyanBGColor)
cerr << hue::on_aqua;
else if (bgColor == whiteBGColor)
cerr << hue::on_white;
std::cerr << text << hue::reset;
#else #else
if(!isError) if (!isError)
cout << fgColor + bgColor + name + resetColor; cout << fgColor + bgColor + text + resetColor;
else else
cerr << fgColor + bgColor + name + resetColor; cerr << fgColor + bgColor + text + resetColor;
#endif #endif
} }
@ -134,9 +151,9 @@ int InterpreterLog(const string& logText)
time_t timer = time(0); time_t timer = time(0);
tm bt{}; tm bt{};
#if defined(__unix__) #if UNIX
//localtime_r(&timer, &bt); //localtime_r(&timer, &bt);
#elif defined(_MSC_VER) #elif WINDOWS
localtime_s(&bt, &timer); localtime_s(&bt, &timer);
Hour = bt.tm_hour; Hour = bt.tm_hour;
Min = bt.tm_min; Min = bt.tm_min;
@ -147,9 +164,9 @@ int InterpreterLog(const string& logText)
bt = *localtime(&timer); bt = *localtime(&timer);
#endif #endif
PrintColored("[" + to_string(Hour) + ":" + to_string(Min) + ":" + to_string(Sec) + "] ", blueFGColor, ""); PrintColored("[" + to_string(Hour) + ":" + to_string(Min) + ":" + to_string(Sec) + "] ", blueFGColor, "", true);
PrintColored("ZSharp: ", yellowFGColor, ""); PrintColored("ZSharp: ", yellowFGColor, "", true);
PrintColored(logText, greenFGColor, ""); PrintColored(logText, greenFGColor, "", true);
cout << std::endl; cout << std::endl;
//cout << "\x1B[34m[" + to_string(Hour) + ":" + to_string(Min) + ":" + to_string(Sec) + "] \x1B[33mZSharp: \x1B[32m" << logText << "\033[0m\t\t" << endl; //cout << "\x1B[34m[" + to_string(Hour) + ":" + to_string(Min) + ":" + to_string(Sec) + "] \x1B[33mZSharp: \x1B[32m" << logText << "\033[0m\t\t" << endl;
return 1; return 1;
@ -176,9 +193,9 @@ int LogCriticalError(const string& errorText)
bt = *localtime(&timer); bt = *localtime(&timer);
#endif #endif
PrintColoredErr("[" + to_string(Hour) + ":" + to_string(Min) + ":" + to_string(Sec) + "] ", blueFGColor, "", true); PrintColored("[" + to_string(Hour) + ":" + to_string(Min) + ":" + to_string(Sec) + "] ", blueFGColor, "", true);
PrintColoredErr("ZSharp: ", yellowFGColor, "", true); PrintColored("ZSharp: ", yellowFGColor, "", true);
PrintColoredErr(errorText, redFGColor, "", true); PrintColored(errorText, redFGColor, "", true);
cerr << std::endl; cerr << std::endl;
//cerr << "\x1B[34m[" + to_string(Hour) + ":" + to_string(Min) + ":" + to_string(Sec) + "] \x1B[33mZSharp: \x1B[31mERROR: " << errorText << "\033[0m\t\t" << endl; //cerr << "\x1B[34m[" + to_string(Hour) + ":" + to_string(Min) + ":" + to_string(Sec) + "] \x1B[33mZSharp: \x1B[31mERROR: " << errorText << "\033[0m\t\t" << endl;
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
@ -334,7 +351,7 @@ int GetBuiltins(std::string s)
} }
return 0; return 0;
} }
// Executes // Executes
boost::any ZSFunction(const string& name, const vector<boost::any>& args) boost::any ZSFunction(const string& name, const vector<boost::any>& args)