Skip to content

Commit

Permalink
[mlir] Add parseSymbolName that doesn't take an attribute list
Browse files Browse the repository at this point in the history
This patch adds a version of `parseSymbolName` and
`parseOptionalSymbolName` to AsmParser that don't take an attribute name
and attribute list.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D136696
  • Loading branch information
Jeff Niu committed Oct 27, 2022
1 parent ea1e767 commit c009505
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 9 deletions.
30 changes: 24 additions & 6 deletions mlir/include/mlir/IR/OpImplementation.h
Original file line number Diff line number Diff line change
Expand Up @@ -1009,21 +1009,39 @@ class AsmParser {
// Identifier Parsing
//===--------------------------------------------------------------------===//

/// 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
Expand Down
4 changes: 1 addition & 3 deletions mlir/lib/AsmParser/AsmParserImpl.h
Original file line number Diff line number Diff line change
Expand Up @@ -439,14 +439,12 @@ class AsmParserImpl : public BaseT {

/// 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
Expand Down

0 comments on commit c009505

Please sign in to comment.