Attempt to add some more mathy and variable stuff
This commit is contained in:
parent
995514d62f
commit
f8c8296d01
18
src/main.cpp
18
src/main.cpp
|
@ -414,46 +414,44 @@ class Interpreter {
|
||||||
if (newToken.type == valtype::INT) {
|
if (newToken.type == valtype::INT) {
|
||||||
newToken.value.value = get<int>(before.value.value) + get<int>(after.value.value);
|
newToken.value.value = get<int>(before.value.value) + get<int>(after.value.value);
|
||||||
}
|
}
|
||||||
else if (newToken.type == valtype::DEC) {
|
else if (newToken.type == valtype::DEC) {
|
||||||
newToken.value.value = get<double>(before.value.value) + get<double>(after.value.value);
|
newToken.value.value = get<double>(before.value.value) + get<double>(after.value.value);
|
||||||
}
|
}
|
||||||
else if (newToken.type == valtype::STR) {
|
else if (newToken.type == valtype::STR) {
|
||||||
newToken.value.value = get<string>(before.value.value) + get<string>(after.value.value);
|
newToken.value.value = get<string>(before.value.value) + get<string>(after.value.value);
|
||||||
} else {
|
} else {
|
||||||
syntaxError.mathCannotDoOperationOnType("+", "bool");
|
syntaxError.mathCannotDoOperationOnType("+", "bool");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (currentInstruction[i].keyword == keywords::SUBTRACT) {
|
else if (currentInstruction[i].keyword == keywords::SUBTRACT) {
|
||||||
if (newToken.type == valtype::INT) {
|
if (newToken.type == valtype::INT) {
|
||||||
newToken.value.value = get<int>(before.value.value) - get<int>(after.value.value);
|
newToken.value.value = get<int>(before.value.value) - get<int>(after.value.value);
|
||||||
}
|
}
|
||||||
else if (newToken.type == valtype::DEC) {
|
else if (newToken.type == valtype::DEC) {
|
||||||
newToken.value.value = get<double>(before.value.value) - get<double>(after.value.value);
|
newToken.value.value = get<double>(before.value.value) - get<double>(after.value.value);
|
||||||
} else {
|
} else {
|
||||||
syntaxError.mathCannotDoOperationOnType("-", "bool or string");
|
syntaxError.mathCannotDoOperationOnType("-", "bool or string");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (currentInstruction[i].keyword == keywords::MULTIPLY) {
|
else if (currentInstruction[i].keyword == keywords::MULTIPLY) {
|
||||||
if (newToken.type == valtype::INT) {
|
if (newToken.type == valtype::INT) {
|
||||||
newToken.value.value = get<int>(before.value.value) * get<int>(after.value.value);
|
newToken.value.value = get<int>(before.value.value) * get<int>(after.value.value);
|
||||||
}
|
}
|
||||||
else if (newToken.type == valtype::DEC) {
|
else if (newToken.type == valtype::DEC) {
|
||||||
newToken.value.value = get<double>(before.value.value) * get<double>(after.value.value);
|
newToken.value.value = get<double>(before.value.value) * get<double>(after.value.value);
|
||||||
} else {
|
} else {
|
||||||
syntaxError.mathCannotDoOperationOnType("*", "bool or string");
|
syntaxError.mathCannotDoOperationOnType("*", "bool or string");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (currentInstruction[i].keyword == keywords::DIVIDE) {
|
else if (currentInstruction[i].keyword == keywords::DIVIDE) {
|
||||||
if (newToken.type == valtype::INT) {
|
if (newToken.type == valtype::INT) {
|
||||||
newToken.value.value = get<int>(before.value.value) / get<int>(after.value.value);
|
newToken.value.value = get<int>(before.value.value) / get<int>(after.value.value);
|
||||||
}
|
}
|
||||||
else if (newToken.type == valtype::DEC) {
|
else if (newToken.type == valtype::DEC) {
|
||||||
newToken.value.value = get<double>(before.value.value) / get<double>(after.value.value);
|
newToken.value.value = get<double>(before.value.value) / get<double>(after.value.value);
|
||||||
} else {
|
} else {
|
||||||
syntaxError.mathCannotDoOperationOnType("/", "bool or string");
|
syntaxError.mathCannotDoOperationOnType("/", "bool or string");
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
syntaxError.generalError("Da math aint mathing");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user