mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-29 14:32:51 -06:00
a partial support for def rules in the C runtime
The def rules are now compiled to byte code by the compiler and then to native code by the JIT compiler in the runtime. Not all constructions are implemented yet. The partial implementation is now in the repository but it is not activated by default since this requires changes in the PGF format. I will enable it only after it is complete.
This commit is contained in:
@@ -76,6 +76,7 @@ typedef struct {
|
||||
PgfEquations* defns; // maybe null
|
||||
PgfExprProb ep;
|
||||
void* predicate;
|
||||
void* function;
|
||||
} PgfAbsFun;
|
||||
|
||||
extern GU_DECLARE_TYPE(PgfAbsFun, abstract);
|
||||
@@ -102,6 +103,25 @@ typedef struct {
|
||||
PgfAbsFun* abs_lin_fun;
|
||||
} PgfAbstr;
|
||||
|
||||
typedef enum {
|
||||
PGF_INSTR_EVAL,
|
||||
PGF_INSTR_CASE,
|
||||
PGF_INSTR_CASE_INT,
|
||||
PGF_INSTR_CASE_STR,
|
||||
PGF_INSTR_CASE_FLT,
|
||||
PGF_INSTR_ALLOC,
|
||||
PGF_INSTR_PUT_CONSTR,
|
||||
PGF_INSTR_PUT_CLOSURE,
|
||||
PGF_INSTR_PUT_INT,
|
||||
PGF_INSTR_PUT_STR,
|
||||
PGF_INSTR_PUT_FLT,
|
||||
PGF_INSTR_SET_VALUE,
|
||||
PGF_INSTR_SET_VARIABLE,
|
||||
PGF_INSTR_TAIL_CALL,
|
||||
PGF_INSTR_FAIL,
|
||||
PGF_INSTR_RET
|
||||
} PgfInstruction;
|
||||
|
||||
struct PgfPGF {
|
||||
uint16_t major_version;
|
||||
uint16_t minor_version;
|
||||
|
||||
Reference in New Issue
Block a user