anchor.diff:    Parrot_register_pmc(interp, result);
   end;
   
  -constructor TDrvParrot.create;
  -begin
  -  //FoutCode := TStringList.Create;
  -  //FoutData := TStringList.Create;
  -
  -  setlength(cache, 0);
  -  
  -  //writeln('e');
  -  //Parrot_set_config_hash();
  -  Parrot_srand(0);
  -  interp := Parrot_new(nil);
  -  out_pbc := create_string('');
  -
  -  //writeln('f');
  -
  -end;
  -
   function TDrvParrot.genParrot(hllcode: string): Parrot_PMC;
   var
     compiler, errstr: Parrot_String;
  
positive.code:   sa[ 9] := '  $P2 = $P0."to_pir"($P1)';
    sa[10] := '  $P0 = compreg "PIR"';
    sa[11] := '  $P3 = $P0($P2)';
    //sa[11] := '  $S0 = typeof $P0';
    sa[12] := '  say $S0';
    sa[13] := '  .return ($P3)';
    sa[14] := '.end';
  
    writeln('1');
    code := Parrot_compile_string( interp, compiler, PChar(join(sa)), errstr);
    writeln('1');
    if assigned(errstr) then
      raise Exception.create(Parrot_str_to_cstring(interp, errstr));
    writeln('1');
  
    Parrot_ext_call(interp, code, 'P->S', inPast, @pbc);
    out_pbc := pbc;
    writeln(Parrot_str_to_cstring(interp, pbc));
    writeln('1');
  
  end;
  
  
negative.code: 
    Parrot_ext_call(interp, code, 'SS->P', create_string(hll), create_string(hllcode), @result);
  
  end;
  
  function TDrvParrot.genTree(inNode: PParseNode): Parrot_PMC;
  