BEGIN{

       TABLE="";
       NF=split(data,cmd);
       #insert command is defined by the key words: insert into;
       if (cmd[1] == "insert" && cmd[2] == "into") {
               for (i=NF;i>0;i--){
               if (split(cmd[i],t,"=") == 2)
                       { FIELDVALUE[t[1]] = t[2]}
               }
               for (i in FIELDVALUE){print i"="FIELDVALUE[i];}
               print "perform insert action";
               cmdflag = 1;
               }
}
####End Begin Bloc####

###Main Block Start###
{
if ((cmdflag == 1) && (TABLEDEF["TABLE"] == cmd[3]) && (NR == (TABLEDEF["NRTABLEDEF"]+1))) {
       FS = "\t";
       for (i=NFIELDS;i>0;i--)  {
               insertstring = FIELDVALUE[FIELDNAME[i]] FS insertstring;
               }
print insertstring;
}}
#read table definitions
/^%TABLE/{
       $0 = substr($0,2);
       for (i=NF;i>0;i--){
                               if (split($i,t,"=") == 2)       {
                                       TABLEDEF[t[1]] = t[2];
                                       NTABLEDEF[t[1]] = i;
                                       }
                       }


       TABLEDEF["NRTABLEDEF"]=NR+1;
       #for (i in TABLEDEF){print i":=:" TABLEDEF[i]} # just a printout for debug
       if (cmdflag == 1) {
               if ("AUTONUM" in TABLEDEF)      {
                                               TABLEDEF["AUTONUM"]++ ;
                                               $NTABLEDEF["AUTONUM"] = "AUTONUM="TABLEDEF["AUTONUM"];
                                               }
       }
}
#read tablefields must always be next line after tabledefinition
/^%/{ if(NR == TABLEDEF["NRTABLEDEF"]){
       $0 = substr($0,2);
       NFIELDS=split($0,FIELDNAME,"\t");
       for (i in FIELDNAME) {print i"=" FIELDNAME[i];} # just a printout for debug
       }
}

{
print $0;}
END{
}