benchmarkToSmtlib method

String benchmarkToSmtlib({
  1. required String name,
  2. required String logic,
  3. required String status,
  4. required String attributes,
  5. required List<AST> assumptions,
  6. required AST formula,
})

Implementation

String benchmarkToSmtlib({
  required String name,
  required String logic,
  required String status,
  required String attributes,
  required List<AST> assumptions,
  required AST formula,
}) {
  final namePtr = name.toNativeUtf8();
  final logicPtr = logic.toNativeUtf8();
  final statusPtr = status.toNativeUtf8();
  final attributesPtr = attributes.toNativeUtf8();
  final assumptionsPtr = calloc<Z3_ast>(assumptions.length);
  try {
    for (var i = 0; i < assumptions.length; i++) {
      assumptionsPtr[i] = _createAST(assumptions[i]);
    }
    final result = _z3.benchmark_to_smtlib_string(
      namePtr.cast(),
      logicPtr.cast(),
      statusPtr.cast(),
      attributesPtr.cast(),
      assumptions.length,
      assumptionsPtr,
      _createAST(formula),
    );
    return result.cast<Utf8>().toDartString();
  } finally {
    malloc.free(assumptionsPtr);
    malloc.free(namePtr);
    malloc.free(logicPtr);
    malloc.free(statusPtr);
    malloc.free(attributesPtr);
  }
}