mirror of
https://github.com/janet-lang/janet
synced 2024-11-25 01:37:19 +00:00
Merge pull request #722 from sogaiu/new-style-core-fn-decl-for-compile
Update compile.c with new style core function declarations.
This commit is contained in:
commit
97907906c5
@ -942,7 +942,14 @@ JanetCompileResult janet_compile(Janet source, JanetTable *env, const uint8_t *w
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* C Function for compiling */
|
/* C Function for compiling */
|
||||||
static Janet cfun(int32_t argc, Janet *argv) {
|
JANET_CORE_FN(cfun,
|
||||||
|
"(compile ast &opt env source lints)",
|
||||||
|
"Compiles an Abstract Syntax Tree (ast) into a function. "
|
||||||
|
"Pair the compile function with parsing functionality to implement "
|
||||||
|
"eval. Returns a new function and does not modify ast. Returns an error "
|
||||||
|
"struct with keys :line, :column, and :error if compilation fails. "
|
||||||
|
"If a `lints` array is given, linting messages will be appended to the array. "
|
||||||
|
"Each message will be a tuple of the form `(level line col message)`.") {
|
||||||
janet_arity(argc, 1, 4);
|
janet_arity(argc, 1, 4);
|
||||||
JanetTable *env = argc > 1 ? janet_gettable(argv, 1) : janet_vm.fiber->env;
|
JanetTable *env = argc > 1 ? janet_gettable(argv, 1) : janet_vm.fiber->env;
|
||||||
if (NULL == env) {
|
if (NULL == env) {
|
||||||
@ -973,20 +980,10 @@ static Janet cfun(int32_t argc, Janet *argv) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static const JanetReg compile_cfuns[] = {
|
|
||||||
{
|
|
||||||
"compile", cfun,
|
|
||||||
JDOC("(compile ast &opt env source lints)\n\n"
|
|
||||||
"Compiles an Abstract Syntax Tree (ast) into a function. "
|
|
||||||
"Pair the compile function with parsing functionality to implement "
|
|
||||||
"eval. Returns a new function and does not modify ast. Returns an error "
|
|
||||||
"struct with keys :line, :column, and :error if compilation fails. "
|
|
||||||
"If a `lints` array is given, linting messages will be appended to the array. "
|
|
||||||
"Each message will be a tuple of the form `(level line col message)`.")
|
|
||||||
},
|
|
||||||
{NULL, NULL, NULL}
|
|
||||||
};
|
|
||||||
|
|
||||||
void janet_lib_compile(JanetTable *env) {
|
void janet_lib_compile(JanetTable *env) {
|
||||||
janet_core_cfuns(env, NULL, compile_cfuns);
|
JanetRegExt cfuns[] = {
|
||||||
|
JANET_CORE_REG("compile", cfun),
|
||||||
|
JANET_REG_END
|
||||||
|
};
|
||||||
|
janet_core_cfuns_ext(env, NULL, cfuns);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user