Function arguments
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user