MLIR
20.0.0git
|
The DialectAsmParser has methods for interacting with the asm parser when parsing attributes and types. More...
#include "mlir/IR/DialectImplementation.h"
Public Member Functions | |
~DialectAsmParser () override | |
virtual StringRef | getFullSymbolSpec () const =0 |
Returns the full specification of the symbol being parsed. More... | |
AsmParser ()=default | |
Public Member Functions inherited from mlir::AsmParser | |
AsmParser ()=default | |
virtual | ~AsmParser () |
MLIRContext * | getContext () const |
virtual SMLoc | getNameLoc () const =0 |
Return the location of the original name token. More... | |
virtual InFlightDiagnostic | emitError (SMLoc loc, const Twine &message={})=0 |
Emit a diagnostic at the specified location and return failure. More... | |
virtual Builder & | getBuilder () const =0 |
Return a builder which provides useful access to MLIRContext, global objects like types and attributes. More... | |
virtual SMLoc | getCurrentLocation ()=0 |
Get the location of the next token and store it into the argument. More... | |
ParseResult | getCurrentLocation (SMLoc *loc) |
virtual Location | getEncodedSourceLoc (SMLoc loc)=0 |
Re-encode the given source location as an MLIR location and return it. More... | |
virtual ParseResult | parseArrow ()=0 |
Parse a '->' token. More... | |
virtual ParseResult | parseOptionalArrow ()=0 |
Parse a '->' token if present. More... | |
virtual ParseResult | parseLBrace ()=0 |
Parse a { token. More... | |
virtual ParseResult | parseOptionalLBrace ()=0 |
Parse a { token if present. More... | |
virtual ParseResult | parseRBrace ()=0 |
Parse a } token. More... | |
virtual ParseResult | parseOptionalRBrace ()=0 |
Parse a } token if present. More... | |
virtual ParseResult | parseColon ()=0 |
Parse a : token. More... | |
virtual ParseResult | parseOptionalColon ()=0 |
Parse a : token if present. More... | |
virtual ParseResult | parseComma ()=0 |
Parse a , token. More... | |
virtual ParseResult | parseOptionalComma ()=0 |
Parse a , token if present. More... | |
virtual ParseResult | parseEqual ()=0 |
Parse a = token. More... | |
virtual ParseResult | parseOptionalEqual ()=0 |
Parse a = token if present. More... | |
virtual ParseResult | parseLess ()=0 |
Parse a '<' token. More... | |
virtual ParseResult | parseOptionalLess ()=0 |
Parse a '<' token if present. More... | |
virtual ParseResult | parseGreater ()=0 |
Parse a '>' token. More... | |
virtual ParseResult | parseOptionalGreater ()=0 |
Parse a '>' token if present. More... | |
virtual ParseResult | parseQuestion ()=0 |
Parse a '?' token. More... | |
virtual ParseResult | parseOptionalQuestion ()=0 |
Parse a '?' token if present. More... | |
virtual ParseResult | parsePlus ()=0 |
Parse a '+' token. More... | |
virtual ParseResult | parseOptionalPlus ()=0 |
Parse a '+' token if present. More... | |
virtual ParseResult | parseMinus ()=0 |
Parse a '-' token. More... | |
virtual ParseResult | parseOptionalMinus ()=0 |
Parse a '-' token if present. More... | |
virtual ParseResult | parseStar ()=0 |
Parse a '*' token. More... | |
virtual ParseResult | parseOptionalStar ()=0 |
Parse a '*' token if present. More... | |
virtual ParseResult | parseVerticalBar ()=0 |
Parse a '|' token. More... | |
virtual ParseResult | parseOptionalVerticalBar ()=0 |
Parse a '|' token if present. More... | |
ParseResult | parseString (std::string *string) |
Parse a quoted string token. More... | |
virtual ParseResult | parseOptionalString (std::string *string)=0 |
Parse a quoted string token if present. More... | |
virtual ParseResult | parseBase64Bytes (std::vector< char > *bytes)=0 |
Parses a Base64 encoded string of bytes. More... | |
virtual ParseResult | parseLParen ()=0 |
Parse a ( token. More... | |
virtual ParseResult | parseOptionalLParen ()=0 |
Parse a ( token if present. More... | |
virtual ParseResult | parseRParen ()=0 |
Parse a ) token. More... | |
virtual ParseResult | parseOptionalRParen ()=0 |
Parse a ) token if present. More... | |
virtual ParseResult | parseLSquare ()=0 |
Parse a [ token. More... | |
virtual ParseResult | parseOptionalLSquare ()=0 |
Parse a [ token if present. More... | |
virtual ParseResult | parseRSquare ()=0 |
Parse a ] token. More... | |
virtual ParseResult | parseOptionalRSquare ()=0 |
Parse a ] token if present. More... | |
virtual ParseResult | parseEllipsis ()=0 |
Parse a ... token. More... | |
virtual ParseResult | parseOptionalEllipsis ()=0 |
Parse a ... token if present;. More... | |
virtual ParseResult | parseFloat (double &result)=0 |
Parse a floating point value from the stream. More... | |
virtual ParseResult | parseFloat (const llvm::fltSemantics &semantics, APFloat &result)=0 |
Parse a floating point value into APFloat from the stream. More... | |
template<typename IntT > | |
ParseResult | parseInteger (IntT &result) |
Parse an integer value from the stream. More... | |
template<typename IntT > | |
ParseResult | parseDecimalInteger (IntT &result) |
Parse a decimal integer value from the stream. More... | |
virtual OptionalParseResult | parseOptionalInteger (APInt &result)=0 |
Parse an optional integer value from the stream. More... | |
virtual OptionalParseResult | parseOptionalDecimalInteger (APInt &result)=0 |
template<typename IntT > | |
OptionalParseResult | parseOptionalInteger (IntT &result) |
template<typename IntT > | |
OptionalParseResult | parseOptionalDecimalInteger (IntT &result) |
virtual ParseResult | parseCommaSeparatedList (Delimiter delimiter, function_ref< ParseResult()> parseElementFn, StringRef contextMessage=StringRef())=0 |
Parse a list of comma-separated items with an optional delimiter. More... | |
ParseResult | parseCommaSeparatedList (function_ref< ParseResult()> parseElementFn) |
Parse a comma separated list of elements that must have at least one entry in it. More... | |
ParseResult | parseKeyword (StringRef keyword) |
Parse a given keyword. More... | |
virtual ParseResult | parseKeyword (StringRef keyword, const Twine &msg)=0 |
ParseResult | parseKeyword (StringRef *keyword) |
Parse a keyword into 'keyword'. More... | |
virtual ParseResult | parseOptionalKeyword (StringRef keyword)=0 |
Parse the given keyword if present. More... | |
virtual ParseResult | parseOptionalKeyword (StringRef *keyword)=0 |
Parse a keyword, if present, into 'keyword'. More... | |
virtual ParseResult | parseOptionalKeyword (StringRef *keyword, ArrayRef< StringRef > allowedValues)=0 |
Parse a keyword, if present, and if one of the 'allowedValues', into 'keyword'. More... | |
ParseResult | parseKeywordOrString (std::string *result) |
Parse a keyword or a quoted string. More... | |
virtual ParseResult | parseOptionalKeywordOrString (std::string *result)=0 |
Parse an optional keyword or string. More... | |
template<typename T , typename... ParamsT> | |
auto | getChecked (SMLoc loc, ParamsT &&...params) |
Invoke the getChecked method of the given Attribute or Type class, using the provided location to emit errors in the case of failure. More... | |
template<typename T , typename... ParamsT> | |
auto | getChecked (ParamsT &&...params) |
A variant of getChecked that uses the result of getNameLoc to emit errors. More... | |
virtual ParseResult | parseAttribute (Attribute &result, Type type={})=0 |
Parse an arbitrary attribute of a given type and return it in result. More... | |
virtual ParseResult | parseCustomAttributeWithFallback (Attribute &result, Type type, function_ref< ParseResult(Attribute &result, Type type)> parseAttribute)=0 |
Parse a custom attribute with the provided callback, unless the next token is # , in which case the generic parser is invoked. More... | |
template<typename AttrType > | |
ParseResult | parseAttribute (AttrType &result, Type type={}) |
Parse an attribute of a specific kind and type. More... | |
ParseResult | parseAttribute (Attribute &result, StringRef attrName, NamedAttrList &attrs) |
Parse an arbitrary attribute and return it in result. More... | |
template<typename AttrType > | |
ParseResult | parseAttribute (AttrType &result, StringRef attrName, NamedAttrList &attrs) |
Parse an attribute of a specific kind and type. More... | |
template<typename AttrType > | |
ParseResult | parseAttribute (AttrType &result, Type type, StringRef attrName, NamedAttrList &attrs) |
Parse an arbitrary attribute of a given type and populate it in result . More... | |
template<typename AttrType > | |
std::enable_if_t< detect_has_parse_method< AttrType >::value, ParseResult > | parseCustomAttributeWithFallback (AttrType &result, Type type, StringRef attrName, NamedAttrList &attrs) |
Parse a custom attribute of a given type unless the next token is # , in which case the generic parser is invoked. More... | |
template<typename AttrType > | |
std::enable_if_t<!detect_has_parse_method< AttrType >::value, ParseResult > | parseCustomAttributeWithFallback (AttrType &result, Type type, StringRef attrName, NamedAttrList &attrs) |
SFINAE parsing method for Attribute that don't implement a parse method. More... | |
template<typename AttrType > | |
std::enable_if_t< detect_has_parse_method< AttrType >::value, ParseResult > | parseCustomAttributeWithFallback (AttrType &result, Type type={}) |
Parse a custom attribute of a given type unless the next token is # , in which case the generic parser is invoked. More... | |
template<typename AttrType > | |
std::enable_if_t<!detect_has_parse_method< AttrType >::value, ParseResult > | parseCustomAttributeWithFallback (AttrType &result, Type type={}) |
SFINAE parsing method for Attribute that don't implement a parse method. More... | |
virtual OptionalParseResult | parseOptionalAttribute (Attribute &result, Type type={})=0 |
Parse an arbitrary optional attribute of a given type and return it in result. More... | |
virtual OptionalParseResult | parseOptionalAttribute (ArrayAttr &result, Type type={})=0 |
Parse an optional array attribute and return it in result. More... | |
virtual OptionalParseResult | parseOptionalAttribute (StringAttr &result, Type type={})=0 |
Parse an optional string attribute and return it in result. More... | |
virtual OptionalParseResult | parseOptionalAttribute (SymbolRefAttr &result, Type type={})=0 |
Parse an optional symbol ref attribute and return it in result. More... | |
template<typename AttrType > | |
OptionalParseResult | parseOptionalAttribute (AttrType &result, StringRef attrName, NamedAttrList &attrs) |
Parse an optional attribute of a specific type and add it to the list with the specified name. More... | |
template<typename AttrType > | |
OptionalParseResult | parseOptionalAttribute (AttrType &result, Type type, StringRef attrName, NamedAttrList &attrs) |
Parse an optional attribute of a specific type and add it to the list with the specified name. More... | |
virtual ParseResult | parseOptionalAttrDict (NamedAttrList &result)=0 |
Parse a named dictionary into 'result' if it is present. More... | |
virtual ParseResult | parseOptionalAttrDictWithKeyword (NamedAttrList &result)=0 |
Parse a named dictionary into 'result' if the attributes keyword is present. More... | |
virtual ParseResult | parseAffineMap (AffineMap &map)=0 |
Parse an affine map instance into 'map'. More... | |
virtual ParseResult | parseAffineExpr (ArrayRef< std::pair< StringRef, AffineExpr >> symbolSet, AffineExpr &expr)=0 |
Parse an affine expr instance into 'expr' using the already computed mapping from symbols to affine expressions in 'symbolSet'. More... | |
virtual ParseResult | parseIntegerSet (IntegerSet &set)=0 |
Parse an integer set instance into 'set'. More... | |
ParseResult | parseSymbolName (StringAttr &result) |
Parse an -identifier and store it (without the '@' symbol) in a string attribute. More... | |
ParseResult | parseSymbolName (StringAttr &result, StringRef attrName, NamedAttrList &attrs) |
Parse an -identifier and store it (without the '@' symbol) in a string attribute named 'attrName'. More... | |
virtual ParseResult | parseOptionalSymbolName (StringAttr &result)=0 |
Parse an optional -identifier and store it (without the '@' symbol) in a string attribute. More... | |
ParseResult | parseOptionalSymbolName (StringAttr &result, StringRef attrName, NamedAttrList &attrs) |
Parse an optional -identifier and store it (without the '@' symbol) in a string attribute named 'attrName'. More... | |
template<typename ResourceT > | |
FailureOr< ResourceT > | parseResourceHandle () |
Parse a handle to a resource within the assembly format. More... | |
virtual ParseResult | parseType (Type &result)=0 |
Parse a type. More... | |
virtual ParseResult | parseCustomTypeWithFallback (Type &result, function_ref< ParseResult(Type &result)> parseType)=0 |
Parse a custom type with the provided callback, unless the next token is # , in which case the generic parser is invoked. More... | |
virtual OptionalParseResult | parseOptionalType (Type &result)=0 |
Parse an optional type. More... | |
template<typename TypeT > | |
ParseResult | parseType (TypeT &result) |
Parse a type of a specific type. More... | |
template<typename TypeT > | |
std::enable_if_t< detect_type_has_parse_method< TypeT >::value, ParseResult > | parseCustomTypeWithFallback (TypeT &result) |
Parse a custom Type of a given type unless the next token is # , in which case the generic parser is invoked. More... | |
template<typename TypeT > | |
std::enable_if_t<!detect_type_has_parse_method< TypeT >::value, ParseResult > | parseCustomTypeWithFallback (TypeT &result) |
SFINAE parsing method for Type that don't implement a parse method. More... | |
ParseResult | parseTypeList (SmallVectorImpl< Type > &result) |
Parse a type list. More... | |
virtual ParseResult | parseArrowTypeList (SmallVectorImpl< Type > &result)=0 |
Parse an arrow followed by a type list. More... | |
virtual ParseResult | parseOptionalArrowTypeList (SmallVectorImpl< Type > &result)=0 |
Parse an optional arrow followed by a type list. More... | |
virtual ParseResult | parseColonType (Type &result)=0 |
Parse a colon followed by a type. More... | |
template<typename TypeType > | |
ParseResult | parseColonType (TypeType &result) |
Parse a colon followed by a type of a specific kind, e.g. a FunctionType. More... | |
virtual ParseResult | parseColonTypeList (SmallVectorImpl< Type > &result)=0 |
Parse a colon followed by a type list, which must have at least one type. More... | |
virtual ParseResult | parseOptionalColonTypeList (SmallVectorImpl< Type > &result)=0 |
Parse an optional colon followed by a type list, which if present must have at least one type. More... | |
ParseResult | parseKeywordType (const char *keyword, Type &result) |
Parse a keyword followed by a type. More... | |
ParseResult | addTypeToList (Type type, SmallVectorImpl< Type > &result) |
Add the specified type to the end of the specified type list and return success. More... | |
ParseResult | addTypesToList (ArrayRef< Type > types, SmallVectorImpl< Type > &result) |
Add the specified types to the end of the specified type list and return success. More... | |
virtual ParseResult | parseDimensionList (SmallVectorImpl< int64_t > &dimensions, bool allowDynamic=true, bool withTrailingX=true)=0 |
Parse a dimension list of a tensor or memref type. More... | |
virtual ParseResult | parseXInDimensionList ()=0 |
Parse an 'x' token in a dimension list, handling the case where the x is juxtaposed with an element type, as in "xf32", leaving the "f32" as the next token. More... | |
template<class AttrOrTypeT > | |
FailureOr< CyclicParseReset > | tryStartCyclicParse (AttrOrTypeT attrOrType) |
Attempts to start a cyclic parsing region for attrOrType . More... | |
Additional Inherited Members | |
Public Types inherited from mlir::AsmParser | |
enum class | Delimiter { None , Paren , Square , LessGreater , Braces , OptionalParen , OptionalSquare , OptionalLessGreater , OptionalBraces } |
These are the supported delimiters around operand lists and region argument lists, used by parseOperandList. More... | |
template<typename AttrType > | |
using | has_parse_method = decltype(AttrType::parse(std::declval< AsmParser & >(), std::declval< Type >())) |
Trait to check if AttrType provides a parse method. More... | |
template<typename AttrType > | |
using | detect_has_parse_method = llvm::is_detected< has_parse_method, AttrType > |
template<typename TypeT > | |
using | type_has_parse_method = decltype(TypeT::parse(std::declval< AsmParser & >())) |
Trait to check if TypeT provides a parse method. More... | |
template<typename TypeT > | |
using | detect_type_has_parse_method = llvm::is_detected< type_has_parse_method, TypeT > |
Protected Member Functions inherited from mlir::AsmParser | |
virtual FailureOr< AsmDialectResourceHandle > | parseResourceHandle (Dialect *dialect)=0 |
Parse a handle to a resource within the assembly format for the given dialect. More... | |
virtual LogicalResult | pushCyclicParsing (const void *opaquePointer)=0 |
Pushes a new attribute or type in the form of a type erased pointer into an internal set. More... | |
virtual void | popCyclicParsing ()=0 |
Removes the element that was last inserted with a successful call to pushCyclicParsing . More... | |
virtual ParseResult | parseKeywordOrCompletion (StringRef *keyword)=0 |
Parse a keyword, or an empty string if the current location signals a code completion. More... | |
virtual void | codeCompleteExpectedTokens (ArrayRef< StringRef > tokens)=0 |
Signal the code completion of a set of expected tokens. More... | |
The DialectAsmParser has methods for interacting with the asm parser when parsing attributes and types.
Definition at line 56 of file DialectImplementation.h.
|
overridedefault |
|
default |
|
pure virtual |
Returns the full specification of the symbol being parsed.
This allows for using a separate parser if necessary.
Referenced by mlir::Dialect::parseType().