anchor.diff:      procedure SetConstructor; override;
       procedure SetElement; override;
       procedure SimpleStatement; override;
  +    procedure SimpleType; override;
       procedure StatementList; override;
       procedure StringConst; override;
       procedure StringConstSimple; override;
       procedure StringType; override;
  +    procedure StructuredType; override;
       procedure ThenStatement; override;
       procedure TryStatement; override;
       procedure TypeArgs; override;
  
positive.code:       compound.SetAttribute(sNAME, compoundType);
        compound.SetAttribute('compound', 'true');
      end
      else begin
        FStack.AddChild(sTYPE).SetAttribute(sNAME, Lexer.Token);
        compound := nil;
      end;
    end;
    try
      inherited;
  
negative.code: end;
  
  procedure TPasSyntaxTreeBuilder.StringType;
  begin
    FStack.Push(sTYPE).SetAttribute(sNAME, Lexer.Token);
    try
      inherited;
    finally
      FStack.Pop;
    end;
  end;
  
  procedure TPasSyntaxTreeBuilder.StructuredType;
  begin
    FStack.Push(sTYPE).SetAttribute(sNAME, Lexer.Token);
    try
  