diff options
-rw-r--r-- | mlir/include/mlir/IR/OpImplementation.h | 30 | ||||
-rw-r--r-- | mlir/lib/AsmParser/AsmParserImpl.h | 4 |
2 files changed, 25 insertions, 9 deletions
diff --git a/mlir/include/mlir/IR/OpImplementation.h b/mlir/include/mlir/IR/OpImplementation.h index 524c72d239cf..0c74af3508ae 100644 --- a/mlir/include/mlir/IR/OpImplementation.h +++ b/mlir/include/mlir/IR/OpImplementation.h @@ -1010,20 +1010,38 @@ public: //===--------------------------------------------------------------------===// /// Parse an @-identifier and store it (without the '@' symbol) in a string + /// attribute. + ParseResult parseSymbolName(StringAttr &result) { + if (failed(parseOptionalSymbolName(result))) + return emitError(getCurrentLocation()) + << "expected valid '@'-identifier for symbol name"; + return success(); + } + + /// Parse an @-identifier and store it (without the '@' symbol) in a string /// attribute named 'attrName'. ParseResult parseSymbolName(StringAttr &result, StringRef attrName, NamedAttrList &attrs) { - if (failed(parseOptionalSymbolName(result, attrName, attrs))) - return emitError(getCurrentLocation()) - << "expected valid '@'-identifier for symbol name"; + if (parseSymbolName(result)) + return failure(); + attrs.append(attrName, result); return success(); } /// Parse an optional @-identifier and store it (without the '@' symbol) in a + /// string attribute. + virtual ParseResult parseOptionalSymbolName(StringAttr &result) = 0; + + /// Parse an optional @-identifier and store it (without the '@' symbol) in a /// string attribute named 'attrName'. - virtual ParseResult parseOptionalSymbolName(StringAttr &result, - StringRef attrName, - NamedAttrList &attrs) = 0; + ParseResult parseOptionalSymbolName(StringAttr &result, StringRef attrName, + NamedAttrList &attrs) { + if (succeeded(parseOptionalSymbolName(result))) { + attrs.append(attrName, result); + return success(); + } + return failure(); + } //===--------------------------------------------------------------------===// // Resource Parsing diff --git a/mlir/lib/AsmParser/AsmParserImpl.h b/mlir/lib/AsmParser/AsmParserImpl.h index bb0fe5c56df0..d7e8a55089d3 100644 --- a/mlir/lib/AsmParser/AsmParserImpl.h +++ b/mlir/lib/AsmParser/AsmParserImpl.h @@ -439,14 +439,12 @@ public: /// Parse an optional @-identifier and store it (without the '@' symbol) in a /// string attribute named 'attrName'. - ParseResult parseOptionalSymbolName(StringAttr &result, StringRef attrName, - NamedAttrList &attrs) override { + ParseResult parseOptionalSymbolName(StringAttr &result) override { Token atToken = parser.getToken(); if (atToken.isNot(Token::at_identifier)) return failure(); result = getBuilder().getStringAttr(atToken.getSymbolReference()); - attrs.push_back(getBuilder().getNamedAttr(attrName, result)); parser.consumeToken(); // If we are populating the assembly parser state, record this as a symbol |