Function

#include <jnc_Function.h>

// enums

enum jnc_FunctionFlag;
enum jnc_FunctionKind;
enum jnc_FunctionKindFlag;
enum jnc_FunctionOverloadFlag;

// structs

struct jnc_Function;

// unions

union jnc_OverloadableFunction;

// global functions

const char*
jnc_getFunctionKindString(jnc_FunctionKind functionKind);

uint_t
jnc_getFunctionKindFlags(jnc_FunctionKind functionKind);

jnc_FunctionKind
jnc_Function_getFunctionKind(jnc_Function* function);

static
jnc_FunctionType*
jnc_Function_getType(jnc_Function* function);

bool_t
jnc_Function_isMember(jnc_Function* function);

bool_t
jnc_Function_isUnusedExternal(jnc_Function* function);

void*
jnc_Function_getMachineCode(jnc_Function* function);

jnc_FunctionKind
jnc_FunctionOverload_getFunctionKind(jnc_FunctionOverload* function);

size_t
jnc_FunctionOverload_getOverloadCount(jnc_FunctionOverload* function);

jnc_Function*
jnc_FunctionOverload_getOverload(
    jnc_FunctionOverload* function,
    size_t index
);