feat: migrate from OpView to DoubleLinkedList<Op*> + multiple
funciton arguments
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user