diff options
Diffstat (limited to 'lib/Parser')
| -rw-r--r-- | lib/Parser/ParserType.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/Parser/ParserType.cc b/lib/Parser/ParserType.cc index dab71a1..dfeacf1 100644 --- a/lib/Parser/ParserType.cc +++ b/lib/Parser/ParserType.cc @@ -308,7 +308,15 @@ std::unique_ptr<StmtAST> Parser::ParseDeclare() { if (TypeStr.empty()) { return nullptr; } - return std::make_unique<DeclareStmtAST>(Name, TypeStr); + bool HasParens = CurTok == '('; + std::vector<std::unique_ptr<ExprAST>> Args; + if (HasParens) { + getNextToken(); + auto Parsed = ParseExprList(')', true); + if (!Parsed) return nullptr; + Args = std::move(*Parsed); + } + return std::make_unique<DeclareStmtAST>(Name, TypeStr, std::move(Args), HasParens); } } |
