/* ===================================================================== Source: call.rule ===================================================================== */ call_cmd : FCALL atline {set_cmdlineno($2);} call_ext { set_cmdlineno($2); $$=$4;} ; copyback_cmd : COPYBACK ensured_variable_usage_expression { $$=new_copyback_cmd($2); } ; call_ext: function_call_expr opt_return { $$=new_call_cmd(chk_expr($1),$2); //start_bind('i',0); } | member_fcall opt_return { $$=new_call_cmd(chk_expr($1),$2); } | DIALOGKEYSETLABEL OPEN_BRACKET opt_func_call_args CLOSE_BRACKET { $$=A4GL_new_expr_fcall("fgl_dialog_setkeylabel",$3,A4GL_compiling_module_basename(),lastlineno,get_namespace("fgl_dialog_setkeylabel")); $$=new_call_cmd(chk_expr($$),NULL); //start_bind('i',0); } | DIALOGSETCURRLINE OPEN_BRACKET opt_func_call_args CLOSE_BRACKET { $$=A4GL_new_expr_fcall("fgl_dialog_setcurrline",$3,A4GL_compiling_module_basename(),lastlineno,get_namespace("fgl_dialog_setcurrline")); $$=new_call_cmd(chk_expr($$),NULL); //start_bind('i',0); } | DIALOG_DOT NAMED OPEN_BRACKET opt_func_call_args CLOSE_BRACKET { char buff[256]; SPRINTF1(buff,"fgl_dialog_%s",downshift($2)); $$=A4GL_new_expr_fcall(buff,$4,A4GL_compiling_module_basename(),lastlineno, get_namespace(buff) ); $$=new_call_cmd(chk_expr($$),NULL); //start_bind('i',0); } | FORM_IS_COMPILED OPEN_BRACKET identifier KW_COMMA func_expr_call_args CLOSE_BRACKET { expr_str *e; e=A4GL_new_expr_form_is_compiled($3, $5,A4GL_compiling_module_basename(),lastlineno); $$=new_call_cmd(e,NULL); } | FORM_IS_COMPILED OPEN_BRACKET identifier CLOSE_BRACKET { expr_str *e; e=A4GL_new_expr_form_is_compiled($3, NULL,A4GL_compiling_module_basename(),lastlineno); $$=new_call_cmd(e,NULL); } | KW_CHANNEL_WRITE OPEN_BRACKET func_expr_call_args CLOSE_BRACKET opt_return { char buff[200]; $$=A4GL_new_expr_shared_fcall("channel", "write",$3,A4GL_compiling_module_basename(),lastlineno, get_namespace("channel::write"),buff); if ($$==0) { a4gl_yyerror(buff); $$=NULL; } else { $$=new_call_cmd(chk_expr($$),$5); } } | FGL_COPY OPEN_BRACKET ensured_variable_usage_expression KW_COMMA ensured_variable_usage_expression CLOSE_BRACKET { $$=A4GL_new_ptr_list(A4GL_new_expr_reference($3)); $$=A4GL_new_append_ptr_list($$,A4GL_new_expr_reference($5)); $$=A4GL_new_expr_fcall("acl_copy",$$,A4GL_compiling_module_basename(),lastlineno,get_namespace("fgl_dialog_setcurrline")); $$=new_call_cmd(chk_expr($$),NULL); //$$=new_call_cmd(NULL,NULL); } ; opt_return : {$$=0;} | RETURNING expanded_ibind_var_list_with_null {$$=$2; inc_var_assigned_from_binding_list($2);} ; opt_without_waiting: {$$=0;} | WITHOUT_WAITING {$$=1;} ; opt_func_call_args : { $$=0; } | func_expr_call_args { $$=expand_variables_in_expr_str_list($1,0,1); } ; func_call_args : func_expr_call_args { $$=expand_variables_in_expr_str_list($1,0,1); } ; func_expr_call_args : func_arg { $$=A4GL_new_ptr_list($1); } | func_expr_call_args KW_COMMA func_arg { $$=A4GL_new_append_ptr_list($1,$3); } ; func_arg : fgl_expr_c {$$=$1;} ; remote_host_name : CHAR_VALUE | identifier { SPRINTF1($$,"\"%s\"",$1); } ; remote_func_name : identifier { SPRINTF1($$,"\"%s\"",$1); } | identifier KW_DOT identifier { SPRINTF2($$,"\"%s.%s\"",$1,$3); } ; /* ============================= call.rule ========================== */