Refactoring datatypes start (unstable)

This commit is contained in:
2025-10-04 11:02:55 +10:00
parent cf85205ff0
commit d9cd88625e
12 changed files with 323 additions and 133 deletions

View File

@@ -4,7 +4,7 @@
#include <string>
#include <memory>
#include <utility>
#include "../datatypes/lists.h"
#include "../datatypes/lists/lists.h"
InstructionType strToInstructionType(std::string in) {
if (in == "println") return InstructionType::Println;
@@ -45,8 +45,10 @@ Instruction::Instruction(std::vector<Value> toks) {
// Check type of value in first token, then compute token
if (toks[0].valtype == ValueType::Real) {
instruction = strToInstructionType(toks[0].real);
} else if (toks[0].valtype == ValueType::Variable) {
instruction = InstructionType::Variable;
} else {
error("Instruction should be a real");
error("Instruction should be a real or variable value");
}
if (instruction == InstructionType::Variable) {
for (const auto& tok : toks) {
@@ -202,7 +204,7 @@ std::vector<Value> split(std::string line) {
if (bracket_type == '(') {
splitvals.push_back(Value(Instruction(split(buf))));
} else {
splitvals.push_back(Value(parse_list_content(buf)));
splitvals.push_back(Value(parseListContent(buf)));
}
buf = "";
}