summaryrefslogtreecommitdiffstats
path: root/source/core/slang-token-reader.cpp
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2022-05-27 17:28:05 -0400
committerGitHub <noreply@github.com>2022-05-27 17:28:05 -0400
commit2d3392f22c894957d17dd13486e0565c4ecea89c (patch)
treece4dadbd85a59e52725fa6f92613553cd5b29859 /source/core/slang-token-reader.cpp
parentabb89b3e460e11e8f9a134199c2d559190bfc47e (diff)
Added NativeStringType (#2252)
* #include an absolute path didn't work - because paths were taken to always be relative. * Use TerminatedUnownedStringSlice for literals in output C++. * Remove Escape/Unescape functions used in slang-token-reader.cpp Add target type of 'host-cpp' etc to map to the target types. * Fix some corner cases around string encoding. * Added unit test for string escaping. Fixed some assorted escaping bugs. * Updated test output. * Added decode test. * Stop using hex output, to get around 'greedy' aspect. Use octal instead.
Diffstat (limited to 'source/core/slang-token-reader.cpp')
-rw-r--r--source/core/slang-token-reader.cpp87
1 files changed, 0 insertions, 87 deletions
diff --git a/source/core/slang-token-reader.cpp b/source/core/slang-token-reader.cpp
index 7ffbc12fa..5acc1736c 100644
--- a/source/core/slang-token-reader.cpp
+++ b/source/core/slang-token-reader.cpp
@@ -671,93 +671,6 @@ namespace Misc {
return TokenizeText("", text);
}
- String EscapeStringLiteral(String str)
- {
- StringBuilder sb;
- sb << "\"";
- const Index length = str.getLength();
- const char*const data = str.getBuffer();
- for (Index i = 0; i < length; i++)
- {
- switch (data[i])
- {
- case '\n':
- sb << "\\n";
- break;
- case '\r':
- sb << "\\r";
- break;
- case '\t':
- sb << "\\t";
- break;
- case '\v':
- sb << "\\v";
- break;
- case '\'':
- sb << "\\\'";
- break;
- case '\"':
- sb << "\\\"";
- break;
- case '\\':
- sb << "\\\\";
- break;
- default:
- sb << data[i];
- break;
- }
- }
- sb << "\"";
- return sb.ProduceString();
- }
-
- String UnescapeStringLiteral(String str)
- {
- StringBuilder sb;
- const Index length = str.getLength();
- const char*const data = str.getBuffer();
- for (Index i = 0; i < length; i++)
- {
- if (data[i] == '\\' && i < length - 1)
- {
- switch (data[i + 1])
- {
- case 's':
- sb << " ";
- break;
- case 't':
- sb << '\t';
- break;
- case 'n':
- sb << '\n';
- break;
- case 'r':
- sb << '\r';
- break;
- case 'v':
- sb << '\v';
- break;
- case '\'':
- sb << '\'';
- break;
- case '\"':
- sb << "\"";
- break;
- case '\\':
- sb << "\\";
- break;
- default:
- i = i - 1;
- sb << data[i];
- }
- i++;
- }
- else
- sb << data[i];
- }
- return sb.ProduceString();
- }
-
TokenReader::TokenReader(String text)
{
this->tokens = TokenizeText("", text);