anchor.diff:  					}
   					haddefault = 1;
   				}
  -				mkalt(*p,conflres,o_lc,p_alts++);
  +				mkalt(*p,conflres,o_lc,&alt_table[n_alts++]);
  +                                altcnt++;
   				o_lc = n_lc;
   				conflres = t;
   				t = 0;
  
positive.code: 					error(n_lc,
  		"Resolver on last alternative not allowed");
  				}
  	  			mkalt(*p,conflres,n_lc,p_alts++);
  				g_settype(p_alts,EORULE);
  				*p = copyrule(alts,p_alts+1-alts);
  	  		}
  	  |
  			{	if (conflres & ~DEF) {
  
negative.code: 	else	sorder = po;
  	return po;
  }
   
  p_init()
  {
          alt_table = (p_gram )alloc(ALTINCR*sizeof(t_gram));
          n_alts = 0;
          max_alts = ALTINCR;
          rule_table = (p_gram )alloc(RULEINCR*sizeof(t_gram));
          n_rules = 0;
          max_rules = RULEINCR;
  }
  
  }
  
  %start	LLparse, spec;
  
  spec	:		{	acount = 0; p_init(); }
  	  [ %persistent def ]*
  			{	/*
  				 * Put an endmarker in temporary file
  				 */
  				putc('\0', fact);
  				putc('\0', fact);
  				free((p_mem) rule_table);
  				free((p_mem) alt_table);
  			}
  	;
  
  