MLIR  19.0.0git
Public Member Functions | List of all members
mlir::DialectAsmParser Class Referenceabstract

The DialectAsmParser has methods for interacting with the asm parser when parsing attributes and types. More...

#include "mlir/IR/DialectImplementation.h"

+ Inheritance diagram for mlir::DialectAsmParser:

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 ()
 
MLIRContextgetContext () 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 BuildergetBuilder () 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 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...
 
template<typename IntT >
ParseResult parseInteger (IntT &result)
 Parse an integer value from the stream. More...
 
virtual OptionalParseResult parseOptionalInteger (APInt &result)=0
 Parse an optional integer value from the stream. More...
 
template<typename IntT >
OptionalParseResult parseOptionalInteger (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, ParseResultparseCustomAttributeWithFallback (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, ParseResultparseCustomAttributeWithFallback (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, ParseResultparseCustomAttributeWithFallback (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, ParseResultparseCustomAttributeWithFallback (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, ParseResultparseCustomTypeWithFallback (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, ParseResultparseCustomTypeWithFallback (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< CyclicParseResettryStartCyclicParse (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< AsmDialectResourceHandleparseResourceHandle (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...
 

Detailed Description

The DialectAsmParser has methods for interacting with the asm parser when parsing attributes and types.

Definition at line 40 of file DialectImplementation.h.

Constructor & Destructor Documentation

◆ ~DialectAsmParser()

DialectAsmParser::~DialectAsmParser ( )
overridedefault

Member Function Documentation

◆ AsmParser()

mlir::AsmParser::AsmParser
default

◆ getFullSymbolSpec()

virtual StringRef mlir::DialectAsmParser::getFullSymbolSpec ( ) const
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().


The documentation for this class was generated from the following files: