Module tinyc

Types

PccState = ptr CcState
  Source Edit
ErrorFunc = proc (opaque: pointer; msg: cstring) {.
cdecl
.}
  Source Edit

Consts

OutputMemory: cint = 0
output will be ran in memory (no output file) (default)   Source Edit
OutputExe: cint = 1
executable file   Source Edit
OutputDll: cint = 2
dynamic library   Source Edit
OutputObj: cint = 3
object file   Source Edit
OutputPreprocess: cint = 4
preprocessed file (used internally)   Source Edit
OutputFormatElf: cint = 0
default output format: ELF   Source Edit
OutputFormatBinary: cint = 1
binary image output   Source Edit
OutputFormatCoff: cint = 2
COFF   Source Edit

Procs

proc openCCState(): PccState {.
importc: "tcc_new", cdecl
.}
create a new TCC compilation context   Source Edit
proc closeCCState(s: PccState) {.
importc: "tcc_delete", cdecl
.}
free a TCC compilation context   Source Edit
proc enableDebug(s: PccState) {.
importc: "tcc_enable_debug", cdecl
.}
add debug information in the generated code   Source Edit
proc setErrorFunc(s: PccState; errorOpaque: pointer; errorFun: ErrorFunc) {.
cdecl, importc: "tcc_set_error_func"
.}
set error/warning display callback   Source Edit
proc setWarning(s: PccState; warningName: cstring; value: int) {.
cdecl, importc: "tcc_set_warning"
.}
set/reset a warning   Source Edit
proc addIncludePath(s: PccState; pathname: cstring) {.
cdecl, importc: "tcc_add_include_path"
.}
add include path   Source Edit
proc addSysincludePath(s: PccState; pathname: cstring) {.
cdecl, importc: "tcc_add_sysinclude_path"
.}
add in system include path   Source Edit
proc defineSymbol(s: PccState; sym, value: cstring) {.
cdecl, importc: "tcc_define_symbol"
.}
define preprocessor symbol 'sym'. Can put optional value   Source Edit
proc undefineSymbol(s: PccState; sym: cstring) {.
cdecl, importc: "tcc_undefine_symbol"
.}
undefine preprocess symbol 'sym'   Source Edit
proc addFile(s: PccState; filename: cstring): cint {.
cdecl, importc: "tcc_add_file"
.}
add a file (either a C file, dll, an object, a library or an ld script). Return -1 if error.   Source Edit
proc compileString(s: PccState; buf: cstring): cint {.
cdecl, importc: "tcc_compile_string"
.}
compile a string containing a C source. Return non zero if error.   Source Edit
proc setOutputType(s: PccState; outputType: cint): cint {.
cdecl, importc: "tcc_set_output_type"
.}
set output type. MUST BE CALLED before any compilation   Source Edit
proc addLibraryPath(s: PccState; pathname: cstring): cint {.
cdecl, importc: "tcc_add_library_path"
.}
equivalent to -Lpath option   Source Edit
proc addLibrary(s: PccState; libraryname: cstring): cint {.
cdecl, importc: "tcc_add_library"
.}
the library name is the same as the argument of the '-l' option   Source Edit
proc addSymbol(s: PccState; name: cstring; val: pointer): cint {.
cdecl, importc: "tcc_add_symbol"
.}
add a symbol to the compiled program   Source Edit
proc outputFile(s: PccState; filename: cstring): cint {.
cdecl, importc: "tcc_output_file"
.}
output an executable, library or object file. DO NOT call tcc_relocate() before.   Source Edit
proc run(s: PccState; argc: cint; argv: cstringArray): cint {.
cdecl, importc: "tcc_run"
.}
link and run main() function and return its value. DO NOT call tcc_relocate() before.   Source Edit
proc relocate(s: PccState; p: pointer): cint {.
cdecl, importc: "tcc_relocate"
.}
copy code into memory passed in by the caller and do all relocations (needed before using tcc_get_symbol()). returns -1 on error and required size if ptr is NULL   Source Edit
proc getSymbol(s: PccState; name: cstring): pointer {.
cdecl, importc: "tcc_get_symbol"
.}
return symbol value or NULL if not found   Source Edit
proc setLibPath(s: PccState; path: cstring) {.
cdecl, importc: "tcc_set_lib_path"
.}
set CONFIG_TCCDIR at runtime   Source Edit