#ifndef _PROABSTRACT_H
#define _PROABSTRACT_H 1
#include "pstring.h"
#include "exprval.h"
struct
tmplpro_param;
typedef
void
ABSTRACT_WRITER;
typedef
void
ABSTRACT_FINDFILE;
typedef
void
ABSTRACT_FILTER;
typedef
void
ABSTRACT_CALLER;
typedef
void
ABSTRACT_ARRAY;
typedef
void
ABSTRACT_MAP;
typedef
void
ABSTRACT_VALUE;
typedef
void
ABSTRACT_FUNCMAP;
typedef
void
ABSTRACT_ARGLIST;
typedef
void
ABSTRACT_USERFUNC;
typedef
void
(*writer_functype) (ABSTRACT_WRITER*,
const
char
* begin,
const
char
* endnext);
typedef
ABSTRACT_VALUE* (*get_ABSTRACT_VALUE_functype) (ABSTRACT_MAP*, PSTRING name);
typedef
PSTRING (*ABSTRACT_VALUE2PSTRING_functype) (ABSTRACT_VALUE*);
typedef
int
(*is_ABSTRACT_VALUE_true_functype) (ABSTRACT_VALUE*);
typedef
ABSTRACT_ARRAY* (*ABSTRACT_VALUE2ABSTRACT_ARRAY_functype) (ABSTRACT_VALUE*);
typedef
int
(*get_ABSTRACT_ARRAY_length_functype) (ABSTRACT_ARRAY*);
typedef
ABSTRACT_MAP* (*get_ABSTRACT_MAP_functype) (ABSTRACT_ARRAY*,
int
);
typedef
void
(*end_loop_functype) (ABSTRACT_MAP*,
int
newlevel);
typedef
void
(*select_loop_scope_functype) (ABSTRACT_MAP*,
int
level);
typedef
const
char
* (*find_file_functype) (ABSTRACT_FINDFILE*,
const
char
* filename,
const
char
* prevfilename);
typedef
PSTRING (*load_file_functype) (ABSTRACT_FILTER*,
const
char
* filename);
typedef
int
(*unload_file_functype) (ABSTRACT_FILTER*, PSTRING memarea);
#define HTML_TEMPLATE_OPT_ESCAPE_NO 0
#define HTML_TEMPLATE_OPT_ESCAPE_HTML 1
#define HTML_TEMPLATE_OPT_ESCAPE_URL 2
#define HTML_TEMPLATE_OPT_ESCAPE_JS 3
typedef
ABSTRACT_USERFUNC* (*is_expr_userfnc_functype) (ABSTRACT_FUNCMAP*, PSTRING name);
typedef
ABSTRACT_ARGLIST* (*init_expr_arglist_functype) (ABSTRACT_CALLER*);
typedef
void
(*push_expr_arglist_functype) (ABSTRACT_ARGLIST*,
struct
tmplpro_param* param);
typedef
void
(*free_expr_arglist_functype) (ABSTRACT_ARGLIST*);
typedef
void
(*call_expr_userfnc_functype) (ABSTRACT_CALLER*, ABSTRACT_ARGLIST*, ABSTRACT_USERFUNC*,
struct
tmplpro_param* param);
#endif /* _PROABSTRACT_H */