LLZK 0.1.0
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
Attrs.cpp.inc
Go to the documentation of this file.
1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* AttrDef Definitions *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* *|
7\*===----------------------------------------------------------------------===*/
8
9#ifdef GET_ATTRDEF_LIST
10#undef GET_ATTRDEF_LIST
11
12::llzk::function::AllowConstraintAttr,
13::llzk::function::AllowWitnessAttr,
14::llzk::function::AllowNonNativeFieldOpsAttr
15
16#endif // GET_ATTRDEF_LIST
17
18#ifdef GET_ATTRDEF_CLASSES
19#undef GET_ATTRDEF_CLASSES
20
21static ::mlir::OptionalParseResult generatedAttributeParser(::mlir::AsmParser &parser, ::llvm::StringRef *mnemonic, ::mlir::Type type, ::mlir::Attribute &value) {
22 return ::mlir::AsmParser::KeywordSwitch<::mlir::OptionalParseResult>(parser)
23 .Case(::llzk::function::AllowConstraintAttr::getMnemonic(), [&](llvm::StringRef, llvm::SMLoc) {
24 value = ::llzk::function::AllowConstraintAttr::get(parser.getContext());
25 return ::mlir::success(!!value);
26 })
27 .Case(::llzk::function::AllowWitnessAttr::getMnemonic(), [&](llvm::StringRef, llvm::SMLoc) {
28 value = ::llzk::function::AllowWitnessAttr::get(parser.getContext());
29 return ::mlir::success(!!value);
30 })
31 .Case(::llzk::function::AllowNonNativeFieldOpsAttr::getMnemonic(), [&](llvm::StringRef, llvm::SMLoc) {
32 value = ::llzk::function::AllowNonNativeFieldOpsAttr::get(parser.getContext());
33 return ::mlir::success(!!value);
34 })
35 .Default([&](llvm::StringRef keyword, llvm::SMLoc) {
36 *mnemonic = keyword;
37 return std::nullopt;
38 });
39}
40
41static ::llvm::LogicalResult generatedAttributePrinter(::mlir::Attribute def, ::mlir::AsmPrinter &printer) {
42 return ::llvm::TypeSwitch<::mlir::Attribute, ::llvm::LogicalResult>(def) .Case<::llzk::function::AllowConstraintAttr>([&](auto t) {
43 printer << ::llzk::function::AllowConstraintAttr::getMnemonic();
44 return ::mlir::success();
45 })
46 .Case<::llzk::function::AllowWitnessAttr>([&](auto t) {
47 printer << ::llzk::function::AllowWitnessAttr::getMnemonic();
48 return ::mlir::success();
49 })
50 .Case<::llzk::function::AllowNonNativeFieldOpsAttr>([&](auto t) {
51 printer << ::llzk::function::AllowNonNativeFieldOpsAttr::getMnemonic();
52 return ::mlir::success();
53 })
54 .Default([](auto) { return ::mlir::failure(); });
55}
56
57namespace llzk {
58namespace function {
59} // namespace function
60} // namespace llzk
61MLIR_DEFINE_EXPLICIT_TYPE_ID(::llzk::function::AllowConstraintAttr)
62namespace llzk {
63namespace function {
64} // namespace function
65} // namespace llzk
66MLIR_DEFINE_EXPLICIT_TYPE_ID(::llzk::function::AllowWitnessAttr)
67namespace llzk {
68namespace function {
69} // namespace function
70} // namespace llzk
71MLIR_DEFINE_EXPLICIT_TYPE_ID(::llzk::function::AllowNonNativeFieldOpsAttr)
72namespace llzk {
73namespace function {
74
76::mlir::Attribute FunctionDialect::parseAttribute(::mlir::DialectAsmParser &parser,
77 ::mlir::Type type) const {
78 ::llvm::SMLoc typeLoc = parser.getCurrentLocation();
79 ::llvm::StringRef attrTag;
80 {
81 ::mlir::Attribute attr;
82 auto parseResult = generatedAttributeParser(parser, &attrTag, type, attr);
83 if (parseResult.has_value())
84 return attr;
85 }
86
87 parser.emitError(typeLoc) << "unknown attribute `"
88 << attrTag << "` in dialect `" << getNamespace() << "`";
89 return {};
90}
92void FunctionDialect::printAttribute(::mlir::Attribute attr,
93 ::mlir::DialectAsmPrinter &printer) const {
94 if (::mlir::succeeded(generatedAttributePrinter(attr, printer)))
95 return;
96
97}
98} // namespace function
99} // namespace llzk
100
101#endif // GET_ATTRDEF_CLASSES
102
::mlir::Attribute parseAttribute(::mlir::DialectAsmParser &parser, ::mlir::Type type) const override
Parse an attribute registered to this dialect.
void printAttribute(::mlir::Attribute attr, ::mlir::DialectAsmPrinter &os) const override
Print an attribute registered to this dialect.