mirror of
https://github.com/sam-astro/Z-Sharp.git
synced 2025-12-10 15:52:12 +00:00
Rename all to ZSharp
This commit is contained in:
parent
d1a27129d2
commit
8c296f182d
@ -1,5 +1,5 @@
|
||||
# Z#, Z-Sharp
|
||||
Z-Sharp is a custom programming language I made because I don't like c++ very much (Z-Sharp's interpreter is written in c++ though). It used to be called Slang, standing for "Stupid Lang", but another programmig langauge called Slang already exists :(. Z-Sharp scripts have the file extension .zs. The base syntax and formatting I would say is quite similar to C#, but differs as task complexity increases. It has support for graphics using SDL2, and by default is not enabled. Here is some example code.
|
||||
# Slang, or StuLang
|
||||
Slang, or StuLang, which stands for ***Stu****pid **Lang**uage* is a custom programming language I made because I don't like c++ very much (Slang's interpreter is written in c++ though). Slang scripts have the file extension .slg. The base syntax and formatting I would say is quite similar to C#, but differs as task complexity increases. It has support for graphics using SDL2, and by default is not enabled. Here is some example code.
|
||||
```c#
|
||||
// Comments are indicated by two forward slashes
|
||||
// They can only be on their own line
|
||||
|
||||
@ -3,9 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.0.31612.314
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Slang", "Slang\Slang.vcxproj", "{D5F150F8-1F83-41EB-A195-1B5C3CA9322A}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZSharp", "ZSharp\ZSharp.vcxproj", "{D5F150F8-1F83-41EB-A195-1B5C3CA9322A}"
|
||||
EndProject
|
||||
Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "Slang-Installer", "Slang-Installer\Slang-Installer.vdproj", "{42EA0B7A-2068-4065-B9EB-041F32933A66}"
|
||||
Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "ZSharp Installer", "ZSharp-Installer\ZSharp-Installer.vdproj", "{42EA0B7A-2068-4065-B9EB-041F32933A66}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
@ -3,7 +3,7 @@
|
||||
"VSVersion" = "3:800"
|
||||
"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}"
|
||||
"IsWebType" = "8:FALSE"
|
||||
"ProjectName" = "8:Slang-Installer"
|
||||
"ProjectName" = "8:ZSharp Installer"
|
||||
"LanguageId" = "3:1033"
|
||||
"CodePage" = "3:1252"
|
||||
"UILanguageId" = "3:1033"
|
||||
@ -93,7 +93,7 @@
|
||||
"DisplayName" = "8:Debug"
|
||||
"IsDebugOnly" = "11:TRUE"
|
||||
"IsReleaseOnly" = "11:FALSE"
|
||||
"OutputFilename" = "8:..\\Releases\\Slang-Installer\\Slang-Installer.msi"
|
||||
"OutputFilename" = "8:..\\Releases\\ZSharp-Installer\\ZSharp-Installer.msi"
|
||||
"PackageFilesAs" = "3:2"
|
||||
"PackageFileSize" = "3:-2147483648"
|
||||
"CabType" = "3:1"
|
||||
@ -125,7 +125,7 @@
|
||||
"DisplayName" = "8:Release"
|
||||
"IsDebugOnly" = "11:FALSE"
|
||||
"IsReleaseOnly" = "11:TRUE"
|
||||
"OutputFilename" = "8:..\\Releases\\Slang-Installer-Win-x64\\Slang-Installer.msi"
|
||||
"OutputFilename" = "8:..\\Releases\\ZSharp-Installer-Win-x64\\ZSharp-Installer.msi"
|
||||
"PackageFilesAs" = "3:2"
|
||||
"PackageFileSize" = "3:-2147483648"
|
||||
"CabType" = "3:1"
|
||||
@ -174,7 +174,7 @@
|
||||
{
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_1BBDEA811E8A494DB30AB0E778BEF5B3"
|
||||
{
|
||||
"SourcePath" = "8:..\\Releases\\Slang-Win-x64\\Pong-Example-Project\\square.png"
|
||||
"SourcePath" = "8:..\\Releases\\ZSharp-Win-x64\\Pong-Example-Project\\square.png"
|
||||
"TargetName" = "8:square.png"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_AB72F4F4665144CA990532BBC3679E36"
|
||||
@ -194,7 +194,7 @@
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_29CB0EFE95A142F4A149E51FAE871DDE"
|
||||
{
|
||||
"SourcePath" = "8:..\\Releases\\Slang-Win-x64\\libtiff-5.dll"
|
||||
"SourcePath" = "8:..\\Releases\\ZSharp-Win-x64\\libtiff-5.dll"
|
||||
"TargetName" = "8:libtiff-5.dll"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_BCDF457FF4564F7BBFD6AEF054FE16C2"
|
||||
@ -214,7 +214,7 @@
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_38EBD2EEB8C34316A3249C9D9873B1C2"
|
||||
{
|
||||
"SourcePath" = "8:..\\Releases\\Slang-Win-x64\\zlib1.dll"
|
||||
"SourcePath" = "8:..\\Releases\\ZSharp-Win-x64\\zlib1.dll"
|
||||
"TargetName" = "8:zlib1.dll"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_BCDF457FF4564F7BBFD6AEF054FE16C2"
|
||||
@ -234,7 +234,7 @@
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_4B23F888FF8342319507C8AAA3334953"
|
||||
{
|
||||
"SourcePath" = "8:..\\Releases\\Slang-Win-x64\\libpng16-16.dll"
|
||||
"SourcePath" = "8:..\\Releases\\ZSharp-Win-x64\\libpng16-16.dll"
|
||||
"TargetName" = "8:libpng16-16.dll"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_BCDF457FF4564F7BBFD6AEF054FE16C2"
|
||||
@ -254,7 +254,7 @@
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_5F99C783A5A5405FAEED16B4899E66A3"
|
||||
{
|
||||
"SourcePath" = "8:..\\Releases\\Slang-Win-x64\\Pong-Example-Project\\net.png"
|
||||
"SourcePath" = "8:..\\Releases\\ZSharp-Win-x64\\Pong-Example-Project\\net.png"
|
||||
"TargetName" = "8:net.png"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_AB72F4F4665144CA990532BBC3679E36"
|
||||
@ -294,7 +294,7 @@
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_8116B924B2DC45BB901E89A2EEB674E6"
|
||||
{
|
||||
"SourcePath" = "8:..\\Releases\\Slang-Win-x64\\libjpeg-9.dll"
|
||||
"SourcePath" = "8:..\\Releases\\ZSharp-Win-x64\\libjpeg-9.dll"
|
||||
"TargetName" = "8:libjpeg-9.dll"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_BCDF457FF4564F7BBFD6AEF054FE16C2"
|
||||
@ -314,7 +314,7 @@
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_84E97BEFD3C240DC822DAEF66BB20D79"
|
||||
{
|
||||
"SourcePath" = "8:..\\Releases\\Slang-Win-x64\\Pong-Example-Project\\arial.ttf"
|
||||
"SourcePath" = "8:..\\Releases\\ZSharp-Win-x64\\Pong-Example-Project\\arial.ttf"
|
||||
"TargetName" = "8:arial.ttf"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_AB72F4F4665144CA990532BBC3679E36"
|
||||
@ -334,7 +334,7 @@
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_8D4524D8D2654AF28CD2B8483A2B2505"
|
||||
{
|
||||
"SourcePath" = "8:..\\Releases\\Slang-Win-x64\\libwebp-7.dll"
|
||||
"SourcePath" = "8:..\\Releases\\ZSharp-Win-x64\\libwebp-7.dll"
|
||||
"TargetName" = "8:libwebp-7.dll"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_BCDF457FF4564F7BBFD6AEF054FE16C2"
|
||||
@ -354,7 +354,7 @@
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_F1964A3FC0114E58A81978C4C7107596"
|
||||
{
|
||||
"SourcePath" = "8:..\\Releases\\Slang-Win-x64\\Pong-Example-Project\\script.slg"
|
||||
"SourcePath" = "8:..\\Releases\\ZSharp-Win-x64\\Pong-Example-Project\\script.slg"
|
||||
"TargetName" = "8:script.slg"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_AB72F4F4665144CA990532BBC3679E36"
|
||||
@ -374,7 +374,7 @@
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_FEA298B841784CB2933DCEB504513792"
|
||||
{
|
||||
"SourcePath" = "8:..\\Releases\\Slang-Win-x64\\libfreetype-6.dll"
|
||||
"SourcePath" = "8:..\\Releases\\ZSharp-Win-x64\\libfreetype-6.dll"
|
||||
"TargetName" = "8:libfreetype-6.dll"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_BCDF457FF4564F7BBFD6AEF054FE16C2"
|
||||
@ -422,7 +422,7 @@
|
||||
}
|
||||
"{3C67513D-01DD-4637-8A68-80971EB9504F}:_BCDF457FF4564F7BBFD6AEF054FE16C2"
|
||||
{
|
||||
"DefaultLocation" = "8:[ProgramFiles64Folder]\\Slang"
|
||||
"DefaultLocation" = "8:[ProgramFiles64Folder]\\ZSharp"
|
||||
"Name" = "8:#1925"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"Condition" = "8:"
|
||||
@ -458,24 +458,24 @@
|
||||
"Product"
|
||||
{
|
||||
"Name" = "8:Microsoft Visual Studio"
|
||||
"ProductName" = "8:Slang"
|
||||
"ProductCode" = "8:{A5629CD2-46CB-4945-BBA2-BAC60F2DDFC4}"
|
||||
"PackageCode" = "8:{DEE267E6-C968-4059-8F0F-4560CF270A35}"
|
||||
"ProductName" = "8:ZSharp"
|
||||
"ProductCode" = "8:{4E83312A-4C42-44BD-8604-E55F7D1B005B}"
|
||||
"PackageCode" = "8:{A82E7BE4-0442-482B-A5CB-CC097C9915DF}"
|
||||
"UpgradeCode" = "8:{8ABDE53F-7FF9-455B-A777-B4C1C624FA13}"
|
||||
"AspNetVersion" = "8:2.0.50727.0"
|
||||
"RestartWWWService" = "11:FALSE"
|
||||
"RemovePreviousVersions" = "11:TRUE"
|
||||
"DetectNewerInstalledVersion" = "11:TRUE"
|
||||
"InstallAllUsers" = "11:FALSE"
|
||||
"ProductVersion" = "8:1.2.2"
|
||||
"ProductVersion" = "8:1.3.0"
|
||||
"Manufacturer" = "8:Sam-Astro"
|
||||
"ARPHELPTELEPHONE" = "8:"
|
||||
"ARPHELPLINK" = "8:"
|
||||
"Title" = "8:Slang"
|
||||
"Title" = "8:ZSharp"
|
||||
"Subject" = "8:"
|
||||
"ARPCONTACT" = "8:Sam-Astro"
|
||||
"Keywords" = "8:"
|
||||
"ARPCOMMENTS" = "8:Installer for Slang interpreter"
|
||||
"ARPCOMMENTS" = "8:Installer for ZSharp interpreter"
|
||||
"ARPURLINFOABOUT" = "8:"
|
||||
"ARPPRODUCTICON" = "8:_7C9D3FE3584D494F807EBD12C93E2FC5"
|
||||
"ARPIconIndex" = "3:0"
|
||||
@ -981,7 +981,7 @@
|
||||
{
|
||||
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_2441313DD4DA406BBC1915DDEE0AC74C"
|
||||
{
|
||||
"SourcePath" = "8:..\\Releases\\Slang-Win-x64\\Slang.exe"
|
||||
"SourcePath" = "8:..\\Releases\\ZSharp-Win-x64\\ZSharp.exe"
|
||||
"TargetName" = "8:"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_BCDF457FF4564F7BBFD6AEF054FE16C2"
|
||||
|
Before Width: | Height: | Size: 800 KiB After Width: | Height: | Size: 800 KiB |
@ -2,12 +2,12 @@ cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
project(Slang)
|
||||
project(ZSharp)
|
||||
|
||||
SET(programName Slang)
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMakeFiles/")
|
||||
|
||||
add_executable (Slang Main.cpp main.h anyops.h builtin.h strops.cpp strops.h eval.cpp eval.h graphics.h SLB.h)
|
||||
add_executable (ZSharp Main.cpp main.h anyops.h builtin.h strops.cpp strops.h eval.cpp eval.h graphics.h ZS.h)
|
||||
|
||||
find_package(SDL2 REQUIRED)
|
||||
find_package(SDL2_image REQUIRED)
|
||||
@ -31,4 +31,4 @@ FIND_PACKAGE(Boost REQUIRED COMPONENTS system)
|
||||
|
||||
include_directories(${Boost_INCLUDE_DIRS})
|
||||
|
||||
target_link_libraries(Slang m ${Boost_LIBRARIES} ${SDL2_LIBRARIES} ${SDL2_IMAGE_LIBRARIES} ${SDL2_TTF_LIBRARIES})
|
||||
target_link_libraries(ZSharp m ${Boost_LIBRARIES} ${SDL2_LIBRARIES} ${SDL2_IMAGE_LIBRARIES} ${SDL2_TTF_LIBRARIES})
|
||||
@ -36,7 +36,7 @@
|
||||
#include "main.h"
|
||||
#include "anyops.h"
|
||||
|
||||
#include "SLB.h"
|
||||
#include "ZS.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace boost;
|
||||
@ -74,7 +74,7 @@ boost::any GetVariableValue(const string& varName, const unordered_map<string, b
|
||||
|
||||
bool IsVar(const string& varName, const unordered_map<string, boost::any>& variableValues)
|
||||
{
|
||||
if (variableValues.find(split(varName, '.')[0]) != variableValues.end() && split(varName, '.')[0] != "SLB")
|
||||
if (variableValues.find(split(varName, '.')[0]) != variableValues.end() && split(varName, '.')[0] != "ZS")
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
@ -114,7 +114,7 @@ bool IsFunction(const string& funcName)
|
||||
else
|
||||
return false;
|
||||
}
|
||||
bool IsSLBFunction(const string& funcName)
|
||||
bool IsZSFunction(const string& funcName)
|
||||
{
|
||||
if (funcName[0] == 'S' && funcName[1] == 'L' && funcName[2] == 'B' && funcName[3] == '.')
|
||||
return true;
|
||||
@ -132,9 +132,9 @@ boost::any EvalExpression(const string& ex, unordered_map<string, boost::any>& v
|
||||
#endif
|
||||
|
||||
bool isFunc = IsFunction(split(expression, '(')[0]);
|
||||
bool isSLB = split(expression, '.')[0] == "SLB";
|
||||
bool isZS = split(expression, '.')[0] == "ZS";
|
||||
// If no operations are applied, then return self
|
||||
if ((countOutsideParenthesis(expression, '+') == 0 && countOutsideParenthesis(expression, '-') == 0 && countOutsideParenthesis(expression, '*') == 0 && countOutsideParenthesis(expression, '/') == 0 && countOutsideParenthesis(expression, '^') == 0) || split(expression, '.')[0] == "SLB")
|
||||
if ((countOutsideParenthesis(expression, '+') == 0 && countOutsideParenthesis(expression, '-') == 0 && countOutsideParenthesis(expression, '*') == 0 && countOutsideParenthesis(expression, '/') == 0 && countOutsideParenthesis(expression, '^') == 0) || split(expression, '.')[0] == "ZS")
|
||||
{
|
||||
bool isFunc = IsFunction(split(expression, '(')[0]);
|
||||
if (isFunc && !inQuotes)
|
||||
@ -150,7 +150,7 @@ boost::any EvalExpression(const string& ex, unordered_map<string, boost::any>& v
|
||||
}
|
||||
return ExecuteFunction(split(expression, '(')[0], VarValues(split(argContents, ','), variableValues));
|
||||
}
|
||||
else if (split(expression, '.')[0] == "SLB" && !inQuotes)
|
||||
else if (split(expression, '.')[0] == "ZS" && !inQuotes)
|
||||
{
|
||||
string argContents = "";
|
||||
int y = indexInStr(expression, '(') + 1;
|
||||
@ -160,7 +160,7 @@ boost::any EvalExpression(const string& ex, unordered_map<string, boost::any>& v
|
||||
|
||||
y++;
|
||||
}
|
||||
return SLBFunction(split(expression, '(')[0], VarValues(split(argContents, ','), variableValues));
|
||||
return ZSFunction(split(expression, '(')[0], VarValues(split(argContents, ','), variableValues));
|
||||
}
|
||||
else
|
||||
return GetVariableValue(expression, variableValues);
|
||||
@ -199,7 +199,7 @@ boost::any EvalExpression(const string& ex, unordered_map<string, boost::any>& v
|
||||
string returnVal = AnyAsString(ExecuteFunction(name, VarValues(split(argContents, ','), variableValues)));
|
||||
newExpression += returnVal;
|
||||
}
|
||||
else if (split(name, '.')[0] == "SLB" && !inQuotes)
|
||||
else if (split(name, '.')[0] == "ZS" && !inQuotes)
|
||||
{
|
||||
string argContents = "";
|
||||
int y = indexInStr(expression, '(') + 1;
|
||||
@ -210,7 +210,7 @@ boost::any EvalExpression(const string& ex, unordered_map<string, boost::any>& v
|
||||
y++;
|
||||
}
|
||||
//cout << split(expression, '(')[0] << " " << argContents << endl;
|
||||
string returnVal = AnyAsString(SLBFunction(split(name, '(')[0], VarValues(split(argContents, ','), variableValues)));
|
||||
string returnVal = AnyAsString(ZSFunction(split(name, '(')[0], VarValues(split(argContents, ','), variableValues)));
|
||||
newExpression += returnVal;
|
||||
}
|
||||
else
|
||||
@ -373,7 +373,7 @@ boost::any ProcessLine(const vector<vector<string>>& words, int lineNum, unorder
|
||||
if (words.at(lineNum).at(0)[0] == '/' && words.at(lineNum).at(0)[1] == '/')
|
||||
return nullType;
|
||||
|
||||
// If print statement (deprecated, now use SLB.System.Print() function)
|
||||
// If print statement (deprecated, now use ZS.System.Print() function)
|
||||
else if (words.at(lineNum).at(0) == "print")
|
||||
{
|
||||
cout << StringRaw(AnyAsString(EvalExpression(unWrapVec(vector<string>(words.at(lineNum).begin() + 1, words.at(lineNum).end())), variableValues))) << endl;
|
||||
@ -384,7 +384,7 @@ boost::any ProcessLine(const vector<vector<string>>& words, int lineNum, unorder
|
||||
else if (words.at(lineNum).at(0) == "return")
|
||||
return EvalExpression(unWrapVec(vector<string>(words.at(lineNum).begin() + 1, words.at(lineNum).end())), variableValues);
|
||||
|
||||
// Check if it is SLB Builtin function
|
||||
// Check if it is ZS Builtin function
|
||||
else if (words.at(lineNum).at(0)[0] == 'S' && words.at(lineNum).at(0)[1] == 'L' && words.at(lineNum).at(0)[2] == 'B' && words.at(lineNum).at(0)[3] == '.')
|
||||
return EvalExpression(unWrapVec(words.at(lineNum)), variableValues);
|
||||
|
||||
@ -576,7 +576,7 @@ boost::any ExecuteFunction(const string& functionName, const vector<boost::any>&
|
||||
return nullType;
|
||||
}
|
||||
|
||||
int parseSlang(string script)
|
||||
int parseZSharp(string script)
|
||||
{
|
||||
script = replace(script, " ", "\t");
|
||||
#if DEVELOPER_MESSAGES
|
||||
@ -668,7 +668,7 @@ int parseSlang(string script)
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
// Gathers builtin functions and variables
|
||||
GetBuiltins(SLBContents);
|
||||
GetBuiltins(ZSContents);
|
||||
functionValues = builtinFunctionValues;
|
||||
globalVariableValues = builtinVarVals;
|
||||
|
||||
@ -722,7 +722,7 @@ int main(int argc, char* argv[])
|
||||
}
|
||||
else
|
||||
{
|
||||
LogWarning("No script provided! Please drag and drop .SLG file over interpreter executable file, or provide it's path as a command-line argument.");
|
||||
LogWarning("No script provided! Please drag and drop .ZS file over interpreter executable file, or provide it's path as a command-line argument.");
|
||||
cout << "Press Enter to Continue";
|
||||
cin.ignore();
|
||||
exit(1);
|
||||
@ -733,7 +733,7 @@ int main(int argc, char* argv[])
|
||||
#if DEVELOPER_MESSAGES
|
||||
InterpreterLog("Parsing...");
|
||||
#endif
|
||||
parseSlang(scriptTextContents);
|
||||
parseZSharp(scriptTextContents);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
using namespace std;
|
||||
|
||||
std::string SLBContents = R"(
|
||||
std::string ZSContents = R"(
|
||||
// Default variables, can be overwritten
|
||||
// if re-initialized or changed
|
||||
float PI = 3.14159265358979323846264338
|
||||
@ -11,21 +11,21 @@ float EulersNumber = 2.71828183
|
||||
// Trigonometric function Sin
|
||||
func Sin(input)
|
||||
{
|
||||
float out = SLB.Math.Sin(input)
|
||||
float out = ZS.Math.Sin(input)
|
||||
return out
|
||||
}
|
||||
|
||||
// Trigonometric function Cos
|
||||
func Cos(input)
|
||||
{
|
||||
float out = SLB.Math.Cos(input)
|
||||
float out = ZS.Math.Cos(input)
|
||||
return out
|
||||
}
|
||||
|
||||
// Trigonometric function Tan
|
||||
func Tan(input)
|
||||
{
|
||||
float out = SLB.Math.Tan(input)
|
||||
float out = ZS.Math.Tan(input)
|
||||
return out
|
||||
}
|
||||
|
||||
@ -46,21 +46,21 @@ func Tanh(input)
|
||||
// Rounds input to nearest integer value
|
||||
func Round(input)
|
||||
{
|
||||
float out = SLB.Math.Round(input)
|
||||
float out = ZS.Math.Round(input)
|
||||
return out
|
||||
}
|
||||
|
||||
// Linearly interpolates between a and b by t
|
||||
func Lerp(a, b, t)
|
||||
{
|
||||
float out = SLB.Math.Lerp(a, b, t)
|
||||
float out = ZS.Math.Lerp(a, b, t)
|
||||
return out
|
||||
}
|
||||
|
||||
// Get absolute value of x
|
||||
func Abs(x)
|
||||
{
|
||||
float out = SLB.Math.Abs(x)
|
||||
float out = ZS.Math.Abs(x)
|
||||
return out
|
||||
}
|
||||
|
||||
@ -95,46 +95,46 @@ func Clamp(input, min, max)
|
||||
// Sets color of pixel to RGB value
|
||||
func SetPixel(x, y, r, g, b)
|
||||
{
|
||||
string out = SLB.Graphics.SetPixel(x, y, r, g, b)
|
||||
string out = ZS.Graphics.SetPixel(x, y, r, g, b)
|
||||
return out
|
||||
}
|
||||
|
||||
// Prints input value to console
|
||||
func Print(in)
|
||||
{
|
||||
SLB.System.Print(in)
|
||||
ZS.System.Print(in)
|
||||
}
|
||||
|
||||
// Prints input value to console with appended newline '\n'
|
||||
func Printl(in)
|
||||
{
|
||||
SLB.System.PrintLine(in)
|
||||
ZS.System.PrintLine(in)
|
||||
}
|
||||
|
||||
// Creates new sprite class
|
||||
func NSprite(path, x, y, r)
|
||||
{
|
||||
Sprite s = SLB.Graphics.Sprite(path, x, y, r)
|
||||
Sprite s = ZS.Graphics.Sprite(path, x, y, r)
|
||||
return s
|
||||
}
|
||||
|
||||
// Draws sprite to window
|
||||
func Draw(spr)
|
||||
{
|
||||
SLB.Graphics.Draw(spr)
|
||||
ZS.Graphics.Draw(spr)
|
||||
}
|
||||
|
||||
// Creates new Vector2 class
|
||||
func NVec2(x, y)
|
||||
{
|
||||
Vec2 v = SLB.System.Vec2(x, y)
|
||||
Vec2 v = ZS.System.Vec2(x, y)
|
||||
return v
|
||||
}
|
||||
|
||||
// Gets if key is down
|
||||
func GetKey(keyName)
|
||||
{
|
||||
bool b = SLB.Input.GetKey(keyName)
|
||||
bool b = ZS.Input.GetKey(keyName)
|
||||
return b
|
||||
}
|
||||
)"
|
||||
@ -22,8 +22,9 @@
|
||||
<VCProjectVersion>16.0</VCProjectVersion>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectGuid>{d5f150f8-1f83-41eb-a195-1b5c3ca9322a}</ProjectGuid>
|
||||
<RootNamespace>Slang</RootNamespace>
|
||||
<RootNamespace>ZSharp</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
<ProjectName>ZSharp</ProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
@ -166,14 +167,14 @@
|
||||
<ClInclude Include="graphics.h" />
|
||||
<ClInclude Include="main.h" />
|
||||
<ClInclude Include="resource.h" />
|
||||
<ClInclude Include="SLB.h" />
|
||||
<ClInclude Include="ZS.h" />
|
||||
<ClInclude Include="strops.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Image Include="icon.ico" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="Slang.rc" />
|
||||
<ResourceCompile Include="ZSharp.rc" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
@ -41,7 +41,7 @@
|
||||
<ClInclude Include="main.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="SLB.h">
|
||||
<ClInclude Include="ZS.h">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="resource.h">
|
||||
@ -54,7 +54,7 @@
|
||||
</Image>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="Slang.rc">
|
||||
<ResourceCompile Include="ZSharp.rc">
|
||||
<Filter>Resource Files</Filter>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
@ -73,7 +73,7 @@ int InterpreterLog(const string& logText)
|
||||
bt = *localtime(&timer);
|
||||
#endif
|
||||
|
||||
cout << "\x1B[34m[" + to_string(Hour) + ":" + to_string(Min) + ":" + to_string(Sec) + "] \x1B[33mSlang: \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;
|
||||
}
|
||||
|
||||
@ -98,7 +98,7 @@ int LogCriticalError(const string& errorText)
|
||||
bt = *localtime(&timer);
|
||||
#endif
|
||||
|
||||
cerr << "\x1B[34m[" + to_string(Hour) + ":" + to_string(Min) + ":" + to_string(Sec) + "] \x1B[33mSlang: \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);
|
||||
return 2;
|
||||
}
|
||||
@ -255,62 +255,62 @@ int GetBuiltins(std::string s)
|
||||
}
|
||||
|
||||
// Executes
|
||||
boost::any SLBFunction(const string& name, const vector<boost::any>& args)
|
||||
boost::any ZSFunction(const string& name, const vector<boost::any>& args)
|
||||
{
|
||||
if (name == "SLB.Math.Sin")
|
||||
if (name == "ZS.Math.Sin")
|
||||
return sin(AnyAsFloat(args.at(0)));
|
||||
else if (name == "SLB.Math.Cos")
|
||||
else if (name == "ZS.Math.Cos")
|
||||
return cos(AnyAsFloat(args.at(0)));
|
||||
else if (name == "SLB.Math.Tan")
|
||||
else if (name == "ZS.Math.Tan")
|
||||
return tan(AnyAsFloat(args.at(0)));
|
||||
else if (name == "SLB.Math.Round")
|
||||
else if (name == "ZS.Math.Round")
|
||||
return AnyAsInt(args.at(0));
|
||||
else if (name == "SLB.Math.Lerp")
|
||||
else if (name == "ZS.Math.Lerp")
|
||||
return lerp(AnyAsFloat(args.at(0)), AnyAsFloat(args.at(1)), AnyAsFloat(args.at(2)));
|
||||
else if (name == "SLB.Math.Abs")
|
||||
else if (name == "ZS.Math.Abs")
|
||||
return abs(AnyAsFloat(args.at(0)));
|
||||
else if (name == "SLB.Graphics.Init")
|
||||
else if (name == "ZS.Graphics.Init")
|
||||
{
|
||||
#if DEVELOPER_MESSAGES == true
|
||||
InterpreterLog("Init graphics");
|
||||
#endif
|
||||
initGraphics(StringRaw(AnyAsString(args.at(0))), AnyAsInt(args.at(1)), AnyAsInt(args.at(2)));
|
||||
}
|
||||
else if (name == "SLB.Graphics.Sprite")
|
||||
else if (name == "ZS.Graphics.Sprite")
|
||||
{
|
||||
Sprite s(StringRaw(AnyAsString(args.at(0))), any_cast<Vec2>(args.at(1)), any_cast<Vec2>(args.at(2)), AnyAsFloat(args.at(3)));
|
||||
return s;
|
||||
}
|
||||
else if (name == "SLB.Graphics.Draw")
|
||||
else if (name == "ZS.Graphics.Draw")
|
||||
any_cast<Sprite>(args.at(0)).Draw();
|
||||
else if (name == "SLB.Graphics.Load")
|
||||
else if (name == "ZS.Graphics.Load")
|
||||
any_cast<Sprite>(args.at(0)).Load();
|
||||
else if (name == "SLB.Graphics.Text")
|
||||
else if (name == "ZS.Graphics.Text")
|
||||
{
|
||||
Text t(StringRaw(AnyAsString(args.at(0))), StringRaw(AnyAsString(args.at(1))), any_cast<Vec2>(args.at(2)), AnyAsFloat(args.at(3)), AnyAsFloat(args.at(4)), (Uint8)AnyAsFloat(args.at(5)), (Uint8)AnyAsFloat(args.at(6)), (Uint8)AnyAsFloat(args.at(7)));
|
||||
return t;
|
||||
}
|
||||
else if (name == "SLB.Graphics.DrawText")
|
||||
else if (name == "ZS.Graphics.DrawText")
|
||||
any_cast<Text>(args.at(0)).Draw();
|
||||
else if (name == "SLB.Graphics.LoadText")
|
||||
else if (name == "ZS.Graphics.LoadText")
|
||||
any_cast<Text>(args.at(0)).Load();
|
||||
else if (name == "SLB.Physics.AxisAlignedCollision")
|
||||
else if (name == "ZS.Physics.AxisAlignedCollision")
|
||||
{
|
||||
return AxisAlignedCollision(any_cast<Sprite>(args.at(0)), any_cast<Sprite>(args.at(1)));
|
||||
}
|
||||
else if (name == "SLB.Input.GetKey")
|
||||
else if (name == "ZS.Input.GetKey")
|
||||
return KEYS[StringRaw(any_cast<string>(args.at(0)))] == 1;
|
||||
else if (name == "SLB.System.Print")
|
||||
else if (name == "ZS.System.Print")
|
||||
cout << StringRaw(AnyAsString(args.at(0)));
|
||||
else if (name == "SLB.System.PrintLine")
|
||||
else if (name == "ZS.System.PrintLine")
|
||||
cout << StringRaw(AnyAsString(args.at(0))) << endl;
|
||||
else if (name == "SLB.System.Vec2")
|
||||
else if (name == "ZS.System.Vec2")
|
||||
{
|
||||
Vec2 v(AnyAsFloat(args.at(0)), AnyAsFloat(args.at(1)));
|
||||
return v;
|
||||
}
|
||||
else
|
||||
LogWarning("SLB function \'" + name + "\' does not exist.");
|
||||
LogWarning("ZS function \'" + name + "\' does not exist.");
|
||||
|
||||
return nullType;
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
// SLB program to evaluate a given expression
|
||||
// ZS program to evaluate a given expression
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <string>
|
||||
|
Before Width: | Height: | Size: 800 KiB After Width: | Height: | Size: 800 KiB |
0
Slang/linux-build/CMakeFiles/3.16.3/CompilerIdC/a.out → ZSharp/linux-build/CMakeFiles/3.16.3/CompilerIdC/a.out
Executable file → Normal file
0
Slang/linux-build/CMakeFiles/3.16.3/CompilerIdC/a.out → ZSharp/linux-build/CMakeFiles/3.16.3/CompilerIdC/a.out
Executable file → Normal file
0
Slang/linux-build/CMakeFiles/3.16.3/CompilerIdCXX/a.out → ZSharp/linux-build/CMakeFiles/3.16.3/CompilerIdCXX/a.out
Executable file → Normal file
0
Slang/linux-build/CMakeFiles/3.16.3/CompilerIdCXX/a.out → ZSharp/linux-build/CMakeFiles/3.16.3/CompilerIdCXX/a.out
Executable file → Normal file
@ -1,6 +1,6 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by Slang.rc
|
||||
// Used by ZSharp.rc
|
||||
//
|
||||
#define IDI_ICON1 101
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user