anchor.diff:    done:    boolean;
     tempS: TString;
   begin
  +  //write(inNode.id); write(' : '); write(inS.char); writeln(' : '+inNode.name);
     err.newNode(inNode.name); // + '"' + inS.copy(0, 10) + '"');
  +
  +  result := 0;
  +
  +  {$DEFINE MEMOPAD}
  +  {$ifdef MEMOPAD}
  +  case checkPad(inS.char, inNode) of
  +    unknown: ;
  +    success: ;
  +    failure: exit;
  +    inprogress:
  +      begin
  +        raise EDraakNoCompile.Create('Infinate recursion on '+inNode.name);
  +      end;
  +  end;
  +
  +  addmemo(inS.char, inNode, inprogress);
  +  {$endif}
  +
     partial := false;
     child := new(PParseNode);
     Node := nil;
  
positive.code:   child.point := inNode;
    //dumbAtom := innode.RHS;
    o := 1;
    result := 0;
    dumbAtom := innode.RHS[0];
    if (dumbAtom.typed = nonTerminal) AND (dumbAtom.data = inNode.name) then
      raise EDraakNoCompile.Create('Infinate recursion on '+inNode.name);
  
negative.code:     end;
      result := o-1;
    finally begin
      if result = 0 then
      begin
        {$ifdef MEMOPAD}
        addmemo(inS.char, inNode, failure);
        {$endif}
        //err.popNode('!!!');
        err.popNode('!!! '+inNode.name);
        rootdestroy(child); child := nil;
        if assigned(Node) then
          rootDestroy(Node);
        Node := nil;
      end else
      begin
        {$ifdef MEMOPAD}
        addmemo(inS.char, inNode, success);
        {$endif}
        err.popNode('');
      end;
      if (partial = true) AND (result = 0) then {err('Danger Will Robinson, Danger ' + inNode.name)}; { $ENDIF}
    end; end;
  end;
  