ErrorFunc = proc (opaque: pointer; msg: cstring) {.cdecl.}
PccState = ptr CcState
OutputDll: cint = 3
OutputExe: cint = 2
OutputMemory: cint = 1
OutputObj: cint = 4
OutputPreprocess: cint = 5
proc addFile(s: PccState; filename: cstring): cint {.cdecl, importc: "tcc_add_file", ...raises: [], tags: [], forbids: [].}
proc addIncludePath(s: PccState; pathname: cstring) {.cdecl, importc: "tcc_add_include_path", ...raises: [], tags: [], forbids: [].}
proc addLibrary(s: PccState; libraryname: cstring): cint {.cdecl, importc: "tcc_add_library", ...raises: [], tags: [], forbids: [].}
proc addLibraryPath(s: PccState; pathname: cstring): cint {.cdecl, importc: "tcc_add_library_path", ...raises: [], tags: [], forbids: [].}
proc addSymbol(s: PccState; name: cstring; val: pointer): cint {.cdecl, importc: "tcc_add_symbol", ...raises: [], tags: [], forbids: [].}
proc addSysincludePath(s: PccState; pathname: cstring) {.cdecl, importc: "tcc_add_sysinclude_path", ...raises: [], tags: [], forbids: [].}
proc closeCCState(s: PccState) {.importc: "tcc_delete", cdecl, ...raises: [], tags: [], forbids: [].}
proc compileString(s: PccState; buf: cstring): cint {.cdecl, importc: "tcc_compile_string", ...raises: [], tags: [], forbids: [].}
proc defineSymbol(s: PccState; sym, value: cstring) {.cdecl, importc: "tcc_define_symbol", ...raises: [], tags: [], forbids: [].}
proc getSymbol(s: PccState; name: cstring): pointer {.cdecl, importc: "tcc_get_symbol", ...raises: [], tags: [], forbids: [].}
proc openCCState(): PccState {.importc: "tcc_new", cdecl, ...raises: [], tags: [], forbids: [].}
proc outputFile(s: PccState; filename: cstring): cint {.cdecl, importc: "tcc_output_file", ...raises: [], tags: [], forbids: [].}
proc relocate(s: PccState; p: pointer): cint {.cdecl, importc: "tcc_relocate", ...raises: [], tags: [], forbids: [].}
proc run(s: PccState; argc: cint; argv: cstringArray): cint {.cdecl, importc: "tcc_run", ...raises: [], tags: [], forbids: [].}
proc setErrorFunc(s: PccState; errorOpaque: pointer; errorFun: ErrorFunc) {. cdecl, importc: "tcc_set_error_func", ...raises: [], tags: [], forbids: [].}
proc setLibPath(s: PccState; path: cstring) {.cdecl, importc: "tcc_set_lib_path", ...raises: [], tags: [], forbids: [].}
proc setOptions(s: PccState; options: cstring) {.cdecl, importc: "tcc_set_options", ...raises: [], tags: [], forbids: [].}
proc setOutputType(s: PccState; outputType: cint): cint {.cdecl, importc: "tcc_set_output_type", ...raises: [], tags: [], forbids: [].}
proc undefineSymbol(s: PccState; sym: cstring) {.cdecl, importc: "tcc_undefine_symbol", ...raises: [], tags: [], forbids: [].}