Function arguments

This commit is contained in:
2025-10-02 12:41:11 +10:00
parent 2a977707ee
commit 08d3c1545b
10 changed files with 148 additions and 38 deletions

View File

@@ -147,9 +147,18 @@ std::vector<Instruction> parse(std::string program) {
continue;
}
// 1. Function name
std::string name = line.substr(3, block_start - 3);
function_inst.args.push_back(Value(Instruction(split(trim(name)))));
// 1. Function signature (name + args)
std::string signature_str = line.substr(3, block_start - 3);
std::vector<Value> signature_parts = split(trim(signature_str));
if (signature_parts.empty()) {
error("Function definition is missing a name.");
continue;
}
for(const auto& part : signature_parts) {
function_inst.args.push_back(part);
}
// 2. Find 'then' block
size_t block_end = 0;