/* ===================================================================== Source: construct.rule ===================================================================== */ construct_cmd : CONSTRUCT { add_feature("UI_CONSTRUCT"); push_blockcommand("CONSTRUCT"); /*$$=get_sio_id("CONSTRUCT"); */ map_ui_block("CONSTRUCT"); A4GL_new_events(); } constr_rest end_constr { map_ui_endblock("CONSTRUCT"); pop_blockcommand ("CONSTRUCT"); A4GL_drop_events(); $$=$3; $$->cmd_data.command_data_u.construct_cmd.events=$4; } ; op_construct_callback : { $$=NULL; } | VIA callback_function { $$=$2; } ; constr_rest: BY_NAME ensured_variable_usage_expression KW_ON constr_col_list opt_defs opt_help_no_i op_construct_callback input_attributes { /* int a; fh_field_list *f; f = new_field_list (); for (a=0;a<$4->list.list_len;a++) { char *colname; colname=$4->list.list_val[a]->colname; append_field_to_list (f, new_field_entry (colname, NULL, 1)); } */ $$=new_construct_cmd(EB_TRUE, $2, $4, NULL, NULL, $8, $5, $6, get_sio_id("CONSTRUCT"), $7); reset_constr(); } | ensured_variable_usage_expression KW_ON constr_col_list opt_defs FROM field_name_list_as_struct opt_help_no_i op_construct_callback input_attributes { reset_constr(); $$=new_construct_cmd(EB_FALSE, $1, $3, $6, NULL, $9, $4, $7, get_sio_id("CONSTRUCT"), $8); } ; end_constr : {$$=0;} | constr_extra_commands END_CONSTRUCT { $$=$1;} ; constr_col_list : constr_col { $$=append_constr_col_list(0,$1); } | constr_col_list KW_COMMA constr_col { $$=append_constr_col_list($1,$3); } ; constr_col : identifier { $$=malloc(sizeof(cons_list_entry)); $$->tabname=strdup(""); $$->colname=strdup($1); } | identifier KW_DOT identifier { $$=malloc(sizeof(cons_list_entry)); $$->tabname=strdup($1); $$->colname=strdup($3); } | identifier KW_DOT KW_MULTIPLY { $$=malloc(sizeof(cons_list_entry)); $$->tabname=strdup($1); $$->colname=strdup("*"); } ; constr_extra_commands : events_construct ; /* ========================== construct.rule ====================== */