validate_cmd : VALIDATE expanded_ibind_var_list LIKE { add_feature("VALIDATE_LIKE"); clr_validate_list(); } validate_tab_list { $$=new_validate_cmd($2,$5); } ; validate_tab_list : validate_tab { $$=malloc(sizeof(struct str_list)); $$->str_list_entry.str_list_entry_len=1; $$->str_list_entry.str_list_entry_val=malloc(sizeof(char *)* $$->str_list_entry.str_list_entry_len); $$->str_list_entry.str_list_entry_val[0]=strdup($1); } | validate_tab_list KW_COMMA validate_tab { $$=$1; $$->str_list_entry.str_list_entry_len=$1->str_list_entry.str_list_entry_len+1; $$->str_list_entry.str_list_entry_val=realloc($1->str_list_entry.str_list_entry_val, sizeof($$->str_list_entry.str_list_entry_val[0]) * $$->str_list_entry.str_list_entry_len); $$->str_list_entry.str_list_entry_val[$$->str_list_entry.str_list_entry_len-1]=strdup($3); } ; validate_tab : table_name KW_DOT column_name { SPRINTF2($$,"%s.%s",$1,$3); push_validate($$); } | table_name KW_DOT KW_MULTIPLY { SPRINTF1($$,"%s.*",$1); push_validate($$); } ; /* =============================== validate.rule ======================== */