#ifndef _PPARAM_H
#define _PPARAM_H 1
#include "proscope.h"
#include "pbuffer.h"
#include "exprval.h" /* TODO: remove together with buffer */
typedef
int
flag;
struct
tmplpro_param {
int
global_vars;
int
max_includes;
int
debug;
flag no_includes;
flag case_sensitive;
flag loop_context_vars;
flag strict;
flag filters;
int
default_escape;
const
char
* filename;
PSTRING scalarref;
flag path_like_variable_scope;
flag search_path_on_include;
char
** path;
flag die_on_bad_params;
writer_functype WriterFuncPtr;
get_ABSTRACT_VALUE_functype GetAbstractValFuncPtr;
ABSTRACT_VALUE2PSTRING_functype AbstractVal2pstringFuncPtr;
ABSTRACT_VALUE2ABSTRACT_ARRAY_functype AbstractVal2abstractArrayFuncPtr;
get_ABSTRACT_ARRAY_length_functype GetAbstractArrayLengthFuncPtr;
get_ABSTRACT_MAP_functype GetAbstractMapFuncPtr;
is_ABSTRACT_VALUE_true_functype IsAbstractValTrueFuncPtr;
find_file_functype FindFileFuncPtr;
load_file_functype LoadFileFuncPtr;
unload_file_functype UnloadFileFuncPtr;
select_loop_scope_functype SelectLoopScopeFuncPtr;
end_loop_functype EndLoopFuncPtr;
ABSTRACT_MAP* root_param_map;
ABSTRACT_WRITER* ext_writer_state;
ABSTRACT_FILTER* ext_filter_state;
ABSTRACT_FINDFILE* ext_findfile_state;
ABSTRACT_CALLER* ext_calluserfunc_state;
init_expr_arglist_functype InitExprArglistFuncPtr;
free_expr_arglist_functype FreeExprArglistFuncPtr;
push_expr_arglist_functype PushExprArglistFuncPtr;
call_expr_userfnc_functype CallExprUserfncFuncPtr;
is_expr_userfnc_functype IsExprUserfncFuncPtr;
ABSTRACT_FUNCMAP* expr_func_map;
int
cur_includes;
const
char
* masterpath;
struct
scope_stack var_scope_stack;
pbuffer builtin_findfile_buffer;
pbuffer lowercase_varname_buffer;
};
#endif /* _PPARAM_H */