anchor.diff:              "to `ACE'.\nType `quit;' to exit to the main loop.");
       fi;
     until l<>fail;
  +  StandardizeTable(l);
     return l;
   end));
  
positive.code:       fi;
      fi;
    od;
    # now read the table
    tab:=List([1..n],i->[]);
    p:=0;
    l:=ReadLine(infile);
    flag:=true;
    while flag and l<>fail and Length(l)>1 do
      p:=p+1;
      l:=SplitString(l,""," :\n"); # remove colon, space and newline
      # syntax check
      if Int(l[1])=fail or Int(l[1])<>p then
        Error("syntax error in file");
      fi;
      for i in [1..n] do
  
negative.code: ACEinfo.version:=ACEinfo.version{
                           [ACEinfo.file+1..Position(ACEinfo.version,' ',ACEinfo.file)-1]};
  
  Print("  Loading the `ACE' share package\n");
  Print("  Using ACE binary version ",ACEinfo.version,"\n");
  
  BindGlobal("CallACE",function(fgens,grels,fsgens)
    local j,k,n,nums,i,DoWords,ParseValueOption,ParseBooleanOption,infile,l,
          ind,p,gens,w,tab,a,redir,flag;
  
    n:=Length(fgens);
    if ForAny(fgens,i->NumberSyllables(i)<>1 or ExponentSyllable(i,1)<>1) then
      Error("wrong fgens");
    fi;
    nums:=List(fgens,i->GeneratorSyllable(i,1));
    IsSSortedList(nums); # force sort flag
  
  
    # do we want to produce only an input file
    infile:=ACEinfo.infile;
    a:=ValueOption("outfile");
    if a<>fail and IsString(a) then
      infile:=a;
    fi;
  
    PrintTo(infile,"ENUM:G\nGR:");
    gens:=[];
    for i in [1..n] do
      w:=WordAlp(CHARS_LALPHA,i);
      Add(gens,w);
      AppendTo(infile,w);
      if i<n then
        AppendTo(infile,",");
      fi;
    od;
    AppendTo(infile,";\nREL:");
  
    DoWords:=function(w)
      local i,j,m,e,n;
  