Move Lexer to u16string handling, for unicode support
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2019-06-15 17:20:27 +02:00
parent f73bd2003c
commit 3dc67ec8a0
21 changed files with 189 additions and 145 deletions

View File

@@ -20,7 +20,7 @@ extern "C" {
return v->EvaluateBool();
}
const char* EvaluateEvalValueString(EvalValue* v){
const char16_t * EvaluateEvalValueString(EvalValue* v){
return v->EvaluateString() -> c_str();
}
@@ -36,7 +36,7 @@ extern "C" {
return new BooleanEvalValue(b);
}
EvalValue* CreateStringEvalValue(const char* s){
EvalValue* CreateStringEvalValue(const char16_t * s){
return new StringEvalValue(s);
}
}
@@ -47,11 +47,12 @@ extern "C" {
TEST_CASE( "Evaluate String", "[integration]" ) {
auto script = Script::Create("\"foo bar\"");
auto script = Script::Create(u"\"foo bar\"");
REQUIRE(!script->Diagnostics -> HasErrors());
script->Evaluate();
auto lastValue = script->GetLastValue();
REQUIRE(std::strcmp(EvaluateEvalValueString(lastValue), "foo bar") == 0);
auto s = u16string(EvaluateEvalValueString(lastValue));
REQUIRE(s == u"foo bar");
delete script;
}