Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2018-04

pointerful

5 messages · 4 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Mattias Gaertner

Hi,

Is this a bug or a feature:

type
  Pint = ^int;
  int = PInt;

?

Mattias

Mattias Gaertner
to Mattias Gaertner
Show quoted text 9 lines
Hi, Is this a bug or a feature: type Pint = ^int; int = PInt; ?

Note that Delphi gives error "Type 'PInt' is not yet completely defined".

Mattias

Bernd Oppolzer
to Alexander Grotewohl
program TESTPT ( OUTPUT ) ;
//************************************************
//$A+ ... enable Assembler output
//************************************************
type PT = -> PT ;
var PTEST : PT ;
function LQUEUE ( P : PT ) : INTEGER ;
    var L : INTEGER ;
    begin (* LQUEUE *)
      L := 0 ;
      while P  NIL do
        begin
          P := P -> ;
          L := L + 1
        end (* while *) ;
      LQUEUE := L
    end (* LQUEUE *) ;
begin (* HAUPTPROGRAMM *)
   NEW ( PTEST ) ;
   NEW ( PTEST -> ) ;
   NEW ( PTEST -> -> ) ;
   NEW ( PTEST -> -> -> ) ;
   NEW ( PTEST -> -> -> -> ) ;
   NEW ( PTEST -> -> -> -> -> ) ;
   PTEST -> -> -> -> -> := NIL ;
   WRITELN ( LQUEUE ( PTEST ) ) ;
end (* HAUPTPROGRAMM *) .

the result is:

c:\work\pascal\work>pcint prr=testpt.prr inc=paslibx,pasutils, pas=testpt.pas out=testpt.prrlis

PCINT (Build 1.0 Apr  5 2018 07:58:58)

           5

c:\work\pascal\work>

this is the New Stanford Pascal compiler,
a modern variant of Wirth's P4 compiler.

that is:

type
      PINT = -> INT ;
      INT = PINT ;
      PT = -> PT ;

this is all possible in Standard Pascal, IMO,
although not very useful, of course.

Kind regards

Bernd

Alexander Grotewohl wrote 25 lines
imagine a linked list.. with nothing but the pointers.. lol On 4/22/2018 1:05 PM, Jonas Maebe wrote: > On 22/04/18 17:00, Mattias Gaertner wrote: > >> Is this a bug or a feature: >> >> type >>    Pint = ^int; >>    int = PInt; >> >> ? > > It's a bug. > > > Jonas > _______________________________________________ > fpc-pascal maillist  -  > http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal _______________________________________________ fpc-pascal maillist  -  http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal