anchor.diff:  ;
   
   instruction(int opt;)
  -	{ int count;} :
  +	{ int count = 0;} :
   	opcode(opt)
   			{   if (strcmp(buf,"ANY") != 0) {
  -			        fprintf(genc,"\t{\"%s\"",buf);
  -			    }
  -			    else fputs("\t{(char *) 0",genc);
  +			        fprintf(genc,"\t{\"%s\", {",buf);
  +			    }
  +			    else fputs("\t{(char *) 0, {",genc);
   			    count = 0;
   			}
   	[
  -	    operand
  +	    operand(' ')
   	    		{   count = 1;}
   	    [
   	    	OPERAND_SEPARATOR
   			{   count++;}
   	    	SPACE*
  -	    	operand
  +	    	operand(',')
   	    ]*
   	    		{   if (count > maxoperand) {
   			        error("Too many operands");
  
positive.code: 			}
  	]?
  			{   while (count++ < maxoperand) {
  				fputs(",{\"\",-1,\"\"}",genc);
  			    }
  			    putc('}',genc);
  			}
  ;
  
negative.code: 			}
  ;
  
  operand(int c;)
  	{ register struct symtab *p = 0;} :
  			{   fprintf(genc, "%c{\"", c);}
  	[
  	    identifier
  	    		{   if (!p) {
  