*/
#include "mlir-c/Dialect/IRDL.h"
#include "mlir-c/IR.h"
const char irdlDialect[] = "\
irdl.dialect @foo {\
irdl.operation @op {\
%i32 = irdl.is i32\
irdl.results(%i32)\
}\
}\
irdl.dialect @bar {\
irdl.operation @op {\
%i32 = irdl.is i32\
irdl.operands(%i32)\
}\
}";
const char newDialectUsage[] = "\
module {\
%res = \"foo.op\"() : () -> i32\
\"bar.op\"(%res) : (i32) -> ()\
}";
int main(void) {
MlirContext ctx = mlirContextCreate();
mlirDialectHandleLoadDialect(mlirGetDialectHandle__irdl__(), ctx);
MlirModule dialectDecl =
mlirModuleCreateParse(ctx, mlirStringRefCreateFromCString(irdlDialect));
mlirLoadIRDLDialects(dialectDecl);
mlirModuleDestroy(dialectDecl);
MlirModule usingModule = mlirModuleCreateParse(
ctx, mlirStringRefCreateFromCString(newDialectUsage));
mlirOperationDump(mlirModuleGetOperation(usingModule));
mlirModuleDestroy(usingModule);
mlirContextDestroy(ctx);
return 0;
}