diff options
Diffstat (limited to 'mlir/lib/Parser/Parser.cpp')
| -rw-r--r-- | mlir/lib/Parser/Parser.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/mlir/lib/Parser/Parser.cpp b/mlir/lib/Parser/Parser.cpp index 3a45933db87..35c694b6a43 100644 --- a/mlir/lib/Parser/Parser.cpp +++ b/mlir/lib/Parser/Parser.cpp @@ -1533,7 +1533,7 @@ Attribute Parser::parseAttribute(Type type) { /// ParseResult Parser::parseAttributeDict(SmallVectorImpl<NamedAttribute> &attributes) { - if (!consumeIf(Token::l_brace)) + if (parseToken(Token::l_brace, "expected '{' in attribute dictionary")) return failure(); auto parseElt = [&]() -> ParseResult { @@ -3874,6 +3874,15 @@ public: return parser.parseAttributeDict(result); } + /// Parse a named dictionary into 'result' if the `attributes` keyword is + /// present. + ParseResult parseOptionalAttrDictWithKeyword( + SmallVectorImpl<NamedAttribute> &result) override { + if (failed(parseOptionalKeyword("attributes"))) + return success(); + return parser.parseAttributeDict(result); + } + //===--------------------------------------------------------------------===// // Identifier Parsing //===--------------------------------------------------------------------===// |

