/* =============================== put.rule ======================== */ put_cmd : opt_use2_p KW_PUT put_cursor_name_p { if (A4GLSQLCV_check_requirement("NO_INSERT_CURSOR")) { a4gl_yyerror("Insert cursors are not supported for this rdbms"); YYERROR; } if (A4GLSQLCV_check_requirement ("EMULATE_INSERT_CURSOR")) { if (A4GL_cursor_type ($3)!='I') { a4gl_yyerror ("Got confused - I didn't think that was an insert cursor\\n Use 'PRAGMA EMULATE INSERT CURSOR FOR CursorName' to hint the compiler"); YYERROR; } } add_feature("PUT_CURSOR"); //start_bind('i',0); } put_from { $$=new_put_cmd($1,$3, $5); //start_bind('i',0); } ; put_from: {$$=0;} | FROM put_val_list { $$=expand_variables_in_expr_str_list($2,0,1); } ; put_val_list : put_val_p { $$=A4GL_new_ptr_list($1); } | put_val_list KW_COMMA put_val_p { $$=A4GL_new_append_ptr_list($1,$3); } ; put_val_p : put_val_int_p { $$=$1; } | KW_NULL { $$=A4GL_new_expr_simple(ET_EXPR_NULL); } ; put_val_int_p : CHAR_VALUE { $$=A4GL_new_literal_string(A4GL_strip_quotes($1)); } | variable_usage_expression { $$=$1; } ;