[fpc-devel] Templates / Generics Syntax

Peter Vreman peter at freepascal.org
Thu Nov 3 22:35:34 CET 2005


At 20:41 3-11-2005, you wrote:
>On Thu, 3 Nov 2005 20:25:07 +0100 (CET)
>Daniƫl Mantione <daniel.mantione at freepascal.org> wrote:
>
> >
> >
> > Op Thu, 3 Nov 2005, schreef Mattias Gaertner:
> >
> > > Right. I didn't think of that.
> > >
> > > What about edged brackets?
> > >
> > > type
> > >   TGenericClass[T,F] = class
> > >   public
> > >     procedure Add(Item: T; Flag: F);
> > >   end;
> >
> > At first sight it looks okay. If necessary it is possible to introduce a
> > two character bracket, i.e. (# #) or (! !),
>
>Hmm. Emoticons in Freepascal. Nice idea.
>
>(:T:)
>
>
> > or with whatever character you want as long as it is not a prefix or
> > postfix operator.
>
>Yes. As I said, I will implement it first in Lazarus, so we can see what it
>bites.

The syntax is the easy part. How to parse the body of procedures of a 
generic type is the crucial part. The normal pascal parser can't be used 
because that requires knowledge of the types.

The easiest way to implement generics are like macro's with parameters.


Peter




More information about the fpc-devel mailing list