8 typedef void (*PSI_ContextErrorFunc
)(void *context
, PSI_Token
*token
, int type
, const char *msg
, ...);
10 typedef struct PSI_Context PSI_Context
;
11 typedef struct PSI_ContextOps PSI_ContextOps
;
13 struct PSI_ContextOps
{
14 void (*init
)(PSI_Context
*C
);
15 void (*dtor
)(PSI_Context
*C
);
16 zend_function_entry
*(*compile
)(PSI_Context
*C
);
17 void (*call
)(PSI_Context
*C
, decl_callinfo
*decl_call
, impl_vararg
*va
);
23 struct PSI_ContextOps
*ops
;
24 zend_function_entry
*closures
;
29 PSI_Context
*PSI_ContextInit(PSI_Context
*C
, PSI_ContextOps
*ops
, PSI_ContextErrorFunc error
, unsigned flags
);
30 void PSI_ContextBuild(PSI_Context
*C
, const char *path
);
31 int PSI_ContextValidate(PSI_Context
*C
, PSI_Parser
*P
);
32 int PSI_ContextValidateData(PSI_Data
*C
, PSI_Data
*D
);
33 zend_function_entry
*PSI_ContextCompile(PSI_Context
*C
);
34 void PSI_ContextCall(PSI_Context
*C
, decl_callinfo
*decl_call
, impl_vararg
*va
);
35 void PSI_ContextDump(PSI_Context
*C
, int fd
);
36 void PSI_ContextDtor(PSI_Context
*C
);
37 void PSI_ContextFree(PSI_Context
**C
);