diff options
Diffstat (limited to 'lib/Parser/Parser.cc')
| -rw-r--r-- | lib/Parser/Parser.cc | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/Parser/Parser.cc b/lib/Parser/Parser.cc index 260472c..25fc342 100644 --- a/lib/Parser/Parser.cc +++ b/lib/Parser/Parser.cc @@ -555,9 +555,15 @@ std::unique_ptr<StmtAST> Parser::ParseStatementImpl() { } else if (CurTok == tok_output) { getNextToken(); - auto Expr = ParseExpression(); - if (!Expr) return nullptr; - return std::make_unique<OutputStmtAST>(std::move(Expr)); + std::vector<std::unique_ptr<ExprAST>> Exprs; + while (true) { + auto Expr = ParseExpression(); + if (!Expr) return nullptr; + Exprs.push_back(std::move(Expr)); + if (CurTok != ',') break; + getNextToken(); + } + return std::make_unique<OutputStmtAST>(std::move(Exprs)); } else if (CurTok == tok_if) { return ParseIfStmt(); |
