function CleanUp() #Clean up for next input record. { for (i in rec) delete rec[i]; } BEGIN{ RS=""; FS = "\n?%"; getline lgname < "language" printf("\n\n%s Definitions\n\n\n\n
\n",lgname); } { # Create an associative array with the tags as indices. # The leading FS creates an initial empty field for(i = 2; i <= NF; i++){ split($i, f,"\ "); rec[f[1]]=substr($i,index($i,"\ ")+1); } cnt+=1; printf("

%s
\n", cnt,rec["head"]); printf("
\n"); if("cat" in rec) printf("[%s]\n",rec["cat"]); printf("%s.\n",rec["def"]); if("sci" in rec) printf(" [%s]\n",rec["sci"]); if("snd" in rec) printf("play sound\n",rec["snd"]); if("pic" in rec){ fname = sprintf("pmi%d.htm",cnt); printf("show picture\n",fname); printf("\n\n\n\n\n\n",rec["pic"]) > fname; } printf("
\n"); CleanUp(); } END{printf("
\n\n\n");}