This patch adds support for string literals as custom directive
arguments. This can be useful for re-using custom parsers and printers
when arguments have a known value. For example:
ParseResult parseTypedAttr(AsmParser &parser, Attribute &attr, Type type) { return parser.parseAttribute(attr, type); } void printTypedAttr(AsmPrinter &printer, Attribute attr, Type type) { return parser.printAttributeWithoutType(attr); }
And in TableGen:
def FooOp : ... { let arguments = (ins AnyAttr:$a); let assemblyFormat = [{ custom<TypedAttr>($a, "$_builder.getI1Type()") attr-dict }]; } def BarOp : ... { let arguments = (ins AnyAttr:$a); let assemblyFormat = [{ custom<TypedAttr>($a, "$_builder.getIndexType()") attr-dict }]; }
Instead of writing two separate sets of custom parsers and printers.
Can you add a test with escaped characters? e.g. an inner string or something?