base functional unit tests for transpiler

This commit is contained in:
jorenchik
2024-11-10 11:03:09 +02:00
parent 084f6afb13
commit f7f3ac5d4c
8 changed files with 481 additions and 32 deletions

View File

@@ -23,14 +23,14 @@ bool sof;
/*
* TODO
*/
void trimString(std::string &str, std::string trimChars) {
void trimString(std::string *str, std::string trimChars) {
// Noņem kreisās puses simbolus.
int padSize = 0;
bool pad = false;
for (size_t i = 0; i < str.size(); ++i) {
for (size_t i = 0; i < str->size(); ++i) {
for (size_t k = 0; k < trimChars.size(); ++k) {
if (str[i] == trimChars[k]) {
if ((*str)[i] == trimChars[k]) {
padSize++;
pad = true;
break;
@@ -42,15 +42,15 @@ void trimString(std::string &str, std::string trimChars) {
pad = false;
}
if (padSize > 0) {
str.erase(0, padSize);
str->erase(0, padSize);
}
// Noņem labās puses simbolus.
padSize = 0;
pad = false;
for (size_t i = str.size(); i-- > 0;) {
for (size_t i = str->size(); i-- > 0;) {
for (size_t k = 0; k < trimChars.size(); ++k) {
if (str[i] == trimChars[k]) {
if ((*str)[i] == trimChars[k]) {
padSize++;
pad = true;
break;
@@ -62,7 +62,7 @@ void trimString(std::string &str, std::string trimChars) {
pad = false;
}
if (padSize > 0) {
str.erase(str.end() - padSize, str.end());
str->erase(str->end() - padSize, str->end());
}
}
@@ -79,7 +79,7 @@ void tokenWithBuffer(
std::string token(buffer.end() - tokenLen, buffer.end());
if (buffer.size() > tokenLen) {
std::string prevFragment(buffer.begin(), buffer.end() - tokenLen);
trimString(prevFragment, " \n\t");
trimString(&prevFragment, " \n\t");
if (prevFragment.length() > 0) {
tokens.push_back(Token{
textType,