// ATTR: }
// ATTR: void TestAAttr::print(::mlir::DialectAsmPrinter &printer) const {
-// ATTR: printer << "attr_a";
// ATTR: printer << ' ' << "hello";
// ATTR: printer << ' ' << "=";
// ATTR: printer << ' ';
// ATTR: }
// ATTR: void TestFAttr::print(::mlir::DialectAsmPrinter &printer) const {
-// ATTR: printer << "attr_c";
// ATTR: printer << ' ';
// ATTR: printer << getV0();
// ATTR: printer << ",";
// TYPE: }
// TYPE: void TestCType::print(::mlir::DialectAsmPrinter &printer) const {
-// TYPE: printer << "type_c";
// TYPE: printer << ' ' << "foo";
// TYPE: printer << ",";
// TYPE: printer << ' ' << ":";
/// Format for defining an attribute or type printer.
///
/// $0: The attribute or type C++ class name.
-/// $1: The attribute or type mnemonic.
static const char *const attrOrTypePrinterDefn = R"(
void $0::print(::mlir::DialectAsmPrinter &$_printer) const {
- $_printer << "$1";
)";
/// Loop declaration for struct parser.
ctx.addSubst("_printer", "printer");
/// Generate the definition.
- os << tgfmt(attrOrTypePrinterDefn, &ctx, def.getCppClassName(),
- *def.getMnemonic());
+ os << tgfmt(attrOrTypePrinterDefn, &ctx, def.getCppClassName());
/// Generate printers.
shouldEmitSpace = true;