#ifndef XS_fgl_XS_H
#define XS_fgl_XS_H
#ifdef __cplusplus
extern "C"
{
#endif
#ifndef bool
#define bool int
#endif
#define istypedefed 
#include <stdio.h>
#include <stdlib.h>
typedef char *str;
typedef char *sql_ident;
enum dt_display_type {
 DT_DISPLAY_TYPE_LINE = 0 ,
 DT_DISPLAY_TYPE_AT = 1 ,
 DT_DISPLAY_TYPE_MENUITEM = 2 ,
 DT_DISPLAY_TYPE_MAIN_CAPTION = 3 ,
 DT_DISPLAY_TYPE_FIELD_LIST = 4 ,
 DT_DISPLAY_TYPE_FORM_FIELD = 5 ,
 DT_DISPLAY_TYPE_FORM_CAPTION = 6 ,
 DT_DISPLAY_TYPE_STATUSBOX = 7 
};
typedef enum dt_display_type dt_display_type;

struct form_field {
istypedefed str form;
struct fh_field_list * field_list;
};
#ifndef OMIT_TYPEDEFS
typedef struct form_field form_field; /* XX */

#endif
struct s_x_y {
struct expr_str * y;
struct expr_str * x;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_x_y s_x_y; /* XX */

#endif
struct s_full_col {
istypedefed str tab;
istypedefed str col;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_full_col s_full_col; /* XX */

#endif
struct s_exchange_clobber {
istypedefed str origval;
istypedefed str newval;
istypedefed str important;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_exchange_clobber s_exchange_clobber; /* XX */

#endif
enum e_scope {
 E_SCOPE_NOTSET = 0 ,
 E_SCOPE_LOCAL = 1 ,
 E_SCOPE_REPORT_LOCAL = 2 ,
 E_SCOPE_MODULE = 3 ,
 E_SCOPE_IMPORTED_GLOBAL = 4 ,
 E_SCOPE_EXPORTED_GLOBAL = 5 ,
 E_SCOPE_SYSTEM = 6 ,
 E_SCOPE_TYPE = 7 ,
 E_SCOPE_CLASS = 8 ,
 E_SCOPE_CLASS_PARENT = 9 
};
typedef enum e_scope e_scope;

struct dt_display {
enum dt_display_type dttype;
union {
istypedefed s_x_y x_y;
istypedefed str caption;
struct fh_field_list * field_list;
istypedefed form_field fldform_field;
} dt_display_u;
};
typedef struct dt_display dt_display;
enum cmd_type {
 E_CMD_ALLOC_ARR_CMD = 0 ,
 E_CMD_AT_TERM_CMD = 1 ,
 E_CMD_CALL_CMD = 2 ,
 E_CMD_CANCEL_CMD = 3 ,
 E_CMD_CASE_CMD = 4 ,
 E_CMD_CHECK_MENU_CMD = 5 ,
 E_CMD_CLEAR_CMD = 6 ,
 E_CMD_CLOSE_CMD = 7 ,
 E_CMD_CLOSE_SQL_CMD = 8 ,
 E_CMD_CODE_CMD = 9 ,
 E_CMD_CONNECT_CMD = 10 ,
 E_CMD_CONSTRUCT_CMD = 11 ,
 E_CMD_CONTINUE_CMD = 12 ,
 E_CMD_CONVERT_CMD = 13 ,
 E_CMD_CURRENT_WIN_CMD = 14 ,
 E_CMD_DEALLOC_ARR_CMD = 15 ,
 E_CMD_DECLARE_CMD = 16 ,
 E_CMD_DEFER_CMD = 17 ,
 E_CMD_DISABLE_MENU_CMD = 18 ,
 E_CMD_DISPLAY_ARRAY_CMD = 19 ,
 E_CMD_DISPLAY_B_N_CMD = 20 ,
 E_CMD_DISPLAY_CMD = 21 ,
 E_CMD_DISPLAY_FORM_CMD = 22 ,
 E_CMD_ENABLE_MENU_CMD = 23 ,
 E_CMD_ERROR_CMD = 24 ,
 E_CMD_EXECUTE_CMD = 25 ,
 E_CMD_EXECUTE_IMMEDIATE_CMD = 26 ,
 E_CMD_EXIT_PROG_CMD = 27 ,
 E_CMD_EXT_CMD = 28 ,
 E_CMD_FINISH_CMD = 29 ,
 E_CMD_FLUSH_CMD = 30 ,
 E_CMD_FOREACH_CMD = 31 ,
 E_CMD_FOR_CMD = 32 ,
 E_CMD_FREE_CMD = 33 ,
 E_CMD_FREE_BLOB_CMD = 34 ,
 E_CMD_FREE_REP_CMD = 35 ,
 E_CMD_GOTO_CMD = 36 ,
 E_CMD_HIDE_CMD = 37 ,
 E_CMD_HIDE_OPTION_CMD = 38 ,
 E_CMD_IF_CMD = 39 ,
 E_CMD_INIT_CMD = 40 ,
 E_CMD_INPUT_ARRAY_CMD = 41 ,
 E_CMD_INPUT_CMD = 42 ,
 E_CMD_LABEL_CMD = 43 ,
 E_CMD_LET_CMD = 44 ,
 E_CMD_LOAD_CMD = 45 ,
 E_CMD_LOCATE_CMD = 46 ,
 E_CMD_MENU_CMD = 47 ,
 E_CMD_MESSAGE_CMD = 48 ,
 E_CMD_MOVE_CMD = 49 ,
 E_CMD_MSG_BOX_CMD = 50 ,
 E_CMD_NEED_CMD = 51 ,
 E_CMD_NEXT_FIELD_CMD = 52 ,
 E_CMD_NEXT_FORM_CMD = 53 ,
 E_CMD_NEXT_OPTION_CMD = 54 ,
 E_CMD_OPEN_CURSOR_CMD = 55 ,
 E_CMD_OPEN_FORM_CMD = 56 ,
 E_CMD_OPEN_FORM_GUI_CMD = 57 ,
 E_CMD_OPEN_STATUSBOX_CMD = 58 ,
 E_CMD_OPEN_WINDOW_CMD = 59 ,
 E_CMD_OPTIONS_CMD = 60 ,
 E_CMD_OUTPUT_CMD = 61 ,
 E_CMD_PAUSE_CMD = 62 ,
 E_CMD_PAUSE_SCREEN_OFF_CMD = 63 ,
 E_CMD_PAUSE_SCREEN_ON_CMD = 64 ,
 E_CMD_PREPARE_CMD = 65 ,
 E_CMD_PRINT_CMD = 66 ,
 E_CMD_PRINT_FILE_CMD = 67 ,
 E_CMD_PRINT_IMG_CMD = 68 ,
 E_CMD_PROMPT_CMD = 69 ,
 E_CMD_PUT_CMD = 70 ,
 E_CMD_RESIZE_ARR_CMD = 71 ,
 E_CMD_RETURN_CMD = 72 ,
 E_CMD_RUN_CMD = 73 ,
 E_CMD_RUN_WAITING_FOR_CMD = 74 ,
 E_CMD_SCROLL_CMD = 75 ,
 E_CMD_SET_DATABASE_CMD = 76 ,
 E_CMD_SHOW_CMD = 77 ,
 E_CMD_SHOW_OPTION_CMD = 78 ,
 E_CMD_SKIP_BY_CMD = 79 ,
 E_CMD_SKIP_CMD = 80 ,
 E_CMD_SKIP_TO_CMD = 81 ,
 E_CMD_SKIP_TO_TOP_CMD = 82 ,
 E_CMD_SLEEP_CMD = 83 ,
 E_CMD_SELECT_CMD = 84 ,
 E_CMD_SQL_BLOCK_CMD = 85 ,
 E_CMD_SQL_CMD = 86 ,
 E_CMD_SQL_DEBUG_FILE_CMD = 87 ,
 E_CMD_SQL_TRANSACT_CMD = 88 ,
 E_CMD_START_CMD = 89 ,
 E_CMD_START_RPC_CMD = 90 ,
 E_CMD_STOP_RPC_CMD = 91 ,
 E_CMD_TERM_REP_CMD = 92 ,
 E_CMD_UNCHECK_MENU_CMD = 93 ,
 E_CMD_UNLOAD_CMD = 94 ,
 E_CMD_VALIDATE_CMD = 95 ,
 E_CMD_WHENEVER_CMD = 96 ,
 E_CMD_SHOW_MENU_CMD = 97 ,
 E_CMD_WHILE_CMD = 98 ,
 E_CMD_ENABLE_CMD = 99 ,
 E_CMD_ENABLE_FORM_CMD = 100 ,
 E_CMD_DISABLE_CMD = 101 ,
 E_CMD_DISABLE_FORM_CMD = 102 ,
 E_CMD_FETCH_CMD = 103 ,
 E_CMD_PDF_CALL_CMD = 104 ,
 E_CMD_SET_SESSION_CMD = 105 ,
 E_CMD_UPDATE_CMD = 106 ,
 E_CMD_INSERT_CMD = 107 ,
 E_CMD_DELETE_CMD = 108 ,
 E_CMD_LINT_IGNORE_CMD = 109 ,
 E_CMD_LINT_EXPECT_CMD = 110 ,
 E_CMD_COPYBACK_CMD = 111 ,
 E_CMD_SORT_CMD = 112 ,
 E_CMD_CREATE_PROCEDURE_CMD = 113 ,
 E_CMD_SPL_SYSTEM_CMD = 114 ,
 E_CMD_SPL_FOREACH_SELECT_CMD = 115 ,
 E_CMD_SPL_FOREACH_EXECUTE_CMD = 116 ,
 E_CMD_SPL_LET_CMD = 117 ,
 E_CMD_SPL_RAISE_EXCEPTION_CMD = 118 ,
 E_CMD_SPL_ON_EXCEPTION_CMD = 119 ,
 E_CMD_SPL_IF_CMD = 120 ,
 E_CMD_SPL_WHILE_CMD = 121 ,
 E_CMD_SPL_FOR_CMD = 122 ,
 E_CMD_SPL_CALL_CMD = 123 ,
 E_CMD_SPL_TRACE_CMD = 124 ,
 E_CMD_SPL_RETURN_CMD = 125 ,
 E_CMD_SPL_BLOCK_CMD = 126 ,
 E_CMD_EXECUTE_PROCEDURE_CMD = 127 ,
 E_CMD_TODO_CMD = 128 ,
 E_CMD_DONE_CMD = 129 ,
 E_CMD_MLET_CMD = 130 ,
 E_CMD_WHENEVER_SIGNAL_CMD = 131 ,
 E_CMD_LAST = 132 
};
typedef enum cmd_type cmd_type;

struct str_list {
struct {
 unsigned int str_list_entry_len;
 istypedefed str * str_list_entry_val;
} str_list_entry;
};
#ifndef OMIT_TYPEDEFS
typedef struct str_list str_list; /* XX */

#endif
enum e_boolean {
 EB_FALSE = 0 ,
 EB_TRUE = 1 ,
 EB_NOTSET = 2 
};
typedef enum e_boolean e_boolean;

struct field {
istypedefed str fieldname;
istypedefed str subscript;
};
#ifndef OMIT_TYPEDEFS
typedef struct field field; /* XX */

#endif
struct attrib {
int color;
enum e_boolean nonewlines;
enum e_boolean bold;
enum e_boolean blink;
enum e_boolean reverse;
enum e_boolean dim;
enum e_boolean invisible;
enum e_boolean underline;
enum e_boolean normal;
struct expr_str * style_expr;
struct expr_str * variable_str;
struct expr_str * currentrowdisplayexpr;
struct expr_str * count;
struct expr_str * maxcount;
enum e_boolean allow_insert;
enum e_boolean allow_delete;
enum e_boolean no_new_lines;
enum e_boolean border;
istypedefed str text;
istypedefed str pad;
struct expr_str * comment_line;
struct expr_str * form_line;
struct expr_str * error_line;
struct expr_str * menu_line;
struct expr_str * message_line;
struct expr_str * prompt_line;
struct expr_str * var_attrib;
};
#ifndef OMIT_TYPEDEFS
typedef struct attrib attrib; /* XX */

#endif
struct funcname_list {
struct {
 unsigned int name_len;
 istypedefed str * name_val;
} name;
struct {
 unsigned int namespaces_len;
 istypedefed str * namespaces_val;
} namespaces;
};
#ifndef OMIT_TYPEDEFS
typedef struct funcname_list funcname_list; /* XX */

#endif
struct struct_start_rpc_cmd {
struct expr_str * valid_port;
istypedefed funcname_list remote_func_list;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_start_rpc_cmd struct_start_rpc_cmd; /* XX */

#endif
struct struct_lint_ignore_cmd {
struct str_list * values;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_lint_ignore_cmd struct_lint_ignore_cmd; /* XX */

#endif
struct struct_lint_expect_cmd {
struct str_list * values;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_lint_expect_cmd struct_lint_expect_cmd; /* XX */

#endif
struct struct_sort_cmd {
struct expr_str * variable;
struct expr_str * callback;
struct expr_str * limit;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_sort_cmd struct_sort_cmd; /* XX */

#endif
struct struct_copyback_cmd {
struct expr_str * variable;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_copyback_cmd struct_copyback_cmd; /* XX */

#endif
enum cancel_type {
 CT_INSERT = 0 ,
 CT_DELETE = 1 
};
typedef enum cancel_type cancel_type;

struct struct_cancel_cmd {
enum cancel_type c;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_cancel_cmd struct_cancel_cmd; /* XX */

#endif
struct struct_update_cmd {
struct expr_str * connid;
istypedefed str table;
istypedefed str_list * column_list;
struct s_select_list_item_list * value_list;
struct expr_str * where_clause;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_update_cmd struct_update_cmd; /* XX */

#endif
struct s_update_pair {
istypedefed str column_name;
struct s_select_list_item * value;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_update_pair s_update_pair; /* XX */

#endif
struct struct_insert_cmd {
struct expr_str * connid;
istypedefed str table;
istypedefed str_list * column_list;
struct s_select_list_item_list * value_list;
struct s_select * subselect;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_insert_cmd struct_insert_cmd; /* XX */

#endif
struct struct_delete_cmd {
struct expr_str * connid;
istypedefed str table;
struct expr_str * where_clause;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_delete_cmd struct_delete_cmd; /* XX */

#endif
enum e_close_type_nosql {
 E_CT_WINDOW = 0 ,
 E_CT_FORM = 1 ,
 E_CT_STATUSBOX = 2 
};
typedef enum e_close_type_nosql e_close_type_nosql;

enum e_close_type_withsql {
 E_CT_DATABASE = 0 ,
 E_CT_SESSION = 1 ,
 E_CT_CURS_OR_PREP = 2 
};
typedef enum e_close_type_withsql e_close_type_withsql;

struct struct_close_cmd {
enum e_close_type_nosql cl_type;
struct expr_str * ident;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_close_cmd struct_close_cmd; /* XX */

#endif
struct struct_close_sql_cmd {
enum e_close_type_withsql cl_type;
struct expr_str * ident;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_close_sql_cmd struct_close_sql_cmd; /* XX */

#endif
struct struct_free_cmd {
struct expr_str * connid;
struct expr_str * cursorname;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_free_cmd struct_free_cmd; /* XX */

#endif
struct struct_free_blob_cmd {
struct expr_str * var;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_free_blob_cmd struct_free_blob_cmd; /* XX */

#endif
enum e_block_cmd {
 EBC_WHILE = 0 ,
 EBC_FOR = 1 ,
 EBC_INPUT = 2 ,
 EBC_FOREACH = 3 ,
 EBC_CONSTRUCT = 4 ,
 EBC_DISPLAY = 5 ,
 EBC_MENU = 6 ,
 EBC_PROMPT = 7 ,
 EBC_CASE = 8 ,
 EBC_TODO = 9 ,
 EBC_SPL_FOR = 10 ,
 EBC_SPL_WHILE = 11 ,
 EBC_SPL_FOREACH = 12 
};
typedef enum e_block_cmd e_block_cmd;

struct struct_continue_cmd {
enum e_block_cmd what;
int block_id;
int sio_id;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_continue_cmd struct_continue_cmd; /* XX */

#endif
struct struct_ext_cmd {
enum e_block_cmd what;
int block_id;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_ext_cmd struct_ext_cmd; /* XX */

#endif
enum e_defer {
 EDEFER_QUIT = 0 ,
 EDEFER_INTERRUPT = 1 
};
typedef enum e_defer e_defer;

struct struct_defer_cmd {
enum e_defer what;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_defer_cmd struct_defer_cmd; /* XX */

#endif
struct struct_code_cmd {
istypedefed str contents;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_code_cmd struct_code_cmd; /* XX */

#endif
struct struct_disable_menu_cmd {
istypedefed str_list * strlist;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_disable_menu_cmd struct_disable_menu_cmd; /* XX */

#endif
struct struct_enable_menu_cmd {
istypedefed str_list * strlist;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_enable_menu_cmd struct_enable_menu_cmd; /* XX */

#endif
struct struct_check_menu_cmd {
istypedefed str_list * strlist;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_check_menu_cmd struct_check_menu_cmd; /* XX */

#endif
struct struct_uncheck_menu_cmd {
istypedefed str_list * strlist;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_uncheck_menu_cmd struct_uncheck_menu_cmd; /* XX */

#endif
struct struct_goto_cmd {
istypedefed str label;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_goto_cmd struct_goto_cmd; /* XX */

#endif
struct struct_label_cmd {
istypedefed str label;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_label_cmd struct_label_cmd; /* XX */

#endif
struct struct_error_cmd {
struct expr_str_list * expr_list;
enum e_boolean wait_for_key;
istypedefed attrib * attributes;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_error_cmd struct_error_cmd; /* XX */

#endif
struct struct_execute_cmd {
struct expr_str * connid;
struct expr_str_list * inbind;
struct expr_str_list * outbind;
struct expr_str * sql_stmtid;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_execute_cmd struct_execute_cmd; /* XX */

#endif
struct struct_execute_immediate_cmd {
struct expr_str * connid;
struct expr_str * sql_stmt;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_execute_immediate_cmd struct_execute_immediate_cmd; /* XX */

#endif
struct struct_flush_cmd {
struct expr_str * connid;
struct expr_str * cursorname;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_flush_cmd struct_flush_cmd; /* XX */

#endif
struct struct_sleep_cmd {
struct expr_str * sleep_expr;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_sleep_cmd struct_sleep_cmd; /* XX */

#endif
struct struct_move_cmd {
struct expr_str * windowname;
struct expr_str * x;
struct expr_str * y;
enum e_boolean relative;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_move_cmd struct_move_cmd; /* XX */

#endif
struct struct_show_menu_cmd {
istypedefed str menuname;
istypedefed str menuhandler;
struct expr_str * mn_file;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_show_menu_cmd struct_show_menu_cmd; /* XX */

#endif
struct struct_show_cmd {
struct expr_str * windowname;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_show_cmd struct_show_cmd; /* XX */

#endif
struct struct_hide_cmd {
struct expr_str * windowname;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_hide_cmd struct_hide_cmd; /* XX */

#endif
enum run_mode {
 ERM_NOT_SET = 0 ,
 ERM_LINE_MODE = 1 ,
 ERM_FORM_MODE = 2 
};
typedef enum run_mode run_mode;

struct struct_run_cmd {
struct expr_str * run_string;
enum e_boolean wait;
enum run_mode run_mode;
struct expr_str * returning;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_run_cmd struct_run_cmd; /* XX */

#endif
struct struct_run_waiting_for_cmd {
struct expr_str * run_string;
struct expr_str * sleep;
struct expr_str * msg_repeat_every;
struct expr_str * msg_text;
int msg_type;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_run_waiting_for_cmd struct_run_waiting_for_cmd; /* XX */

#endif
enum e_direction {
 E_UP = 0 ,
 E_DOWN = 1 
};
typedef enum e_direction e_direction;

struct struct_scroll_cmd {
struct fh_field_list * srec;
struct expr_str * val;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_scroll_cmd struct_scroll_cmd; /* XX */

#endif
struct struct_exit_prog_cmd {
struct expr_str * exit_val;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_exit_prog_cmd struct_exit_prog_cmd; /* XX */

#endif
/* struct command mt=3 ms=0 mn=command mp=1 */
typedef struct command * command_ptr;
struct s_commands {
struct {
 unsigned int cmds_len;
 istypedefed command_ptr * cmds_val;
} cmds;
int first_lineno;
int last_lineno;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_commands s_commands; /* XX */

#endif
struct struct_return_cmd {
struct expr_str_list * retvals;
int with_resume;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_return_cmd struct_return_cmd; /* XX */

#endif
struct struct_prepare_cmd {
struct expr_str * connid;
struct expr_str * stmtid;
struct expr_str * sql;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_prepare_cmd struct_prepare_cmd; /* XX */

#endif
enum e_location {
 E_LOC_FILE = 0 ,
 E_LOC_MEMORY = 1 
};
typedef enum e_location e_location;

struct locate_pos {
enum e_location where;
union {
struct expr_str * filename;
} locate_pos_u;
};
typedef struct locate_pos locate_pos;
struct struct_locate_cmd {
struct expr_str_list * variables;
istypedefed locate_pos where;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_locate_cmd struct_locate_cmd; /* XX */

#endif
struct struct_message_cmd {
struct expr_str_list * message_expr;
istypedefed attrib * attributes;
enum e_boolean wait;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_message_cmd struct_message_cmd; /* XX */

#endif
struct struct_init_cmd {
struct expr_str_list * varlist;
istypedefed str_list * tablist;
struct expr_str_list * init_like_exprlist;
int tonull;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_init_cmd struct_init_cmd; /* XX */

#endif
struct struct_next_field_cmd {
int rel;
struct fh_field_entry * nextfield;
int sio;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_next_field_cmd struct_next_field_cmd; /* XX */

#endif
struct struct_at_term_cmd {
istypedefed str funcname;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_at_term_cmd struct_at_term_cmd; /* XX */

#endif
struct struct_next_option_cmd {
struct expr_str * menuoption;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_next_option_cmd struct_next_option_cmd; /* XX */

#endif
struct struct_show_option_cmd {
struct expr_str_list * menuoptions;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_show_option_cmd struct_show_option_cmd; /* XX */

#endif
struct struct_hide_option_cmd {
struct expr_str_list * menuoptions;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_hide_option_cmd struct_hide_option_cmd; /* XX */

#endif
struct struct_for_cmd {
struct expr_str * var;
struct expr_str * start;
struct expr_str * end;
struct expr_str * step;
istypedefed s_commands * for_commands;
int block_id;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_for_cmd struct_for_cmd; /* XX */

#endif
struct struct_display_form_cmd {
struct expr_str * formname;
istypedefed attrib * attributes;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_display_form_cmd struct_display_form_cmd; /* XX */

#endif
/* struct expr_str mt=3 ms=0 mn=expr_str mp=1 */
typedef struct expr_str * expr_str_ptr;
struct s_call_list {
struct {
 unsigned int calls_by_call_len;
 istypedefed command_ptr * calls_by_call_val;
} calls_by_call;
struct {
 unsigned int calls_by_expr_len;
 istypedefed expr_str_ptr * calls_by_expr_val;
} calls_by_expr;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_call_list s_call_list; /* XX */

#endif
struct struct_call_cmd {
struct expr_str * fcall;
struct expr_str_list * returning;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_call_cmd struct_call_cmd; /* XX */

#endif
struct struct_pdf_call_cmd {
struct expr_str * fcall;
struct expr_str_list * returning;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_pdf_call_cmd struct_pdf_call_cmd; /* XX */

#endif
struct if_cond {
int lineno;
struct expr_str * test_expr;
istypedefed s_commands * whentrue;
};
#ifndef OMIT_TYPEDEFS
typedef struct if_cond if_cond; /* XX */

#endif
struct if_conds {
struct {
 unsigned int conditions_len;
 istypedefed if_cond * conditions_val;
} conditions;
};
#ifndef OMIT_TYPEDEFS
typedef struct if_conds if_conds; /* XX */

#endif
struct struct_if_cmd {
istypedefed if_conds truths;
int lineno;
int else_lineno;
istypedefed s_commands * whenfalse;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_if_cmd struct_if_cmd; /* XX */

#endif
struct struct_foreach_cmd {
struct expr_str * connid;
struct expr_str * cursorname;
struct expr_str_list * inputvals;
struct expr_str_list * outputvals;
istypedefed s_commands * foreach_commands;
int block_id;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_foreach_cmd struct_foreach_cmd; /* XX */

#endif
struct single_option {
istypedefed str option;
istypedefed str value;
struct expr_str * expr;
int isKey;
};
#ifndef OMIT_TYPEDEFS
typedef struct single_option single_option; /* XX */

#endif
/* struct single_option mt=3 ms=0 mn=single_option mp=1 */
typedef struct single_option * single_option_ptr;
struct manyoptions {
struct {
 unsigned int options_len;
 istypedefed single_option_ptr * options_val;
} options;
};
#ifndef OMIT_TYPEDEFS
typedef struct manyoptions manyoptions; /* XX */

#endif
struct struct_options_cmd {
istypedefed manyoptions * options;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_options_cmd struct_options_cmd; /* XX */

#endif
struct startrep {
istypedefed char towhat;
struct expr_str * s1;
int with_page_length;
int with_left_margin;
int with_right_margin;
int with_top_margin;
int with_bottom_margin;
istypedefed str with_top_of_page;
};
#ifndef OMIT_TYPEDEFS
typedef struct startrep startrep; /* XX */

#endif
enum bluebar_style {
 E_BLUEBAR_NONE = 0 ,
 E_BLUEBAR_RECTANGLE = 1 ,
 E_BLUEBAR_5LINE = 2 
};
typedef enum bluebar_style bluebar_style;

struct bluebar {
enum bluebar_style style;
double r;
double g;
double b;
};
#ifndef OMIT_TYPEDEFS
typedef struct bluebar bluebar; /* XX */

#endif
struct pdf_startrep {
istypedefed char towhat;
struct expr_str * s1;
double with_page_length;
double with_page_width;
double with_left_margin;
double with_right_margin;
double with_top_margin;
double with_bottom_margin;
istypedefed str fontname;
double fontsize;
int papersize;
double pageheadersize;
double firstpageheadersize;
double pagetrailersize;
enum e_boolean isdefault;
enum e_boolean ascii_height;
enum e_boolean ascii_width;
struct bluebar bluebar;
};
#ifndef OMIT_TYPEDEFS
typedef struct pdf_startrep pdf_startrep; /* XX */

#endif
struct convert {
istypedefed char towhat;
struct expr_str * s1;
struct expr_str * conv_type;
struct expr_str * filter;
struct expr_str * emailAddress;
};
#ifndef OMIT_TYPEDEFS
typedef struct convert convert; /* XX */

#endif
struct struct_convert_cmd {
istypedefed str repname;
istypedefed str n_namespace;
struct convert * conv_c;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_convert_cmd struct_convert_cmd; /* XX */

#endif
struct struct_finish_cmd {
istypedefed str repname;
istypedefed str n_namespace;
struct convert * conv_c;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_finish_cmd struct_finish_cmd; /* XX */

#endif
struct struct_start_cmd {
istypedefed str repname;
istypedefed str n_namespace;
struct startrep * sc_c;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_start_cmd struct_start_cmd; /* XX */

#endif
struct struct_let_cmd {
struct expr_str_list * vars;
struct expr_str_list * vals;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_let_cmd struct_let_cmd; /* XX */

#endif
struct struct_mlet_cmd {
struct expr_str_list * vars;
struct expr_str * val;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_mlet_cmd struct_mlet_cmd; /* XX */

#endif
struct rowscols {
struct expr_str * rows;
struct expr_str * columns;
};
#ifndef OMIT_TYPEDEFS
typedef struct rowscols rowscols; /* XX */

#endif
enum e_wintype {
 EWT_FORM = 0 ,
 EWT_ROWSCOLS = 1 
};
typedef enum e_wintype e_wintype;

struct windowtype {
enum e_wintype wintype;
union {
struct expr_str * formfilename;
struct rowscols rowscols;
} windowtype_u;
};
typedef struct windowtype windowtype;
struct struct_open_window_cmd {
struct expr_str * windowname;
struct expr_str * x;
struct expr_str * y;
istypedefed windowtype wt;
struct attrib * attributes;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_open_window_cmd struct_open_window_cmd; /* XX */

#endif
struct s_fetch_place {
long ab_rel;
struct expr_str * fetch_expr;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_fetch_place s_fetch_place; /* XX */

#endif
struct s_fetch {
struct expr_str * cursorname;
struct s_fetch_place * fp;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_fetch s_fetch; /* XX */

#endif
struct struct_fetch_cmd {
struct expr_str * connid;
struct s_fetch * fetch;
struct expr_str_list * outbind;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_fetch_cmd struct_fetch_cmd; /* XX */

#endif
struct struct_open_form_cmd {
struct expr_str * formname;
struct expr_str * form_filename;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_open_form_cmd struct_open_form_cmd; /* XX */

#endif
struct struct_open_form_gui_cmd {
struct expr_str * form;
struct expr_str * y;
struct expr_str * x;
struct expr_str * like;
int disable;
istypedefed str formhandler;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_open_form_gui_cmd struct_open_form_gui_cmd; /* XX */

#endif
struct struct_unload_cmd {
struct expr_str * connid;
struct expr_str * sql;
struct expr_str * filename;
struct expr_str * delimiter;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_unload_cmd struct_unload_cmd; /* XX */

#endif
struct struct_load_cmd {
struct expr_str * connid;
struct expr_str * filename;
struct expr_str * delimiter;
struct expr_str * sqlvar;
istypedefed str tabname;
istypedefed str_list * collist;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_load_cmd struct_load_cmd; /* XX */

#endif
struct struct_connect_cmd {
struct expr_str * conn_dbname;
struct expr_str * conn_name;
struct expr_str * username;
struct expr_str * password;
struct expr_str * sqltype;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_connect_cmd struct_connect_cmd; /* XX */

#endif
enum report_blocks {
 RB_FIRST_PAGE_HEADER = 0 ,
 RB_PAGE_HEADER = 1 ,
 RB_PAGE_TRAILER = 2 ,
 RB_ON_EVERY_ROW = 3 ,
 RB_ON_LAST_ROW = 4 ,
 RB_BEFORE_GROUP_OF = 5 ,
 RB_AFTER_GROUP_OF = 6 ,
 RB_FORMAT_EVERY_ROW = 7 
};
typedef enum report_blocks report_blocks;

struct report_block_data {
enum report_blocks rb;
union {
struct expr_str_list * variables;
struct expr_str * f_variable;
} report_block_data_u;
};
typedef struct report_block_data report_block_data;
struct report_format_section_entry {
istypedefed report_block_data rb_block;
istypedefed s_commands * rep_sec_commands;
int lineno;
int orderby_var_no;
};
#ifndef OMIT_TYPEDEFS
typedef struct report_format_section_entry report_format_section_entry; /* XX */

#endif
/* struct report_format_section_entry mt=3 ms=0 mn=report_format_section_entry mp=1 */
typedef struct report_format_section_entry * report_format_section_entry_ptr;
struct report_format_section {
struct {
 unsigned int entries_len;
 istypedefed report_format_section_entry_ptr * entries_val;
} entries;
int lines_in_header;
int lines_in_first_header;
int lines_in_trailer;
};
#ifndef OMIT_TYPEDEFS
typedef struct report_format_section report_format_section; /* XX */

#endif
enum e_report_orderby {
 REPORT_ORDERBY_IMPLICIT = 0 ,
 REPORT_ORDERBY_EXTERNAL = 1 ,
 REPORT_ORDERBY = 2 
};
typedef enum e_report_orderby e_report_orderby;

struct s_report_orderby_section {
enum e_report_orderby rord_type;
struct expr_str_list * variables;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_report_orderby_section s_report_orderby_section; /* XX */

#endif
struct struct_display_cmd {
struct expr_str_list * exprs;
istypedefed dt_display * where;
enum e_boolean by_name;
istypedefed attrib * attributes;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_display_cmd struct_display_cmd; /* XX */

#endif
struct struct_display_b_n_cmd {
struct expr_str_list * vars;
istypedefed attrib * attributes;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_display_b_n_cmd struct_display_b_n_cmd; /* XX */

#endif
struct struct_open_cursor_cmd {
istypedefed char cursor_type;
struct expr_str * connid;
struct expr_str * cursorname;
struct expr_str_list * using_bind;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_open_cursor_cmd struct_open_cursor_cmd; /* XX */

#endif
struct struct_put_cmd {
struct expr_str * connid;
struct expr_str * cursorname;
struct expr_str_list * values;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_put_cmd struct_put_cmd; /* XX */

#endif
struct s_cur_def {
istypedefed str forUpdate;
struct struct_insert_cmd * insert_cmd;
struct expr_str * ident;
struct s_select * select;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_cur_def s_cur_def; /* XX */

#endif
struct struct_declare_cmd {
struct expr_str * connid;
struct expr_str * cursorname;
struct s_cur_def * declare_dets;
istypedefed e_boolean with_hold;
istypedefed e_boolean scroll;
istypedefed e_boolean isstmt;
istypedefed char cursor_type;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_declare_cmd struct_declare_cmd; /* XX */

#endif
struct struct_validate_cmd {
struct expr_str_list * list;
struct expr_str_list * validate_list;
istypedefed str_list * tablist;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_validate_cmd struct_validate_cmd; /* XX */

#endif
struct struct_while_cmd {
struct expr_str * while_expr;
istypedefed s_commands * while_commands;
int block_id;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_while_cmd struct_while_cmd; /* XX */

#endif
struct struct_current_win_cmd {
struct expr_str * windowname;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_current_win_cmd struct_current_win_cmd; /* XX */

#endif
struct when {
int lineno;
int colno;
struct expr_str * when_expr;
istypedefed s_commands * when_commands;
};
#ifndef OMIT_TYPEDEFS
typedef struct when when; /* XX */

#endif
/* struct when mt=3 ms=0 mn=when mp=1 */
typedef struct when * when_ptr;
struct whens {
struct {
 unsigned int whens_len;
 istypedefed when_ptr * whens_val;
} whens;
};
#ifndef OMIT_TYPEDEFS
typedef struct whens whens; /* XX */

#endif
struct struct_case_cmd {
struct expr_str * case_expr;
struct whens * whens;
istypedefed s_commands * otherwise;
int block_id;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_case_cmd struct_case_cmd; /* XX */

#endif
struct struct_todo_cmd {
struct expr_str * todo_expr;
struct whens * whens;
istypedefed s_commands * always;
int block_id;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_todo_cmd struct_todo_cmd; /* XX */

#endif
struct struct_output_cmd {
istypedefed str repname;
istypedefed str n_namespace;
struct expr_str_list * expressions;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_output_cmd struct_output_cmd; /* XX */

#endif
struct struct_term_rep_cmd {
istypedefed str repname;
istypedefed str n_namespace;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_term_rep_cmd struct_term_rep_cmd; /* XX */

#endif
enum e_clear {
 E_CLR_SCREEN = 0 ,
 E_CLR_WINDOW = 1 ,
 E_CLR_STATUS = 2 ,
 E_CLR_FORM = 3 ,
 E_CLR_FORM_DEFAULTS = 4 ,
 E_CLR_FIELDS = 5 ,
 E_CLR_FIELDS_TO_DEFAULT = 6 
};
typedef enum e_clear e_clear;

struct clear_data {
enum e_clear clr_type;
union {
struct expr_str * window;
struct fh_field_list * fields;
} clear_data_u;
};
typedef struct clear_data clear_data;
struct struct_clear_cmd {
istypedefed clear_data clr_data;
enum e_boolean todefaults;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_clear_cmd struct_clear_cmd; /* XX */

#endif
struct struct_sql_cmd {
struct expr_str * connid;
istypedefed str sql;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_sql_cmd struct_sql_cmd; /* XX */

#endif
struct struct_sql_debug_file_cmd {
struct expr_str * connid;
struct expr_str * debugfile;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_sql_debug_file_cmd struct_sql_debug_file_cmd; /* XX */

#endif
struct struct_select_cmd {
struct expr_str * connid;
struct s_select * sql;
istypedefed str forupdate;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_select_cmd struct_select_cmd; /* XX */

#endif
struct struct_skip_cmd {
struct expr_str * skip_amt;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_skip_cmd struct_skip_cmd; /* XX */

#endif
struct struct_skip_by_cmd {
struct expr_str * skip_amt;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_skip_by_cmd struct_skip_by_cmd; /* XX */

#endif
struct struct_skip_to_cmd {
struct expr_str * skip_amt;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_skip_to_cmd struct_skip_to_cmd; /* XX */

#endif
struct struct_sql_transact_cmd {
struct expr_str * connid;
int trans;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_sql_transact_cmd struct_sql_transact_cmd; /* XX */

#endif
struct struct_set_database_cmd {
struct expr_str * set_dbname;
enum e_boolean exclusive_mode;
struct expr_str * sqltype;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_set_database_cmd struct_set_database_cmd; /* XX */

#endif
struct struct_whenever_cmd {
int whencode;
istypedefed str whento;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_whenever_cmd struct_whenever_cmd; /* XX */

#endif
struct struct_sql_block_cmd {
struct expr_str * connid;
struct expr_str_list * list;
int convert;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_sql_block_cmd struct_sql_block_cmd; /* XX */

#endif
struct struct_need_cmd {
struct expr_str * expr;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_need_cmd struct_need_cmd; /* XX */

#endif
struct struct_print_cmd {
struct expr_str_list * print_expr;
enum e_boolean semi;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_print_cmd struct_print_cmd; /* XX */

#endif
struct struct_print_file_cmd {
struct expr_str * filename;
enum e_boolean semi;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_print_file_cmd struct_print_file_cmd; /* XX */

#endif
struct struct_print_img_cmd {
struct expr_str * var;
struct expr_str * scale_x;
struct expr_str * scale_y;
istypedefed str img_type;
enum e_boolean semi;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_print_img_cmd struct_print_img_cmd; /* XX */

#endif
struct struct_pause_cmd {
struct expr_str * pause_msg;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_pause_cmd struct_pause_cmd; /* XX */

#endif
enum e_event {
 EVENT_BEF_ROW = 0 ,
 EVENT_AFT_ROW = 1 ,
 EVENT_BEFORE_DELETE = 2 ,
 EVENT_AFTER_DELETE = 3 ,
 EVENT_BEFORE_INSERT = 4 ,
 EVENT_AFTER_INSERT = 5 ,
 EVENT_BEFORE_INSERT_DELETE = 6 ,
 EVENT_AFTER_INSERT_DELETE = 7 ,
 EVENT_ON_IDLE = 8 ,
 EVENT_ON_INTERVAL = 9 ,
 EVENT_ON_TIME = 10 ,
 EVENT_KEY_PRESS = 11 ,
 EVENT_ANYKEY_PRESS = 12 ,
 EVENT_ON_ACTION = 13 ,
 EVENT_AFTER_INPUT = 14 ,
 EVENT_BEFORE_INPUT = 15 ,
 EVENT_BEFORE_FIELD = 16 ,
 EVENT_AFTER_DISPLAY = 17 ,
 EVENT_BEFORE_DISPLAY = 18 ,
 EVENT_AFTER_CONSTRUCT = 19 ,
 EVENT_BEFORE_CONSTRUCT = 20 ,
 EVENT_BEFORE_MENU = 21 ,
 EVENT_AFTER_FIELD = 22 ,
 EVENT_MENU_COMMAND = 23 ,
 EVENT_BEFORE_OPEN_FORM = 24 ,
 EVENT_AFTER_EVENT = 25 ,
 EVENT_BEFORE_CLOSE_FORM = 26 ,
 EVENT_BEFORE_ANY = 27 ,
 EVENT_AFTER_ANY = 28 ,
 EVENT_BEFORE = 29 ,
 EVENT_AFTER = 30 ,
 EVENT_BEFORE_EVENT = 31 ,
 EVENT_ON = 32 ,
 EVENT_ON_CHANGE = 33 ,
 EVENT_AFTER_INP_CLEAN = 34 
};
typedef enum e_event e_event;

struct s_onaction {
istypedefed str actionName;
istypedefed str_list * key_list;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_onaction s_onaction; /* XX */

#endif
struct menuoption {
istypedefed str_list * keys;
int helpno;
struct expr_str * shortname;
struct expr_str * longname;
};
#ifndef OMIT_TYPEDEFS
typedef struct menuoption menuoption; /* XX */

#endif
struct event_data {
enum e_event event_type;
union {
int idle_n;
int interval_n;
int time_n;
struct s_onaction * on_action_s;
struct fh_field_list * before_after_field;
istypedefed menuoption * mnoption;
istypedefed str_list * slist;
} event_data_u;
};
typedef struct event_data event_data;
struct on_event {
istypedefed event_data evt_data;
istypedefed s_commands * on_event_commands;
int lineno;
int colno;
};
#ifndef OMIT_TYPEDEFS
typedef struct on_event on_event; /* XX */

#endif
/* struct on_event mt=3 ms=0 mn=on_event mp=1 */
typedef struct on_event * on_event_ptr;
struct on_events {
struct {
 unsigned int event_len;
 istypedefed on_event_ptr * event_val;
} event;
};
#ifndef OMIT_TYPEDEFS
typedef struct on_events on_events; /* XX */

#endif
struct struct_menu_cmd {
struct expr_str * menu_title;
struct attrib * menu_attrib;
struct on_events * events;
int sio;
int blockid;
struct expr_str * menu_attrib_comment;
struct expr_str * menu_attrib_style;
struct expr_str * menu_attrib_image;
struct expr_str * menu_attrib_normal;
struct expr_str * menu_attrib_highlight;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_menu_cmd struct_menu_cmd; /* XX */

#endif
struct struct_prompt_cmd {
struct expr_str_list * prompt_str;
struct attrib * prompt_str_attrib;
struct attrib * prompt_fld_attrib;
enum e_boolean for_char;
struct expr_str * promptvar;
int helpno;
struct on_events * events;
int sio;
int blockid;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_prompt_cmd struct_prompt_cmd; /* XX */

#endif
struct struct_display_array_cmd {
struct expr_str * srec;
struct expr_str * arrayname;
struct attrib * attributes;
struct on_events * events;
struct fh_field_entry * scroll_using;
int helpno;
int sio;
int blockid;
istypedefed str slice;
int slice_start;
int slice_end;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_display_array_cmd struct_display_array_cmd; /* XX */

#endif
struct struct_input_cmd {
struct expr_str_list * variables;
struct fh_field_list * field_list;
struct on_events * events;
struct attrib * attributes;
enum e_boolean by_name;
enum e_boolean without_defaults;
int helpno;
int sio;
int blockid;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_input_cmd struct_input_cmd; /* XX */

#endif
struct cons_list_entry {
istypedefed str tabname;
istypedefed str colname;
};
#ifndef OMIT_TYPEDEFS
typedef struct cons_list_entry cons_list_entry; /* XX */

#endif
/* struct cons_list_entry mt=3 ms=0 mn=cons_list_entry mp=1 */
typedef struct cons_list_entry * cons_list_entry_ptr;
struct cons_list {
struct {
 unsigned int list_len;
 istypedefed cons_list_entry_ptr * list_val;
} list;
};
#ifndef OMIT_TYPEDEFS
typedef struct cons_list cons_list; /* XX */

#endif
struct struct_input_array_cmd {
struct expr_str * srec;
struct expr_str * arrayname;
struct attrib * attributes;
struct on_events * events;
istypedefed e_boolean without_defaults;
int helpno;
int sio;
int blockid;
istypedefed str slice;
int slice_start;
int slice_end;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_input_array_cmd struct_input_array_cmd; /* XX */

#endif
struct struct_construct_cmd {
enum e_boolean by_name;
struct expr_str * constr_var;
istypedefed cons_list * con_columns;
struct fh_field_list * list;
struct on_events * events;
struct attrib * attributes;
enum e_boolean without_defaults;
int helpno;
int sio;
int blockid;
struct expr_str * callback_function;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_construct_cmd struct_construct_cmd; /* XX */

#endif
struct user_details {
struct expr_str * username;
struct expr_str * password;
};
#ifndef OMIT_TYPEDEFS
typedef struct user_details user_details; /* XX */

#endif
struct struct_free_rep_cmd {
istypedefed str repname;
istypedefed str n_namespace;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_free_rep_cmd struct_free_rep_cmd; /* XX */

#endif
struct struct_alloc_arr_cmd {
struct expr_str * variable;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_alloc_arr_cmd struct_alloc_arr_cmd; /* XX */

#endif
struct struct_dealloc_arr_cmd {
struct expr_str * variable;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_dealloc_arr_cmd struct_dealloc_arr_cmd; /* XX */

#endif
struct struct_resize_arr_cmd {
struct expr_str * variable;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_resize_arr_cmd struct_resize_arr_cmd; /* XX */

#endif
struct struct_enable_cmd {
struct fh_field_list * srec;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_enable_cmd struct_enable_cmd; /* XX */

#endif
struct struct_enable_form_cmd {
struct expr_str * formname;
struct fh_field_list * srec;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_enable_form_cmd struct_enable_form_cmd; /* XX */

#endif
struct struct_disable_cmd {
struct fh_field_list * srec;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_disable_cmd struct_disable_cmd; /* XX */

#endif
struct struct_disable_form_cmd {
struct expr_str * formname;
struct fh_field_list * srec;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_disable_form_cmd struct_disable_form_cmd; /* XX */

#endif
struct struct_msg_box_cmd {
struct expr_str_list * msg;
struct expr_str_list * caption;
int icon;
int buttons;
int default_button;
int disable;
struct expr_str * returning;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_msg_box_cmd struct_msg_box_cmd; /* XX */

#endif
struct struct_next_form_cmd {
istypedefed str form;
istypedefed str field;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_next_form_cmd struct_next_form_cmd; /* XX */

#endif
struct struct_call_shared_cmd {
istypedefed str niy;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_call_shared_cmd struct_call_shared_cmd; /* XX */

#endif
struct struct_open_statusbox_cmd {
istypedefed str name;
struct expr_str * at_x;
struct expr_str * at_y;
struct expr_str * sz_width;
struct expr_str * sz_height;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_open_statusbox_cmd struct_open_statusbox_cmd; /* XX */

#endif
struct struct_set_session_cmd {
istypedefed str session_type;
struct expr_str * s1;
struct expr_str * s2;
struct expr_str * s3;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_set_session_cmd struct_set_session_cmd; /* XX */

#endif
struct vname {
istypedefed str name;
istypedefed str alias;
};
#ifndef OMIT_TYPEDEFS
typedef struct vname vname; /* XX */

#endif
struct vname_name_list {
struct {
 unsigned int names_len;
 istypedefed vname * names_val;
} names;
};
#ifndef OMIT_TYPEDEFS
typedef struct vname_name_list vname_name_list; /* XX */

#endif
enum e_constant_type {
 CONST_TYPE_CHAR = 0 ,
 CONST_TYPE_FLOAT = 1 ,
 CONST_TYPE_INTEGER = 2 ,
 CONST_TYPE_IDENT = 3 
};
typedef enum e_constant_type e_constant_type;

struct constant_data {
enum e_constant_type consttype;
union {
istypedefed str data_c;
istypedefed str data_ident;
int data_i;
double data_f;
} constant_data_u;
};
typedef struct constant_data constant_data;
struct linked_variable {
istypedefed str tabname;
struct vname_name_list col_list;
};
#ifndef OMIT_TYPEDEFS
typedef struct linked_variable linked_variable; /* XX */

#endif
/* struct variable mt=3 ms=0 mn=variable mp=1 */
typedef struct variable * variable_ptr;
struct assoc_array_variable {
istypedefed variable_ptr variable;
int size;
int char_size;
};
#ifndef OMIT_TYPEDEFS
typedef struct assoc_array_variable assoc_array_variable; /* XX */

#endif
struct simple_variable {
int datatype;
int dimensions[2];
struct expr_str * defaultvalue;
};
#ifndef OMIT_TYPEDEFS
typedef struct simple_variable simple_variable; /* XX */

#endif
struct record_variable {
struct {
 unsigned int variables_len;
 istypedefed variable_ptr * variables_val;
} variables;
int record_alloc;
struct linked_variable * linked;
istypedefed str user_ptr;
};
#ifndef OMIT_TYPEDEFS
typedef struct record_variable record_variable; /* XX */

#endif
struct object_variable {
istypedefed str class_name;
istypedefed variable_ptr definition;
};
#ifndef OMIT_TYPEDEFS
typedef struct object_variable object_variable; /* XX */

#endif
struct assoc_subscript {
istypedefed str subscript_string;
struct expr_str * subscript_value;
};
#ifndef OMIT_TYPEDEFS
typedef struct assoc_subscript assoc_subscript; /* XX */

#endif
enum e_variable_type {
 VARIABLE_TYPE_SIMPLE = 0 ,
 VARIABLE_TYPE_RECORD = 1 ,
 VARIABLE_TYPE_ASSOC = 2 ,
 VARIABLE_TYPE_CONSTANT = 3 ,
 VARIABLE_TYPE_FUNCTION_DECLARE = 4 ,
 VARIABLE_TYPE_OBJECT = 5 ,
 VARIABLE_TYPE_TYPE_DECLARATION = 6 ,
 VARIABLE_TYPE_USERDTYPE = 7 
};
typedef enum e_variable_type e_variable_type;

struct variable_data {
enum e_variable_type variable_type;
union {
struct simple_variable v_simple;
struct record_variable v_record;
struct assoc_array_variable v_assoc;
istypedefed constant_data v_const;
struct object_variable v_object;
struct variable * type_declaration;
istypedefed str datatypeName;
} variable_data_u;
};
typedef struct variable_data variable_data;
struct variable {
struct vname_name_list names;
istypedefed str defsrc;
istypedefed char user_system;
enum e_scope escope;
int is_static;
int is_extern;
struct {
 unsigned int arr_subscripts_len;
 int * arr_subscripts_val;
} arr_subscripts;
istypedefed variable_data var_data;
istypedefed str src_module;
int usage;
int assigned;
int flags;
int lineno;
};
#ifndef OMIT_TYPEDEFS
typedef struct variable variable; /* XX */

#endif
struct lint_warning {
int lineno;
istypedefed str warning;
};
#ifndef OMIT_TYPEDEFS
typedef struct lint_warning lint_warning; /* XX */

#endif
struct variable_list {
struct {
 unsigned int variables_len;
 istypedefed variable_ptr * variables_val;
} variables;
int sorted_list;
};
#ifndef OMIT_TYPEDEFS
typedef struct variable_list variable_list; /* XX */

#endif
struct s_create_proc_data_p {
struct {
 unsigned int parameters_len;
 istypedefed variable_ptr * parameters_val;
} parameters;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_create_proc_data_p s_create_proc_data_p; /* XX */

#endif
struct s_create_proc_data_r {
struct {
 unsigned int returning_len;
 istypedefed variable_ptr * returning_val;
} returning;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_create_proc_data_r s_create_proc_data_r; /* XX */

#endif
struct create_proc_data {
istypedefed str funcname;
struct s_create_proc_data_p params;
struct s_create_proc_data_r returning;
struct s_spl_block * block;
struct expr_str_list * document;
struct expr_str * listing;
enum e_boolean isDBA;
};
#ifndef OMIT_TYPEDEFS
typedef struct create_proc_data create_proc_data; /* XX */

#endif
struct struct_create_proc_cmd {
struct expr_str * connid;
struct create_proc_data * create_proc;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_create_proc_cmd struct_create_proc_cmd; /* XX */

#endif
struct struct_execute_procedure_cmd {
struct expr_str * connid;
istypedefed str funcname;
struct s_select_list_item_list * parameters;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_execute_procedure_cmd struct_execute_procedure_cmd; /* XX */

#endif
struct struct_spl_system_cmd {
struct expr_str * cmd;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_spl_system_cmd struct_spl_system_cmd; /* XX */

#endif
struct struct_spl_let_cmd {
struct str_list * vars;
struct expr_str_list * values;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_spl_let_cmd struct_spl_let_cmd; /* XX */

#endif
struct struct_spl_raise_exception_cmd {
struct expr_str * sql_err;
struct expr_str * isam_err;
struct expr_str * err_text;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_spl_raise_exception_cmd struct_spl_raise_exception_cmd; /* XX */

#endif
struct spl_if_cond {
struct expr_str * test_expr;
struct s_spl_block * commands;
};
#ifndef OMIT_TYPEDEFS
typedef struct spl_if_cond spl_if_cond; /* XX */

#endif
struct spl_if_conds {
struct {
 unsigned int conditions_len;
 istypedefed spl_if_cond * conditions_val;
} conditions;
};
#ifndef OMIT_TYPEDEFS
typedef struct spl_if_conds spl_if_conds; /* XX */

#endif
struct struct_spl_if_cmd {
istypedefed spl_if_conds conditions;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_spl_if_cmd struct_spl_if_cmd; /* XX */

#endif
struct struct_spl_while_cmd {
struct expr_str * condition;
struct s_spl_block * block;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_spl_while_cmd struct_spl_while_cmd; /* XX */

#endif
struct struct_spl_return_cmd {
struct expr_str_list * rvals;
int withResume;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_spl_return_cmd struct_spl_return_cmd; /* XX */

#endif
struct struct_spl_block_cmd {
struct s_spl_block * block;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_spl_block_cmd struct_spl_block_cmd; /* XX */

#endif
struct struct_spl_trace_cmd {
struct expr_str * trace_expr;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_spl_trace_cmd struct_spl_trace_cmd; /* XX */

#endif
struct struct_spl_for_cmd {
istypedefed str vname;
struct expr_str_list * value_list;
struct s_spl_block * block;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_spl_for_cmd struct_spl_for_cmd; /* XX */

#endif
struct struct_spl_on_exception_cmd {
struct list_of_integers * exception_list;
struct str_list * set_list;
struct s_spl_block * block;
int resume;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_spl_on_exception_cmd struct_spl_on_exception_cmd; /* XX */

#endif
struct struct_spl_foreach_select_cmd {
int withHold;
istypedefed str cursorName;
struct s_select * select_stmt;
struct s_spl_block * block;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_spl_foreach_select_cmd struct_spl_foreach_select_cmd; /* XX */

#endif
struct s_spl_execute {
istypedefed str proc_name;
struct expr_str_list * parameters;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_spl_execute s_spl_execute; /* XX */

#endif
struct struct_spl_call_cmd {
struct s_spl_execute * fcall;
istypedefed str_list * return_variables;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_spl_call_cmd struct_spl_call_cmd; /* XX */

#endif
struct struct_spl_foreach_execute_cmd {
struct s_spl_execute * fcall;
istypedefed str_list * into_vars;
struct s_spl_block * block;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_spl_foreach_execute_cmd struct_spl_foreach_execute_cmd; /* XX */

#endif
struct struct_whenever_signal_cmd {
istypedefed str function_name;
int sigtype;
};
#ifndef OMIT_TYPEDEFS
typedef struct struct_whenever_signal_cmd struct_whenever_signal_cmd; /* XX */

#endif
struct command_data {
enum cmd_type type;
union {
istypedefed struct_start_rpc_cmd start_rpc_cmd;
istypedefed struct_call_cmd call_cmd;
istypedefed struct_cancel_cmd cancel_cmd;
istypedefed struct_case_cmd case_cmd;
istypedefed struct_close_cmd close_cmd;
istypedefed struct_close_sql_cmd close_sql_cmd;
istypedefed struct_sql_debug_file_cmd sql_debug_file_cmd;
istypedefed struct_code_cmd code_cmd;
istypedefed struct_construct_cmd construct_cmd;
istypedefed struct_defer_cmd defer_cmd;
istypedefed struct_display_b_n_cmd display_b_n_cmd;
istypedefed struct_display_cmd display_cmd;
istypedefed struct_display_form_cmd display_form_cmd;
istypedefed struct_display_array_cmd display_array_cmd;
istypedefed struct_alloc_arr_cmd alloc_arr_cmd;
istypedefed struct_dealloc_arr_cmd dealloc_arr_cmd;
istypedefed struct_resize_arr_cmd resize_arr_cmd;
istypedefed struct_error_cmd error_cmd;
istypedefed struct_ext_cmd ext_cmd;
istypedefed struct_continue_cmd continue_cmd;
istypedefed struct_exit_prog_cmd exit_prog_cmd;
istypedefed struct_for_cmd for_cmd;
istypedefed struct_foreach_cmd foreach_cmd;
istypedefed struct_free_cmd free_cmd;
istypedefed struct_free_blob_cmd free_blob_cmd;
istypedefed struct_goto_cmd goto_cmd;
istypedefed struct_check_menu_cmd check_menu_cmd;
istypedefed struct_uncheck_menu_cmd uncheck_menu_cmd;
istypedefed struct_disable_menu_cmd disable_menu_cmd;
istypedefed struct_enable_menu_cmd enable_menu_cmd;
istypedefed struct_msg_box_cmd msg_box_cmd;
istypedefed struct_if_cmd if_cmd;
istypedefed struct_init_cmd init_cmd;
istypedefed struct_next_field_cmd next_field_cmd;
istypedefed struct_next_form_cmd next_form_cmd;
istypedefed struct_input_cmd input_cmd;
istypedefed struct_input_array_cmd input_array_cmd;
istypedefed struct_scroll_cmd scroll_cmd;
istypedefed struct_label_cmd label_cmd;
istypedefed struct_let_cmd let_cmd;
istypedefed struct_mlet_cmd mlet_cmd;
istypedefed struct_locate_cmd locate_cmd;
istypedefed struct_at_term_cmd at_term_cmd;
istypedefed struct_return_cmd return_cmd;
istypedefed struct_menu_cmd menu_cmd;
istypedefed struct_next_option_cmd next_option_cmd;
istypedefed struct_show_option_cmd show_option_cmd;
istypedefed struct_hide_option_cmd hide_option_cmd;
istypedefed struct_message_cmd message_cmd;
istypedefed struct_open_window_cmd open_window_cmd;
istypedefed struct_open_statusbox_cmd open_statusbox_cmd;
istypedefed struct_open_form_cmd open_form_cmd;
istypedefed struct_open_form_gui_cmd open_form_gui_cmd;
istypedefed struct_open_cursor_cmd open_cursor_cmd;
istypedefed struct_connect_cmd connect_cmd;
istypedefed struct_options_cmd options_cmd;
istypedefed struct_prepare_cmd prepare_cmd;
istypedefed struct_execute_cmd execute_cmd;
istypedefed struct_execute_immediate_cmd execute_immediate_cmd;
istypedefed struct_prompt_cmd prompt_cmd;
istypedefed struct_start_cmd start_cmd;
istypedefed struct_convert_cmd convert_cmd;
istypedefed struct_free_rep_cmd free_rep_cmd;
istypedefed struct_output_cmd output_cmd;
istypedefed struct_finish_cmd finish_cmd;
istypedefed struct_term_rep_cmd term_rep_cmd;
istypedefed struct_need_cmd need_cmd;
istypedefed struct_skip_cmd skip_cmd;
istypedefed struct_skip_by_cmd skip_by_cmd;
istypedefed struct_skip_to_cmd skip_to_cmd;
istypedefed struct_print_cmd print_cmd;
istypedefed struct_print_file_cmd print_file_cmd;
istypedefed struct_print_img_cmd print_img_cmd;
istypedefed struct_pause_cmd pause_cmd;
istypedefed struct_run_cmd run_cmd;
istypedefed struct_run_waiting_for_cmd run_waiting_for_cmd;
istypedefed struct_sleep_cmd sleep_cmd;
istypedefed struct_sql_block_cmd sql_block_cmd;
istypedefed struct_validate_cmd validate_cmd;
istypedefed struct_whenever_cmd whenever_cmd;
istypedefed struct_while_cmd while_cmd;
istypedefed struct_clear_cmd clear_cmd;
istypedefed struct_current_win_cmd current_win_cmd;
istypedefed struct_show_cmd show_cmd;
istypedefed struct_hide_cmd hide_cmd;
istypedefed struct_move_cmd move_cmd;
istypedefed struct_put_cmd put_cmd;
istypedefed struct_unload_cmd unload_cmd;
istypedefed struct_load_cmd load_cmd;
istypedefed struct_sql_cmd sql_cmd;
istypedefed struct_sql_transact_cmd sql_transact_cmd;
istypedefed struct_select_cmd select_cmd;
istypedefed struct_flush_cmd flush_cmd;
istypedefed struct_declare_cmd declare_cmd;
istypedefed struct_set_database_cmd set_database_cmd;
istypedefed struct_fetch_cmd fetch_cmd;
istypedefed struct_show_menu_cmd show_menu_cmd;
istypedefed struct_enable_cmd enable_cmd;
istypedefed struct_update_cmd update_cmd;
istypedefed struct_insert_cmd insert_cmd;
istypedefed struct_delete_cmd delete_cmd;
istypedefed struct_enable_form_cmd enable_form_cmd;
istypedefed struct_disable_cmd disable_cmd;
istypedefed struct_disable_form_cmd disable_form_cmd;
istypedefed struct_pdf_call_cmd pdf_call_cmd;
istypedefed struct_set_session_cmd set_session_cmd;
istypedefed struct_lint_ignore_cmd lint_ignore_cmd;
istypedefed struct_lint_expect_cmd lint_expect_cmd;
istypedefed struct_copyback_cmd copyback_cmd;
istypedefed struct_sort_cmd sort_cmd;
istypedefed struct_create_proc_cmd create_proc_cmd;
istypedefed struct_spl_system_cmd spl_system_cmd;
istypedefed struct_spl_foreach_select_cmd spl_foreach_select_cmd;
istypedefed struct_spl_foreach_execute_cmd spl_foreach_execute_cmd;
istypedefed struct_spl_let_cmd spl_let_cmd;
istypedefed struct_spl_raise_exception_cmd spl_raise_exception_cmd;
istypedefed struct_spl_on_exception_cmd spl_on_exception_cmd;
istypedefed struct_spl_if_cmd spl_if_cmd;
istypedefed struct_spl_while_cmd spl_while_cmd;
istypedefed struct_spl_for_cmd spl_for_cmd;
istypedefed struct_spl_call_cmd spl_call_cmd;
istypedefed struct_spl_trace_cmd spl_trace_cmd;
istypedefed struct_spl_return_cmd spl_return_cmd;
istypedefed struct_spl_block_cmd spl_block_cmd;
istypedefed struct_execute_procedure_cmd execute_procedure_cmd;
istypedefed struct_todo_cmd todo_cmd;
istypedefed struct_whenever_signal_cmd whenever_signal_cmd;
} command_data_u;
};
typedef struct command_data command_data;
struct fgl_comment {
int lineno;
int colno;
int printed;
istypedefed str comment;
istypedefed char type;
};
#ifndef OMIT_TYPEDEFS
typedef struct fgl_comment fgl_comment; /* XX */

#endif
struct cmd_int_list {
struct {
 unsigned int int_vals_len;
 int * int_vals_val;
} int_vals;
};
#ifndef OMIT_TYPEDEFS
typedef struct cmd_int_list cmd_int_list; /* XX */

#endif
struct command {
istypedefed command_data cmd_data;
istypedefed str comment;
int lineno;
int colno;
istypedefed str module;
struct cmd_int_list * ignore_error_list;
};
#ifndef OMIT_TYPEDEFS
typedef struct command command; /* XX */

#endif
enum flist_type {
 FLIST_NORMAL = 0 ,
 FLIST_SPECIAL = 1 
};
typedef enum flist_type flist_type;

struct flist {
istypedefed str name;
enum flist_type type;
istypedefed str special;
};
#ifndef OMIT_TYPEDEFS
typedef struct flist flist; /* XX */

#endif
struct file_description {
istypedefed str name;
struct {
 unsigned int list_len;
 struct flist * list_val;
} list;
};
#ifndef OMIT_TYPEDEFS
typedef struct file_description file_description; /* XX */

#endif
/* struct module_entry mt=3 ms=0 mn=module_entry mp=1 */
typedef struct module_entry * module_entry_ptr;
struct s_module_entry_ptr_list {
struct {
 unsigned int module_entry_ptr_list_len;
 istypedefed module_entry_ptr * module_entry_ptr_list_val;
} module_entry_ptr_list;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_module_entry_ptr_list s_module_entry_ptr_list; /* XX */

#endif
struct s_module_variables {
istypedefed variable_list variables;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_module_variables s_module_variables; /* XX */

#endif
struct s_imported_global_variables {
istypedefed variable_list variables;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_imported_global_variables s_imported_global_variables; /* XX */

#endif
struct s_exported_global_variables {
istypedefed variable_list variables;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_exported_global_variables s_exported_global_variables; /* XX */

#endif
struct s_two_strings {
istypedefed str string1;
istypedefed str string2;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_two_strings s_two_strings; /* XX */

#endif
enum e_pragmas {
 E_PRAGMA_SYSTEM_4GL = 0 ,
 E_PRAGMA_SQL_FEATURE = 1 ,
 E_PRAGMA_EMULATE_INSERT_CURSOR_FOR = 2 ,
 E_PRAGMA_COLUMN_IS_SERIAL = 3 ,
 E_PRAGMA_REPLACE_STRING = 4 ,
 E_PRAGMA_STOP_REPLACE_STRING = 5 ,
 E_PRAGMA_IGNORE_FUNCTION = 6 ,
 E_PRAGMA_FORCE_UI = 7 ,
 E_PRAGMA_DEBUG_FILE = 8 ,
 E_PRAGMA_NOSQLCLOBBER = 9 ,
 E_PRAGMA_NOCLOBBER = 10 ,
 E_PRAGMA_ALWAYSSQLCLOBBER = 11 ,
 E_PRAGMA_ALWAYSCLOBBER = 12 ,
 E_PRAGMA_LINTMODULEISLIBRARY = 13 ,
 E_PRAGMA_SET_POSTGRESQL_SEARCH_PATH = 14 
};
typedef enum e_pragmas e_pragmas;

struct u_pragmas {
enum e_pragmas pragma_type;
union {
istypedefed str string_value;
struct s_two_strings two_string_value;
} u_pragmas_u;
};
typedef struct u_pragmas u_pragmas;
struct globals_definition {
istypedefed str mod_dbname;
istypedefed str hash;
struct {
 unsigned int external_datatypes_len;
 istypedefed str * external_datatypes_val;
} external_datatypes;
struct {
 unsigned int pragmas_len;
 istypedefed u_pragmas * pragmas_val;
} pragmas;
struct {
 unsigned int used_object_types_len;
 istypedefed str * used_object_types_val;
} used_object_types;
enum e_boolean schema_only;
long compiled_time;
struct s_exported_global_variables exported_global_variables;
};
#ifndef OMIT_TYPEDEFS
typedef struct globals_definition globals_definition; /* XX */

#endif
struct s_dependant_tables {
istypedefed str tabname;
istypedefed str checksuminfo;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_dependant_tables s_dependant_tables; /* XX */

#endif
struct s_source_code {
struct {
 unsigned int lines_len;
 istypedefed str * lines_val;
} lines;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_source_code s_source_code; /* XX */

#endif
struct module_definition {
istypedefed str mod_dbname;
istypedefed str hash;
istypedefed str n_namespace;
istypedefed str force_ui;
istypedefed str debug_filename;
struct {
 unsigned int external_datatypes_len;
 istypedefed str * external_datatypes_val;
} external_datatypes;
istypedefed str compile_time_sqltype;
struct {
 unsigned int pragmas_len;
 istypedefed u_pragmas * pragmas_val;
} pragmas;
struct {
 unsigned int used_object_types_len;
 istypedefed str * used_object_types_val;
} used_object_types;
struct {
 unsigned int comment_list_len;
 struct fgl_comment * comment_list_val;
} comment_list;
struct {
 unsigned int imported_files_len;
 struct file_description * imported_files_val;
} imported_files;
enum e_boolean schema_only;
enum e_boolean genStackInfo;
istypedefed str module_name;
long compiled_time;
struct str_list * global_files;
struct {
 unsigned int clobberings_len;
 struct s_exchange_clobber * clobberings_val;
} clobberings;
struct {
 unsigned int dependant_tables_len;
 struct s_dependant_tables * dependant_tables_val;
} dependant_tables;
struct s_module_variables module_variables;
struct s_imported_global_variables imported_global_variables;
struct s_exported_global_variables exported_global_variables;
struct str_list imported_global_files_hashes;
struct {
 unsigned int module_entries_len;
 istypedefed module_entry_ptr * module_entries_val;
} module_entries;
istypedefed str full_path_filename;
struct s_source_code source_code;
long moduleIsInLibrary;
};
#ifndef OMIT_TYPEDEFS
typedef struct module_definition module_definition; /* XX */

#endif
struct s_unexpanded_list {
struct {
 unsigned int list_len;
 istypedefed expr_str_ptr * list_val;
} list;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_unexpanded_list s_unexpanded_list; /* XX */

#endif
struct expr_str_list {
struct {
 unsigned int list_len;
 istypedefed expr_str_ptr * list_val;
} list;
struct s_unexpanded_list unexpanded_list;
};
#ifndef OMIT_TYPEDEFS
typedef struct expr_str_list expr_str_list; /* XX */

#endif
struct s_expr_op {
struct expr_str * left;
struct expr_str * right;
struct expr_str * escape;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_op s_expr_op; /* XX */

#endif
struct s_spl_block {
istypedefed variable_list variables;
istypedefed s_commands * commands;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_spl_block s_spl_block; /* XX */

#endif
struct s_expr_function_call {
istypedefed str functionname;
istypedefed str n_namespace;
struct expr_str_list * parameters;
istypedefed str module;
int line;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_function_call s_expr_function_call; /* XX */

#endif
struct s_expr_pdf_function_call {
istypedefed str functionname;
istypedefed str n_namespace;
struct expr_str_list * parameters;
istypedefed str module;
int line;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_pdf_function_call s_expr_pdf_function_call; /* XX */

#endif
struct s_expr_shared_function_call {
istypedefed str lib;
istypedefed str functionname;
istypedefed str n_namespace;
struct expr_str_list * parameters;
istypedefed str module;
int line;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_shared_function_call s_expr_shared_function_call; /* XX */

#endif
struct s_expr_infield {
int sio_id;
struct fh_field_list * field_list;
istypedefed str module;
int line;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_infield s_expr_infield; /* XX */

#endif
struct s_expr_syncfields {
int sio_id;
istypedefed str mode;
istypedefed str module;
int line;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_syncfields s_expr_syncfields; /* XX */

#endif
struct s_expr_get_fldbuf {
int sio_id;
struct fh_field_list * field_list;
istypedefed str module;
int line;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_get_fldbuf s_expr_get_fldbuf; /* XX */

#endif
struct s_expr_form_is_compiled {
struct expr_str * formname;
struct expr_str_list * params;
istypedefed str module;
int line;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_form_is_compiled s_expr_form_is_compiled; /* XX */

#endif
struct s_expr_field_touched {
int sio_id;
struct fh_field_list * field_list;
istypedefed str module;
int line;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_field_touched s_expr_field_touched; /* XX */

#endif
struct s_expr_wordwrap {
struct expr_str * expr;
struct expr_str * wrap_at;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_wordwrap s_expr_wordwrap; /* XX */

#endif
struct s_expr_member_function_call_n {
struct expr_str * var_usage_ptr;
istypedefed str funcName;
istypedefed str objectType;
istypedefed str n_namespace;
int datatype;
istypedefed expr_str_list * parameters;
istypedefed str module;
int line;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_member_function_call_n s_expr_member_function_call_n; /* XX */

#endif
struct s_expr_dynarr_function_call_n {
struct expr_str * var_usage_ptr;
istypedefed str funcName;
istypedefed str n_namespace;
istypedefed expr_str_list * parameters;
istypedefed str module;
int line;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_dynarr_function_call_n s_expr_dynarr_function_call_n; /* XX */

#endif
struct s_expr_extend {
struct expr_str * expr;
int to;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_extend s_expr_extend; /* XX */

#endif
struct s_expr_external_call {
istypedefed str host;
istypedefed str func;
struct expr_str * port;
istypedefed str n_namespace;
struct expr_str_list * parameters;
int without_waiting;
istypedefed str module;
int line;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_external_call s_expr_external_call; /* XX */

#endif
struct s_expr_current {
int from;
int to;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_current s_expr_current; /* XX */

#endif
struct s_expr_in {
struct expr_str * expr;
struct expr_str_list * elist;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_in s_expr_in; /* XX */

#endif
struct s_expr_datetime {
istypedefed str dtval;
int extend;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_datetime s_expr_datetime; /* XX */

#endif
struct s_expr_tmp {
istypedefed str s_str;
int dtype;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_tmp s_expr_tmp; /* XX */

#endif
struct s_expr_interval {
istypedefed str intval;
int extend;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_interval s_expr_interval; /* XX */

#endif
struct s_expr_exists_sq {
struct s_select * subquery;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_exists_sq s_expr_exists_sq; /* XX */

#endif
struct s_expr_in_sq {
struct expr_str * expr;
struct s_select * subquery;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_in_sq s_expr_in_sq; /* XX */

#endif
struct s_expr_cast {
struct expr_str * expr;
int target_dtype;
int src_dtype;
int notnull;
int force;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_cast s_expr_cast; /* XX */

#endif
struct s_expr_bound_fcall {
istypedefed str lib;
istypedefed str n_namespace;
istypedefed str functionname;
istypedefed str module;
int line;
struct expr_str_list * values;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_bound_fcall s_expr_bound_fcall; /* XX */

#endif
struct s_expr_agg {
istypedefed char agg_type;
int expr_num;
int in_group;
struct expr_str * agg_expr;
struct expr_str * expr_where;
int blockid;
int blockid_always;
int lineno;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_agg s_expr_agg; /* XX */

#endif
struct s_expr_dynarr_extent {
struct expr_str * var;
int n;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_dynarr_extent s_expr_dynarr_extent; /* XX */

#endif
struct s_func {
istypedefed str funcname;
istypedefed str n_namespace;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_func s_func; /* XX */

#endif
struct s_named_param {
istypedefed str param_name;
struct expr_str * param_value;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_named_param s_named_param; /* XX */

#endif
struct s_email_report {
istypedefed str report_name;
struct expr_str * email_addr;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_email_report s_email_report; /* XX */

#endif
enum e_expr_type {
 ET_EXPR_EXPR_LIST = 0 ,
 ET_EXPR_BINDING = 1 ,
 ET_EXPR_STRING = 2 ,
 ET_EXPR_TODAY = 3 ,
 ET_EXPR_TIME = 4 ,
 ET_EXPR_LINENO = 5 ,
 ET_EXPR_PAGENO = 6 ,
 ET_EXPR_TIME_EXPR = 7 ,
 ET_EXPR_DATE_EXPR = 8 ,
 ET_EXPR_NULL = 9 ,
 ET_EXPR_TRUE = 10 ,
 ET_EXPR_FALSE = 11 ,
 ET_EXPR_NOT = 12 ,
 ET_EXPR_UPSHIFT = 13 ,
 ET_EXPR_DOWNSHIFT = 14 ,
 ET_EXPR_EXTEND = 15 ,
 ET_EXPR_ASCII = 16 ,
 ET_EXPR_MM = 17 ,
 ET_EXPR_POINTS = 18 ,
 ET_EXPR_INCHES = 19 ,
 ET_EXPR_CURRENT = 20 ,
 ET_EXPR_OP_MULT = 21 ,
 ET_EXPR_OP_DIV = 22 ,
 ET_EXPR_OP_POWER = 23 ,
 ET_EXPR_OP_ADD = 24 ,
 ET_EXPR_OP_SUB = 25 ,
 ET_EXPR_OP_EQUAL = 26 ,
 ET_EXPR_OP_NOT_EQUAL = 27 ,
 ET_EXPR_OP_MOD = 28 ,
 ET_EXPR_OP_USING = 29 ,
 ET_EXPR_OP_LIKE = 30 ,
 ET_EXPR_OP_NOT_LIKE = 31 ,
 ET_EXPR_OP_IN = 32 ,
 ET_EXPR_OP_NOT_IN = 33 ,
 ET_EXPR_OP_CONCAT = 34 ,
 ET_EXPR_OP_MATCHES = 35 ,
 ET_EXPR_OP_NOT_MATCHES = 36 ,
 ET_EXPR_OP_CLIP = 37 ,
 ET_EXPR_OP_LESS_THAN = 38 ,
 ET_EXPR_OP_LESS_THAN_EQ = 39 ,
 ET_EXPR_OP_GREATER_THAN = 40 ,
 ET_EXPR_OP_GREATER_THAN_EQ = 41 ,
 ET_EXPR_OP_YEAR = 42 ,
 ET_EXPR_OP_MONTH = 43 ,
 ET_EXPR_OP_DAY = 44 ,
 ET_EXPR_OP_HOUR = 45 ,
 ET_EXPR_OP_MINUTE = 46 ,
 ET_EXPR_OP_SECOND = 47 ,
 ET_EXPR_OP_ISNULL = 48 ,
 ET_EXPR_OP_ISNOTNULL = 49 ,
 ET_EXPR_OP_SPACES = 50 ,
 ET_EXPR_OP_AND = 51 ,
 ET_EXPR_OP_OR = 52 ,
 ET_EXPR_NEG = 53 ,
 ET_EXPR_FCALL = 54 ,
 ET_EXPR_PDF_FCALL = 55 ,
 ET_EXPR_SHARED_FCALL = 56 ,
 ET_EXPR_MEMBER_FCALL_NEW = 57 ,
 ET_EXPR_DYNARR_FCALL_NEW = 58 ,
 ET_EXPR_COLUMN = 59 ,
 ET_EXPR_REPORT_EMAIL_NEW = 60 ,
 ET_EXPR_REPORT_PRINTER = 61 ,
 ET_EXPR_REPORT_UI = 62 ,
 ET_EXPR_QUOTED_STRING = 63 ,
 ET_EXPR_TRANSLATED_STRING = 64 ,
 ET_EXPR_LITERAL_DOUBLE_STR = 65 ,
 ET_EXPR_LITERAL_LONG = 66 ,
 ET_EXPR_LITERAL_STRING = 67 ,
 ET_EXPR_LITERAL_EMPTY_STRING = 68 ,
 ET_EXPR_REDUCED = 69 ,
 ET_EXPR_EXTERNAL = 70 ,
 ET_EXPR_GET_FLDBUF = 71 ,
 ET_EXPR_FORM_IS_COMPILED = 72 ,
 ET_EXPR_WORDWRAP = 73 ,
 ET_EXPR_NOT_EXISTS_SUBQUERY = 74 ,
 ET_EXPR_EXISTS_SUBQUERY = 75 ,
 ET_EXPR_OP_IN_SUBQUERY = 76 ,
 ET_EXPR_OP_NOTIN_SUBQUERY = 77 ,
 ET_EXPR_CAST = 78 ,
 ET_EXPR_CONCAT_LIST = 79 ,
 ET_EXPR_YEAR_FUNC = 80 ,
 ET_EXPR_MONTH_FUNC = 81 ,
 ET_EXPR_DAY_FUNC = 82 ,
 ET_EXPR_DATE_FUNC = 83 ,
 ET_EXPR_TIME_FUNC = 84 ,
 ET_EXPR_DTVAL = 85 ,
 ET_EXPR_INFIELD = 86 ,
 ET_EXPR_SYNCFIELDS = 87 ,
 ET_EXPR_FIELD_TOUCHED = 88 ,
 ET_EXPR_NOT_FIELD_TOUCHED = 89 ,
 ET_EXPR_IVAL_VAL = 90 ,
 ET_EXPR_TEMP = 91 ,
 ET_EXPR_BOUND_FCALL = 92 ,
 ET_EXPR_AGGREGATE = 93 ,
 ET_EXPR_FGL_SIZEOF = 94 ,
 ET_EXPR_FGL_ADDRESSOF = 95 ,
 ET_EXPR_FGL_ISDYNARR_ALLOCATED = 96 ,
 ET_EXPR_FGL_DYNARR_EXTENTSIZE = 97 ,
 ET_EXPR_FIELDTOWIDGET = 98 ,
 ET_EXPR_ID_TO_INT = 99 ,
 ET_EXPR_FIELDNAME = 100 ,
 ET_EXPR_MODULE_FUNC = 101 ,
 ET_EXPR_IDENTIFIER = 102 ,
 ET_EXPR_PARAMETER = 103 ,
 ET_EXPR_VARIABLE_IDENTIFIER = 104 ,
 ET_EXPR_CACHED = 105 ,
 ET_EXPR_MENU_ALL = 106 ,
 ET_EXPR_VARIABLE_USAGE = 107 ,
 ET_EXPR_VARIABLE_USAGE_WITH_ASC_DESC = 108 ,
 ET_EXPR_SQLBLOCK = 109 ,
 ET_EXPR_SQLBLOCK_TEXT = 110 ,
 ET_EXPR_SQLBLOCK_INTO = 111 ,
 ET_EXPR_SELECT_LIST_ITEM = 112 ,
 ET_EXPR_BRACKET = 113 ,
 ET_E_V_OR_LIT_VAR = 114 ,
 ET_E_V_OR_LIT_INT = 115 ,
 ET_E_V_OR_LIT_STRING = 116 ,
 ET_E_V_OR_LIT_VAR_AS_STRING = 117 ,
 ET_E_V_OR_LIT_IDENT = 118 ,
 ET_E_V_OR_LIT_NOVALUE = 119 ,
 ET_EXPR_THROUGH = 120 ,
 ET_EXPR_WHERE_CURRENT_OF = 121 ,
 ET_EXPR_ASSOC = 122 ,
 ET_EXPR_CURSOR_NAME_FUNCTION = 123 ,
 ET_EXPR_REFERENCE = 124 ,
 ET_EXPR_PDF_X = 125 ,
 ET_EXPR_PDF_Y = 126 ,
 ET_EXPR_PDF_CURRENT_X = 127 ,
 ET_EXPR_PDF_CURRENT_Y = 128 ,
 ET_EXPR_CM = 129 ,
 ET_EXPR_FUNC = 130 ,
 ET_EXPR_RIGHT_ALIGNED = 131 ,
 ET_EXPR_TAG = 132 ,
 ET_EXPR_RETURN_NULL = 133 ,
 ET_EXPR_SQLERRMESSAGE = 134 ,
 ET_EXPR_OP_EQUAL_ALL = 135 ,
 ET_EXPR_OP_LESS_THAN_ALL = 136 ,
 ET_EXPR_OP_GREATER_THAN_ALL = 137 ,
 ET_EXPR_OP_NOT_EQUAL_ALL = 138 ,
 ET_EXPR_OP_LESS_THAN_EQ_ALL = 139 ,
 ET_EXPR_OP_GREATER_THAN_EQ_ALL = 140 ,
 ET_EXPR_OP_EQUAL_ANY = 141 ,
 ET_EXPR_OP_LESS_THAN_ANY = 142 ,
 ET_EXPR_OP_GREATER_THAN_ANY = 143 ,
 ET_EXPR_OP_NOT_EQUAL_ANY = 144 ,
 ET_EXPR_OP_LESS_THAN_EQ_ANY = 145 ,
 ET_EXPR_OP_GREATER_THAN_EQ_ANY = 146 ,
 ET_EXPR_SPL_TRACE_ON = 147 ,
 ET_EXPR_SPL_TRACE_OFF = 148 ,
 ET_EXPR_SPL_TRACE_PROCEDURE = 149 ,
 ET_EXPR_SPL_TRACE_EXPR = 150 ,
 ET_EXPR_NAMED_PARAM = 151 ,
 ET_EXPR_SPL_FOR_ITEM = 152 ,
 ET_EXPR_SPL_VARIABLE_USAGE = 153 ,
 ET_EXPR_SELECT = 154 ,
 ET_EXPR_LAST = 155 
};
typedef enum e_expr_type e_expr_type;

struct s_expr_aligned {
struct expr_str * print_text;
struct expr_str * print_to;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_aligned s_expr_aligned; /* XX */

#endif
struct s_expr_tag {
struct expr_str * print_text;
struct expr_str * tag;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_tag s_expr_tag; /* XX */

#endif
struct s_expr_cached {
int cache_num;
int ref_cnt;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_cached s_expr_cached; /* XX */

#endif
struct s_expr_parameter {
enum e_boolean isReference;
istypedefed str expr_string;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_expr_parameter s_expr_parameter; /* XX */

#endif
struct s_spl_for_item {
struct expr_str * start;
struct expr_str * end;
struct expr_str * step;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_spl_for_item s_spl_for_item; /* XX */

#endif
/* struct s_spl_for_item mt=3 ms=0 mn=s_spl_for_item mp=1 */
typedef struct s_spl_for_item * spl_for_item_ptr;
struct expr_str {
enum e_expr_type expr_type;
union {
struct s_expr_syncfields * expr_syncfields;
struct s_expr_parameter expr_param;
istypedefed str expr_string;
struct s_email_report expr_email_report;
long expr_long;
struct s_expr_cached expr_cached;
struct s_expr_extend * expr_extend;
struct expr_str_list * expr_list;
struct s_expr_function_call * expr_function_call;
struct s_expr_pdf_function_call * expr_pdf_function_call;
struct s_expr_shared_function_call * expr_shared_function_call;
struct s_expr_member_function_call_n * expr_member_function_call_n;
struct s_expr_dynarr_function_call_n * expr_dynarr_function_call_n;
struct s_expr_external_call * expr_external_call;
struct s_expr_op * expr_op;
struct s_expr_current * expr_current;
struct s_expr_get_fldbuf * expr_get_fldbuf;
struct s_expr_form_is_compiled * expr_form_is_compiled;
struct s_expr_infield * expr_infield;
struct s_expr_wordwrap * expr_wordwrap;
struct s_expr_in * expr_in;
struct s_expr_exists_sq * expr_exists_sq;
struct s_expr_in_sq * expr_in_sq;
struct s_expr_cast * expr_cast;
struct s_expr_datetime * expr_datetime;
struct s_expr_interval * expr_interval;
struct s_expr_field_touched * expr_field_touched;
struct s_expr_tmp * expr_tmp;
struct s_expr_bound_fcall * expr_bound_fcall;
struct s_expr_agg * expr_agg;
struct s_expr_dynarr_extent * expr_dynarr_extent;
struct fh_field_entry * expr_field_entry;
struct assoc_subscript * expr_assoc_subscript;
struct expr_str * expr_expr;
struct variable_usage * expr_variable_usage;
struct variable_usage_with_asc_desc * expr_variable_usage_with_asc_desc;
struct s_select_list_item * sl_item;
struct s_expr_aligned * expr_aligned;
struct s_expr_tag * expr_tag;
int i;
istypedefed str s;
istypedefed str sv;
istypedefed str si;
struct s_named_param * expr_named_param;
struct s_func expr_func;
struct s_spl_for_item * expr_spl_for_item;
struct s_select * select_stmt;
} expr_str_u;
};
typedef struct expr_str expr_str;
struct s_fh_field_entry_field {
struct expr_str * field;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_fh_field_entry_field s_fh_field_entry_field; /* XX */

#endif
struct s_fh_field_entry_fieldsub {
struct expr_str * fieldsub;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_fh_field_entry_fieldsub s_fh_field_entry_fieldsub; /* XX */

#endif
struct fh_field_entry {
struct s_fh_field_entry_field field;
struct s_fh_field_entry_fieldsub fieldsub;
};
#ifndef OMIT_TYPEDEFS
typedef struct fh_field_entry fh_field_entry; /* XX */

#endif
struct fh_field_list {
struct {
 unsigned int field_list_entries_len;
 struct fh_field_entry * field_list_entries_val;
} field_list_entries;
};
#ifndef OMIT_TYPEDEFS
typedef struct fh_field_list fh_field_list; /* XX */

#endif
struct variable_usage_with_asc_desc {
struct variable_usage * var_usage;
istypedefed char asc_desc;
};
#ifndef OMIT_TYPEDEFS
typedef struct variable_usage_with_asc_desc variable_usage_with_asc_desc; /* XX */

#endif
struct s_substring_start {
istypedefed expr_str * substrings_start;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_substring_start s_substring_start; /* XX */

#endif
struct s_substring_end {
istypedefed expr_str * substrings_end;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_substring_end s_substring_end; /* XX */

#endif
struct variable_usage {
istypedefed str variable_name;
struct {
 unsigned int subscripts_len;
 istypedefed expr_str_ptr * subscripts_val;
} subscripts;
struct s_substring_start substrings_start;
struct s_substring_end substrings_end;
int variable_id;
istypedefed str object_type;
int datatype;
int datatype_length;
enum e_scope escope;
struct variable_usage * next;
};
#ifndef OMIT_TYPEDEFS
typedef struct variable_usage variable_usage; /* XX */

#endif
enum subtype {
 ST_INT = 0 ,
 ST_EXPR = 1 ,
 ST_VAR = 2 
};
typedef enum subtype subtype;

enum e_sli {
 E_SLI_CHAR = 0 ,
 E_SLI_COLUMN = 1 ,
 E_SLI_SUBQUERY_EXPRESSION = 2 ,
 E_SLI_BUILTIN_CONST_TRUE = 3 ,
 E_SLI_BUILTIN_CONST_FALSE = 4 ,
 E_SLI_BUILTIN_CONST_USER = 5 ,
 E_SLI_BUILTIN_CONST_TODAY = 6 ,
 E_SLI_BUILTIN_CONST_STAR = 7 ,
 E_SLI_BUILTIN_CONST_COUNT_STAR = 8 ,
 E_SLI_BUILTIN_CONST_CURRENT = 9 ,
 E_SLI_BUILTIN_CONST_ROWID = 10 ,
 E_SLI_BUILTIN_FUNC_YEAR = 11 ,
 E_SLI_BUILTIN_FUNC_MONTH = 12 ,
 E_SLI_BUILTIN_FUNC_DAY = 13 ,
 E_SLI_BUILTIN_FUNC_MDY = 14 ,
 E_SLI_BUILTIN_FUNC_WEEKDAY = 15 ,
 E_SLI_BUILTIN_FUNC_DOW = 16 ,
 E_SLI_BUILTIN_FUNC_DATE = 17 ,
 E_SLI_BUILTIN_AGG_AVG = 18 ,
 E_SLI_BUILTIN_AGG_MAX = 19 ,
 E_SLI_BUILTIN_AGG_MIN = 20 ,
 E_SLI_BUILTIN_AGG_SUM = 21 ,
 E_SLI_BUILTIN_AGG_COUNT = 22 ,
 E_SLI_BRACKET_EXPR = 23 ,
 E_SLI_UNITS_YEAR = 24 ,
 E_SLI_UNITS_MONTH = 25 ,
 E_SLI_UNITS_DAY = 26 ,
 E_SLI_UNITS_HOUR = 27 ,
 E_SLI_UNITS_MINUTE = 28 ,
 E_SLI_UNITS_SECOND = 29 ,
 E_SLI_OP = 30 ,
 E_SLI_BETWEEN = 31 ,
 E_SLI_NOT_BETWEEN = 32 ,
 E_SLI_DATETIME = 33 ,
 E_SLI_INTERVAL = 34 ,
 E_SLI_EXTEND = 35 ,
 E_SLI_LITERAL = 36 ,
 E_SLI_IN_VALUES = 37 ,
 E_SLI_IN_SELECT = 38 ,
 E_SLI_NOT_IN_VALUES = 39 ,
 E_SLI_NOT_IN_SELECT = 40 ,
 E_SLI_ISNULL = 41 ,
 E_SLI_ISNOTNULL = 42 ,
 E_SLI_NOT = 43 ,
 E_SLI_REGEX_LIKE = 44 ,
 E_SLI_REGEX_NOT_LIKE = 45 ,
 E_SLI_REGEX_MATCHES = 46 ,
 E_SLI_REGEX_NOT_MATCHES = 47 ,
 E_SLI_REGEX_ILIKE = 48 ,
 E_SLI_REGEX_NOT_ILIKE = 49 ,
 E_SLI_FCALL = 50 ,
 E_SLI_ASC = 51 ,
 E_SLI_DESC = 52 ,
 E_SLI_IBIND = 53 ,
 E_SLI_COLUMN_NOT_TRANSFORMED = 54 ,
 E_SLI_VARIABLE = 55 ,
 E_SLI_QUERY = 56 ,
 E_SLI_SUBQUERY = 57 ,
 E_SLI_QUERY_PLACEHOLDER = 58 ,
 E_SLI_JOIN = 59 ,
 E_SLI_CASE = 60 ,
 E_SLI_CASE_ELEMENT = 61 ,
 E_SLI_COLUMN_ORDERBY = 62 ,
 E_SLI_VAR_REPLACE = 63 ,
 E_SLI_BUILTIN_CONST_TIME = 64 ,
 E_SLI_BUILTIN_CONST_NULL = 65 ,
 E_SLI_VARIABLE_USAGE = 66 ,
 E_SLI_VARIABLE_USAGE_IN_SELECT_LIST = 67 ,
 E_SLI_VARIABLE_USAGE_LIST = 68 ,
 E_SLI_CAST_EXPR = 69 
};
typedef enum e_sli e_sli;

enum sq_expression_type {
 E_SQE_DONT_CARE = 0 ,
 E_SQE_ALL = 1 ,
 E_SQE_ANY = 2 ,
 E_SQE_SOME = 3 ,
 E_SQE_EXISTS = 4 ,
 E_SQE_NOT_EXISTS = 5 
};
typedef enum sq_expression_type sq_expression_type;

/* struct s_select_list_item mt=3 ms=0 mn=s_select_list_item mp=1 */
typedef struct s_select_list_item * elements_ptr;
struct s_select_list_item_list {
struct {
 unsigned int list_len;
 istypedefed elements_ptr * list_val;
} list;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_select_list_item_list s_select_list_item_list; /* XX */

#endif
struct s_sli_case {
struct s_select_list_item * master_condition;
struct {
 unsigned int elements_len;
 istypedefed elements_ptr * elements_val;
} elements;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_sli_case s_sli_case; /* XX */

#endif
struct s_sli_case_element {
struct s_select_list_item * condition;
struct s_select_list_item * response;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_sli_case_element s_sli_case_element; /* XX */

#endif
struct s_sli_cast {
struct s_select_list_item * expr;
istypedefed str datatype;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_sli_cast s_sli_cast; /* XX */

#endif
struct sql_statement {
int stmt_type;
istypedefed str sql_string;
struct expr_str_list * ibind;
struct expr_str_list * obind;
int nibind;
int nobind;
};
#ifndef OMIT_TYPEDEFS
typedef struct sql_statement sql_statement; /* XX */

#endif
struct s_table_list_element {
istypedefed str tabname;
istypedefed str alias;
struct {
 unsigned int columns_len;
 istypedefed str * columns_val;
} columns;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_table_list_element s_table_list_element; /* XX */

#endif
/* struct s_table_list_element mt=3 ms=0 mn=s_table_list_element mp=1 */
typedef struct s_table_list_element * s_table_list_element_ptr;
struct s_table_list {
struct {
 unsigned int tables_len;
 struct s_table_list_element * tables_val;
} tables;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_table_list s_table_list; /* XX */

#endif
enum e_outer_type {
 E_OUTER_NONE = 0 ,
 E_OUTER_NORMAL = 1 ,
 E_OUTER_LEFT_OUTER = 2 ,
 E_OUTER_RIGHT_OUTER = 3 ,
 E_INNER = 4 
};
typedef enum e_outer_type e_outer_type;

struct s_table {
istypedefed str tabname;
istypedefed str alias;
struct s_table * next;
istypedefed e_outer_type outer_type;
struct s_table * outer_next;
struct s_select_list_item * outer_join_condition;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_table s_table; /* XX */

#endif
struct s_select_finish {
struct s_select_list_item_list * order_by;
istypedefed str into_temp;
istypedefed str insert_into;
int nolog;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_select_finish s_select_finish; /* XX */

#endif
struct sq_subquery {
istypedefed char aud[20];
struct s_select_list_item_list * list;
};
#ifndef OMIT_TYPEDEFS
typedef struct sq_subquery sq_subquery; /* XX */

#endif
struct s_limit {
long start;
long end;
long offset;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_limit s_limit; /* XX */

#endif
struct list_of_integers {
struct {
 unsigned int list_len;
 int * list_val;
} list;
};
#ifndef OMIT_TYPEDEFS
typedef struct list_of_integers list_of_integers; /* XX */

#endif
struct ilist {
int i0;
int i1;
int i2;
int i3;
int i4;
int i5;
};
#ifndef OMIT_TYPEDEFS
typedef struct ilist ilist; /* XX */

#endif
struct s_select {
istypedefed str modifier;
struct s_limit limit;
int ncolumns;
struct s_select_list_item_list * select_list;
struct s_select_list_item_list list_of_items;
struct s_table * first;
struct s_table_list table_elements;
struct s_select_list_item * where_clause;
struct s_select_list_item_list * group_by;
struct s_select_list_item * having;
struct s_select * next;
struct s_select_finish * sf;
struct expr_str_list * into;
istypedefed str union_op;
istypedefed str extra_statement;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_select s_select; /* XX */

#endif
struct s_select_list_item_column {
istypedefed str tabname;
istypedefed str colname;
struct ilist subscript;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_select_list_item_column s_select_list_item_column; /* XX */

#endif
struct s_select_list_item_sq_expression {
enum sq_expression_type type;
struct s_select_list_item * sq;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_select_list_item_sq_expression s_select_list_item_sq_expression; /* XX */

#endif
struct s_select_list_item_complex_expr {
struct s_select_list_item * left;
struct s_select_list_item * right;
istypedefed char op[10];
};
#ifndef OMIT_TYPEDEFS
typedef struct s_select_list_item_complex_expr s_select_list_item_complex_expr; /* XX */

#endif
struct s_select_list_item_between_expr {
struct s_select_list_item * val;
struct s_select_list_item * from;
struct s_select_list_item * to;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_select_list_item_between_expr s_select_list_item_between_expr; /* XX */

#endif
struct s_select_list_item_sli_expr {
struct s_select_list_item * left;
struct s_select_list_item * right;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_select_list_item_sli_expr s_select_list_item_sli_expr; /* XX */

#endif
struct s_select_list_item_slil_expr {
struct s_select_list_item * left;
struct s_select_list_item_list * right_list;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_select_list_item_slil_expr s_select_list_item_slil_expr; /* XX */

#endif
struct s_select_list_item_agg_expr {
istypedefed char aud[20];
struct s_select_list_item * expr;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_select_list_item_agg_expr s_select_list_item_agg_expr; /* XX */

#endif
struct s_select_list_item_builtin_fcall {
istypedefed char functionname[128];
struct s_select_list_item_list * params;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_select_list_item_builtin_fcall s_select_list_item_builtin_fcall; /* XX */

#endif
struct s_select_list_item_fcall {
istypedefed char functionname[128];
struct s_select_list_item_list * params;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_select_list_item_fcall s_select_list_item_fcall; /* XX */

#endif
struct s_select_list_item_extend {
struct s_select_list_item * expr;
istypedefed char from[20];
istypedefed char to[20];
};
#ifndef OMIT_TYPEDEFS
typedef struct s_select_list_item_extend s_select_list_item_extend; /* XX */

#endif
struct s_select_list_item_regex {
struct s_select_list_item * val;
struct s_select_list_item * regex;
istypedefed char escape[20];
};
#ifndef OMIT_TYPEDEFS
typedef struct s_select_list_item_regex s_select_list_item_regex; /* XX */

#endif
struct s_select_list_item_data {
enum e_sli type;
union {
istypedefed str expression;
struct s_sli_cast casting;
struct s_select_list_item * expr;
struct s_select_list_item_builtin_fcall builtin_fcall;
struct s_select_list_item_agg_expr agg_expr;
struct s_select_list_item_column column;
struct s_select_list_item_extend extend;
struct s_select_list_item_fcall fcall;
struct s_sli_case sqlcase;
struct s_select_list_item_regex regex;
struct s_select_list_item_between_expr between_expr;
struct s_sli_case_element sqlcaseelement;
struct s_select_list_item_complex_expr complex_expr;
struct s_select_list_item_sli_expr sli_expr;
struct s_select_list_item_slil_expr slil_expr;
struct s_select * subquery;
struct s_select_list_item_sq_expression sq_expression;
struct variable_usage * var_usage;
struct s_select_list_item_list * var_usage_list;
} s_select_list_item_data_u;
};
typedef struct s_select_list_item_data s_select_list_item_data;
struct s_select_list_item {
struct s_select_list_item_data data;
istypedefed str alias;
int sign;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_select_list_item s_select_list_item; /* XX */

#endif
enum e_function_type {
 E_FTYPE_NORMAL = 0 ,
 E_FTYPE_STATIC = 1 ,
 E_FTYPE_OBJECT = 2 
};
typedef enum e_function_type e_function_type;

struct s_function_definition {
istypedefed str funcname;
istypedefed str n_namespace;
enum e_function_type function_type;
struct expr_str_list expression_list;
struct expr_str_list * parameters;
struct expr_str_list * expanded_parameters;
istypedefed str module;
int lineno;
int lastlineno;
istypedefed s_call_list call_list;
istypedefed variable_list variables;
istypedefed s_commands * func_commands;
struct {
 unsigned int extra_warnings_len;
 istypedefed lint_warning * extra_warnings_val;
} extra_warnings;
istypedefed str comment;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_function_definition s_function_definition; /* XX */

#endif
struct s_report_definition {
istypedefed str funcname;
istypedefed str n_namespace;
enum e_function_type function_type;
struct expr_str_list expression_list;
istypedefed variable_list variables;
struct expr_str_list * parameters;
struct expr_str_list * expanded_parameters;
istypedefed startrep * report_output_section;
istypedefed s_report_orderby_section * report_orderby_section;
istypedefed report_format_section * reportFormatSection;
struct expr_str_list aggregates;
istypedefed str module;
int lineno;
int colno;
int lastlineno;
istypedefed s_call_list call_list;
struct {
 unsigned int extra_warnings_len;
 istypedefed lint_warning * extra_warnings_val;
} extra_warnings;
istypedefed str comment;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_report_definition s_report_definition; /* XX */

#endif
struct s_pdf_report_definition {
istypedefed str funcname;
istypedefed str n_namespace;
enum e_function_type function_type;
struct expr_str_list expression_list;
istypedefed variable_list variables;
struct expr_str_list * parameters;
struct expr_str_list * expanded_parameters;
istypedefed pdf_startrep * report_output_section;
istypedefed s_report_orderby_section * report_orderby_section;
istypedefed report_format_section * reportFormatSection;
struct expr_str_list aggregates;
istypedefed str module;
int lineno;
int colno;
int lastlineno;
istypedefed s_call_list call_list;
struct {
 unsigned int extra_warnings_len;
 istypedefed lint_warning * extra_warnings_val;
} extra_warnings;
istypedefed str comment;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_pdf_report_definition s_pdf_report_definition; /* XX */

#endif
enum module_entry_type {
 E_MET_FUNCTION_DEFINITION = 0 ,
 E_MET_MAIN_DEFINITION = 1 ,
 E_MET_REPORT_DEFINITION = 2 ,
 E_MET_PDF_REPORT_DEFINITION = 3 ,
 E_MET_CMD = 4 ,
 E_MET_IMPORT_FUNCTION_DEFINITION = 5 ,
 E_MET_IMPORT_LEGACY_DEFINITION = 6 ,
 E_MET_FORMHANDLER_DEFINITION = 7 ,
 E_MET_CLASS_DEFINITION = 8 ,
 E_MET_IMPORT_DATATYPE = 9 ,
 E_MET_IMPORT_PACKAGE = 10 
};
typedef enum module_entry_type module_entry_type;

struct s_class_definition {
istypedefed str classname;
istypedefed str parentname;
struct expr_str_list expression_list;
istypedefed variable_list private_variables;
struct {
 unsigned int class_entries_len;
 istypedefed module_entry_ptr * class_entries_val;
} class_entries;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_class_definition s_class_definition; /* XX */

#endif
struct s_import_function_definition {
istypedefed str funcname;
int nparam;
istypedefed str module;
int lineno;
int colno;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_import_function_definition s_import_function_definition; /* XX */

#endif
struct s_import_legacy_definition {
istypedefed str funcname;
istypedefed str module;
int lineno;
int colno;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_import_legacy_definition s_import_legacy_definition; /* XX */

#endif
struct s_import_datatype {
istypedefed str dtype_name;
int usedDtypeNumber;
istypedefed str module;
int lineno;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_import_datatype s_import_datatype; /* XX */

#endif
struct s_import_package {
istypedefed str package_name;
istypedefed str module;
int lineno;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_import_package s_import_package; /* XX */

#endif
struct s_formhandler_definition {
istypedefed str formhandler_name;
struct on_events * before_events;
struct on_events * after_events;
struct on_events * field_op_events;
istypedefed variable_list variables;
struct expr_str_list * input_vars;
istypedefed str_list * fields;
struct {
 unsigned int extra_warnings_len;
 istypedefed lint_warning * extra_warnings_val;
} extra_warnings;
};
#ifndef OMIT_TYPEDEFS
typedef struct s_formhandler_definition s_formhandler_definition; /* XX */

#endif
struct module_entry {
enum module_entry_type met_type;
union {
struct s_import_function_definition import_function_definition;
struct s_import_legacy_definition import_legacy_definition;
struct s_import_datatype import_datatype_definition;
struct s_import_package import_package_definition;
struct s_function_definition function_definition;
struct s_formhandler_definition formhandler_definition;
struct s_report_definition report_definition;
struct s_pdf_report_definition pdf_report_definition;
struct s_class_definition class_definition;
struct command * cmd;
} module_entry_u;
};
typedef struct module_entry module_entry;
struct program_definition {
struct {
 unsigned int modules_len;
 struct module_definition * modules_val;
} modules;
};
#ifndef OMIT_TYPEDEFS
typedef struct program_definition program_definition; /* XX */

#endif
#ifdef __cplusplus
}
#endif /* __cplusplus */


#endif /*XS_fgl_XS_H*/
