feat: migrate from OpView to DoubleLinkedList<Op*> + multiple

funciton arguments
This commit is contained in:
2026-01-06 16:39:51 +01:00
parent 806e20d9b1
commit 589586db51
10 changed files with 136 additions and 89 deletions

View File

@@ -45,14 +45,15 @@ public:
// m_lexer->NextExpect(TokenType::Id);
// char* name = strdup(m_lexer->token().string);
m_lexer->NextExpect('(');
Node* arg = nullptr;
// TODO: support multiple arguments
if (m_lexer->seek_token()->token != ')')
Builder<Node*> args;
while (m_lexer->seek_token()->token != ')')
{
arg = ParseExpression();
auto arg = ParseExpression();
args.Push(arg);
if (m_lexer->seek_token()->token == ',') assert(m_lexer->NextToken());
}
m_lexer->NextExpect(')');
return new FnCallNode(name, arg);
return new FnCallNode(name, std::move(args.view()));
}
Node* ParseFactor()