17 #define FAILURE_IF_FAILED(STMT) \
23 #define ERROR_IF(COND, MSG) \
25 return parser.emitError(loc, MSG); \
36 "expected valid level format (e.g. dense, compressed or singleton)")
37 uint64_t properties = 0;
40 if (base ==
"structured") {
43 [&]() -> ParseResult {
return parseStructured(parser, &structured); },
44 " in structured n out of m");
46 if (structured.size() != 2) {
47 parser.
emitError(loc,
"expected exactly 2 structured sizes");
50 if (structured[0] > structured[1]) {
51 parser.
emitError(loc,
"expected n <= m in n_out_of_m");
58 [&]() -> ParseResult {
return parseProperty(parser, &properties); },
59 " in level property list");
63 if (base ==
"dense") {
65 }
else if (base ==
"batch") {
67 }
else if (base ==
"compressed") {
69 }
else if (base ==
"structured") {
72 }
else if (base ==
"loose_compressed") {
74 }
else if (base ==
"singleton") {
77 parser.
emitError(loc,
"unknown level format: ") << base;
82 "invalid level type: level format doesn't support the properties");
86 ParseResult LvlTypeParser::parseProperty(
AsmParser &parser,
87 uint64_t *properties)
const {
91 "expected valid level property (e.g. nonordered, nonunique or high)")
99 parser.
emitError(loc,
"unknown level property: ") << strVal;
106 LvlTypeParser::parseStructured(
AsmParser &parser,
112 if (failed(*intValParseResult)) {
113 parser.
emitError(loc,
"failed to parse structured size");
117 parser.
emitError(loc,
"expected structured size to be >= 0");
120 structured->push_back(intVal);
123 parser.
emitError(loc,
"expected valid integer for structured size");
#define FAILURE_IF_FAILED(STMT)
#define ERROR_IF(COND, MSG)
This base class exposes generic asm parser hooks, usable across the various derived parsers.
@ OptionalParen
Parens supporting zero or more operands, or nothing.
@ OptionalSquare
Square brackets supporting zero or more ops, or nothing.
virtual OptionalParseResult parseOptionalInteger(APInt &result)=0
Parse an optional integer value from the stream.
virtual ParseResult parseCommaSeparatedList(Delimiter delimiter, function_ref< ParseResult()> parseElementFn, StringRef contextMessage=StringRef())=0
Parse a list of comma-separated items with an optional delimiter.
virtual ParseResult parseOptionalKeyword(StringRef keyword)=0
Parse the given keyword if present.
virtual InFlightDiagnostic emitError(SMLoc loc, const Twine &message={})=0
Emit a diagnostic at the specified location and return failure.
virtual SMLoc getCurrentLocation()=0
Get the location of the next token and store it into the argument.
This class implements Optional functionality for ParseResult.
bool has_value() const
Returns true if we contain a valid ParseResult value.
FailureOr< uint64_t > parseLvlType(AsmParser &parser) const
constexpr uint64_t mToBits(uint64_t m)
constexpr uint64_t nToBits(uint64_t n)
bool isValidLT(LevelType lt)
constexpr const char * toPropString(LevelPropNonDefault lvlProp)
Returns string representation of the given level properties.
LevelPropNonDefault
This enum defines all the nondefault properties for storage formats.
Include the generated interface declarations.
This enum defines all the sparse representations supportable by the SparseTensor dialect.