Move Lexer to u16string handling, for unicode support
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -5,10 +5,10 @@
|
||||
TEST_CASE( "Basic conditional", "[integration]" ) {
|
||||
Script* script = Script::Create("if true then foo = true end");
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
auto variable = script->GetVariable("foo");
|
||||
auto variable = script->GetVariable(u"foo");
|
||||
REQUIRE(variable == nullptr);
|
||||
script->Evaluate();
|
||||
variable = script->GetVariable("foo");
|
||||
variable = script->GetVariable(u"foo");
|
||||
REQUIRE(variable != nullptr);
|
||||
REQUIRE(variable->EvaluateBool());
|
||||
delete script;
|
||||
@@ -17,10 +17,10 @@ TEST_CASE( "Basic conditional", "[integration]" ) {
|
||||
TEST_CASE( "If then, else", "[integration]" ) {
|
||||
Script* script = Script::Create("if false then foo = false else foo = true end");
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
auto variable = script->GetVariable("foo");
|
||||
auto variable = script->GetVariable(u"foo");
|
||||
REQUIRE(variable == nullptr);
|
||||
script->Evaluate();
|
||||
variable = script->GetVariable("foo");
|
||||
variable = script->GetVariable(u"foo");
|
||||
REQUIRE(variable != nullptr);
|
||||
REQUIRE(variable->EvaluateBool());
|
||||
delete script;
|
||||
@@ -29,10 +29,10 @@ TEST_CASE( "If then, else", "[integration]" ) {
|
||||
TEST_CASE( "If then, else if", "[integration]" ) {
|
||||
Script* script = Script::Create("if false then foo = false elseif true then foo = true end");
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
auto variable = script->GetVariable("foo");
|
||||
auto variable = script->GetVariable(u"foo");
|
||||
REQUIRE(variable == nullptr);
|
||||
script->Evaluate();
|
||||
variable = script->GetVariable("foo");
|
||||
variable = script->GetVariable(u"foo");
|
||||
REQUIRE(variable != nullptr);
|
||||
REQUIRE(variable->EvaluateBool());
|
||||
delete script;
|
||||
|
||||
@@ -6,7 +6,7 @@ TEST_CASE( "Define script function", "[integration]" ) {
|
||||
Script* script = Script::Create("function add(number a, number b) a + b end");
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
auto variable = script->GetVariable("add");
|
||||
auto variable = script->GetVariable(u"add");
|
||||
REQUIRE(variable != nullptr);
|
||||
REQUIRE(variable->GetTypeClass() == TypeClass::Function);
|
||||
delete script;
|
||||
@@ -16,10 +16,10 @@ TEST_CASE( "Define script function and call", "[integration]" ) {
|
||||
Script* script = Script::Create("function add(number a, number b) result = a + b end add(1, 2)");
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
auto variable = script->GetVariable("add");
|
||||
auto variable = script->GetVariable(u"add");
|
||||
REQUIRE(variable != nullptr);
|
||||
REQUIRE(variable->GetTypeClass() == TypeClass::Function);
|
||||
auto result = script->GetVariable("result");
|
||||
auto result = script->GetVariable(u"result");
|
||||
REQUIRE(result->GetTypeClass() == TypeClass::Number);
|
||||
REQUIRE(result->EvaluateInteger() == 3);
|
||||
delete script;
|
||||
@@ -29,10 +29,10 @@ TEST_CASE( "Define script function and call multiple times", "[integration]" ) {
|
||||
Script* script = Script::Create("result = 0 function add(number a) result = result + a end add(1) add(4)");
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
auto variable = script->GetVariable("add");
|
||||
auto variable = script->GetVariable(u"add");
|
||||
REQUIRE(variable != nullptr);
|
||||
REQUIRE(variable->GetTypeClass() == TypeClass::Function);
|
||||
auto result = script->GetVariable("result");
|
||||
auto result = script->GetVariable(u"result");
|
||||
REQUIRE(result->GetTypeClass() == TypeClass::Number);
|
||||
REQUIRE(result->EvaluateInteger() == 5);
|
||||
delete script;
|
||||
@@ -43,15 +43,15 @@ TEST_CASE( "Define script function and call from extern", "[integration]" ) {
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
|
||||
REQUIRE(script->HasFunction("add"));
|
||||
REQUIRE(script->HasFunction(u"add"));
|
||||
auto toAddVal = new IntegerEvalValue(5);
|
||||
script->CallFunction("add", {toAddVal});
|
||||
script->CallFunction(u"add", {toAddVal});
|
||||
delete toAddVal;
|
||||
toAddVal = new IntegerEvalValue(6);
|
||||
script->CallFunction("add", {toAddVal});
|
||||
script->CallFunction(u"add", {toAddVal});
|
||||
delete toAddVal;
|
||||
|
||||
auto result = script->GetVariable("result");
|
||||
auto result = script->GetVariable(u"result");
|
||||
REQUIRE(result->GetTypeClass() == TypeClass::Number);
|
||||
REQUIRE(result->EvaluateInteger() == 11);
|
||||
delete script;
|
||||
@@ -67,17 +67,17 @@ TEST_CASE( "Define script function and return", "[integration]" ) {
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
|
||||
REQUIRE(script->HasFunction("add"));
|
||||
REQUIRE(script->HasFunction(u"add"));
|
||||
auto toAddVal = new IntegerEvalValue(5);
|
||||
auto toAddVal2 = new IntegerEvalValue(6);
|
||||
auto result = script->CallFunction("add", {toAddVal, toAddVal2});
|
||||
auto result = script->CallFunction(u"add", {toAddVal, toAddVal2});
|
||||
delete toAddVal;
|
||||
delete toAddVal2;
|
||||
|
||||
REQUIRE(result->GetTypeClass() == TypeClass::Number);
|
||||
REQUIRE(result->EvaluateInteger() == 11);
|
||||
|
||||
auto variable = script->GetVariable("val");
|
||||
auto variable = script->GetVariable(u"val");
|
||||
REQUIRE(variable->GetTypeClass() == TypeClass::Number);
|
||||
REQUIRE(variable->EvaluateInteger() == 0);
|
||||
|
||||
@@ -97,9 +97,9 @@ end
|
||||
)");
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
script->CallFunction("add", {});
|
||||
script->CallFunction(u"add", {});
|
||||
|
||||
auto variable = script->GetVariable("val");
|
||||
auto variable = script->GetVariable(u"val");
|
||||
REQUIRE(variable->GetTypeClass() == TypeClass::Number);
|
||||
REQUIRE(variable->EvaluateInteger() == 5);
|
||||
|
||||
@@ -127,7 +127,7 @@ test()
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
|
||||
auto variable = script->GetVariable("result");
|
||||
auto variable = script->GetVariable(u"result");
|
||||
REQUIRE(variable->GetTypeClass() == TypeClass::Number);
|
||||
REQUIRE(variable->EvaluateInteger() == 50);
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ TEST_CASE( "String indexing", "[integration]" ) {
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
auto lastValue = script->GetLastValue();
|
||||
REQUIRE(*lastValue->EvaluateString() == "b");
|
||||
REQUIRE(*lastValue->EvaluateString() == u"b");
|
||||
delete script;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ TEST_CASE( "Simple String", "[integration]" ) {
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
auto lastValue = script->GetLastValue();
|
||||
REQUIRE(*lastValue->EvaluateString() == "foo bar");
|
||||
REQUIRE(*lastValue->EvaluateString() == u"foo bar");
|
||||
delete script;
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ TEST_CASE( "String Concat", "[integration]" ) {
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
auto lastValue = script->GetLastValue();
|
||||
REQUIRE(*lastValue->EvaluateString() == "foobar");
|
||||
REQUIRE(*lastValue->EvaluateString() == u"foobar");
|
||||
delete script;
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ TEST_CASE( "String Concat 2", "[integration]" ) {
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
auto lastValue = script->GetLastValue();
|
||||
REQUIRE(*lastValue->EvaluateString() == "foobar");
|
||||
REQUIRE(*lastValue->EvaluateString() == u"foobar");
|
||||
delete script;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ TEST_CASE( "Create empty table", "[integration]" ) {
|
||||
Script* script = Script::Create("table = {}");
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
auto variable = script->GetVariable("table");
|
||||
auto variable = script->GetVariable(u"table");
|
||||
REQUIRE(variable != nullptr);
|
||||
delete script;
|
||||
}
|
||||
@@ -16,7 +16,7 @@ TEST_CASE( "Create simple integer table", "[integration]" ) {
|
||||
Script* script = Script::Create("table = {100, 50, 20, 5, -100, 50+50}");
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
auto variable = script->GetVariable("table");
|
||||
auto variable = script->GetVariable(u"table");
|
||||
REQUIRE(variable != nullptr);
|
||||
delete script;
|
||||
}
|
||||
@@ -25,7 +25,7 @@ TEST_CASE( "Create simple string table", "[integration]" ) {
|
||||
Script* script = Script::Create("table = {'bla', 'test', 'foo', 'bar'}");
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
auto variable = script->GetVariable("table");
|
||||
auto variable = script->GetVariable(u"table");
|
||||
REQUIRE(variable != nullptr);
|
||||
delete script;
|
||||
}
|
||||
@@ -39,7 +39,7 @@ return table[3]
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
auto variable = script->Evaluate();
|
||||
REQUIRE(variable != nullptr);
|
||||
REQUIRE(*variable->EvaluateString() == "foo");
|
||||
REQUIRE(*variable->EvaluateString() == u"foo");
|
||||
delete script;
|
||||
}
|
||||
|
||||
@@ -53,10 +53,10 @@ table = {
|
||||
)");
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
auto variable = script->GetVariable("table");
|
||||
auto variable = script->GetVariable(u"table");
|
||||
REQUIRE(variable != nullptr);
|
||||
auto table = (TableEvalValue*)variable;
|
||||
CHECK(*table->IndexValue("foo")->EvaluateString() == "test");
|
||||
CHECK(*table->IndexValue("foo")->EvaluateString() == u"test");
|
||||
CHECK(table->IndexValue("bar")->EvaluateInteger() == 100);
|
||||
delete script;
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ end
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
auto parameter = new UserDataValue(HashedString::ConstHash("testObject"), new UserDataTestObject());
|
||||
auto variable = script->CallFunction("testFunc", {parameter});
|
||||
auto variable = script->CallFunction(u"testFunc", {parameter});
|
||||
REQUIRE(variable != nullptr);
|
||||
REQUIRE(variable->EvaluateInteger() == 10);
|
||||
delete script;
|
||||
@@ -55,7 +55,7 @@ end
|
||||
script->Evaluate();
|
||||
auto obj = new UserDataTestObject();
|
||||
auto parameter = new UserDataValue(HashedString::ConstHash("testObject"), obj);
|
||||
script->CallFunction("testFunc", {parameter});
|
||||
script->CallFunction(u"testFunc", {parameter});
|
||||
delete script;
|
||||
REQUIRE(obj->foo == 5000);
|
||||
delete obj;
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
TEST_CASE( "Create script variable", "[integration]" ) {
|
||||
Script* script = Script::Create("foo = true");
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
auto variable = script->GetVariable("foo");
|
||||
auto variable = script->GetVariable(u"foo");
|
||||
REQUIRE(variable == nullptr);
|
||||
script->Evaluate();
|
||||
variable = script->GetVariable("foo");
|
||||
variable = script->GetVariable(u"foo");
|
||||
REQUIRE(variable != nullptr);
|
||||
REQUIRE(variable->EvaluateBool());
|
||||
delete script;
|
||||
@@ -17,7 +17,7 @@ TEST_CASE( "Create script variable", "[integration]" ) {
|
||||
TEST_CASE( "Create local variable", "[integration]" ) {
|
||||
Script* script = Script::Create("local foo = true");
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
REQUIRE_FALSE(script->HasVariable("foo"));
|
||||
REQUIRE_FALSE(script->HasVariable(u"foo"));
|
||||
script->Evaluate();
|
||||
delete script;
|
||||
}
|
||||
@@ -27,7 +27,7 @@ TEST_CASE( "Create script variable and use", "[integration]" ) {
|
||||
"bar = not foo");
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
auto variable = script->GetVariable("bar");
|
||||
auto variable = script->GetVariable(u"bar");
|
||||
REQUIRE(variable != nullptr);
|
||||
CHECK(variable->EvaluateBool());
|
||||
delete script;
|
||||
@@ -38,7 +38,7 @@ TEST_CASE( "Create local variable and use", "[integration]" ) {
|
||||
"bar = not foo");
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
auto variable = script->GetVariable("bar");
|
||||
auto variable = script->GetVariable(u"bar");
|
||||
REQUIRE(variable != nullptr);
|
||||
CHECK(variable->EvaluateBool());
|
||||
delete script;
|
||||
@@ -55,9 +55,9 @@ end
|
||||
)");
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
script -> CallFunction("bar", {});
|
||||
script -> CallFunction("bar", {});
|
||||
auto variable = script->GetVariable("result");
|
||||
script -> CallFunction(u"bar", {});
|
||||
script -> CallFunction(u"bar", {});
|
||||
auto variable = script->GetVariable(u"result");
|
||||
REQUIRE(variable != nullptr);
|
||||
CHECK(variable->EvaluateInteger() == 2);
|
||||
delete script;
|
||||
|
||||
Reference in New Issue
Block a user