Add '*' and '?' and optional brace parse calls to the Parser
Closes #245 PiperOrigin-RevId: 281321459 Change-Id: Ica88f3e1d6c3441b43797fbdf20cfb51bd7fb719
This commit is contained in:
parent
a1233b60dc
commit
cd67f4f372
@ -185,9 +185,15 @@ public:
|
||||
/// Parse a '{' token.
|
||||
virtual ParseResult parseLBrace() = 0;
|
||||
|
||||
/// Parse a '{' token if present
|
||||
virtual ParseResult parseOptionalLBrace() = 0;
|
||||
|
||||
/// Parse a `}` token.
|
||||
virtual ParseResult parseRBrace() = 0;
|
||||
|
||||
/// Parse a `}` token if present
|
||||
virtual ParseResult parseOptionalRBrace() = 0;
|
||||
|
||||
/// Parse a `:` token.
|
||||
virtual ParseResult parseColon() = 0;
|
||||
|
||||
@ -264,6 +270,12 @@ public:
|
||||
/// Parse a `...` token if present;
|
||||
virtual ParseResult parseOptionalEllipsis() = 0;
|
||||
|
||||
/// Parse a `?` token.
|
||||
virtual ParseResult parseOptionalQuestion() = 0;
|
||||
|
||||
/// Parse a `*` token.
|
||||
virtual ParseResult parseOptionalStar() = 0;
|
||||
|
||||
//===--------------------------------------------------------------------===//
|
||||
// Attribute Parsing
|
||||
//===--------------------------------------------------------------------===//
|
||||
|
20
third_party/mlir/lib/Parser/Parser.cpp
vendored
20
third_party/mlir/lib/Parser/Parser.cpp
vendored
@ -501,11 +501,21 @@ public:
|
||||
return parser.parseToken(Token::l_brace, "expected '{'");
|
||||
}
|
||||
|
||||
/// Parse a '{' token if present
|
||||
ParseResult parseOptionalLBrace() override {
|
||||
return success(parser.consumeIf(Token::l_brace));
|
||||
}
|
||||
|
||||
/// Parse a `}` token.
|
||||
ParseResult parseRBrace() override {
|
||||
return parser.parseToken(Token::r_brace, "expected '}'");
|
||||
}
|
||||
|
||||
/// Parse a `}` token if present
|
||||
ParseResult parseOptionalRBrace() override {
|
||||
return success(parser.consumeIf(Token::r_brace));
|
||||
}
|
||||
|
||||
/// Parse a `:` token.
|
||||
ParseResult parseColon() override {
|
||||
return parser.parseToken(Token::colon, "expected ':'");
|
||||
@ -596,6 +606,16 @@ public:
|
||||
return success(parser.consumeIf(Token::r_square));
|
||||
}
|
||||
|
||||
/// Parses a '?' if present.
|
||||
ParseResult parseOptionalQuestion() override {
|
||||
return success(parser.consumeIf(Token::question));
|
||||
}
|
||||
|
||||
/// Parses a '*' if present.
|
||||
ParseResult parseOptionalStar() override {
|
||||
return success(parser.consumeIf(Token::star));
|
||||
}
|
||||
|
||||
/// Returns if the current token corresponds to a keyword.
|
||||
bool isCurrentTokenAKeyword() const {
|
||||
return parser.getToken().is(Token::bare_identifier) ||
|
||||
|
Loading…
Reference in New Issue
Block a user