[fpc-pascal] Documentation, syntax diagrams

Sven Barth pascaldragon at googlemail.com
Wed Jan 8 21:12:09 CET 2014


On 08.01.2014 19:16, Jürgen Hestermann wrote:
>
> Today I found this type definition in some FreePascal sources:
>
> TypeReal =type Double;
>
> I wondered what the second “type” keyword means here (I have never seen
> this before).
>
>
> So I looked at
> http://www.freepascal.org/docs-html/ref/refch3.html#refse17.html
>
> where it says:
>
> _________________________________________________________________________________________________________
> Type declaration
>
> -- - - - -|-------------- --------------- type declaration identifier =
> type |- --|; hint directives
> ___________________________________________________________________
>
> Although type declarations are very fundamental and I am using them
> since 30 years I can’t find out what this diagram is trying to tell me.
>
> For example, I am missing the keyword “TYPE” in this syntax diagramm.

You are right. That seems to be missing.

>
> I don’t know whether the first “type” is the standard type definition
> entry keyword
> but if so it should be typed in bold font.

No, it's not the keyword, it's a "reference" to the syntax diagram named 
"type" directly below it (though I have to admit that this is not 
necessarily clear...).

>
> It can also be part of a text “type declaration” (which is obviously not
> a keyword).
>
> But then why does “type declaration” appear twice (in the heading
> **and** the syntax diagramm)?
> Following the line should generate a valid path to a (syntactical)
> correct type declaration.
> But why is then "type declaration" part of a type declaration?
> Makes no sense to me.
> It would generate an endless recursive loop.
>
> Another problem is “hint directives”.
>
> What is it? There is no link nor text that explains it.
>
> So I started another google search for “hint directives”
>
> but I only found this:
> http://www.freepascal.org/docs-html/ref/refse5.html
> <http://www.freepascal.org/docs-html/ref/refse5.html>
>
> where it says that hint directives are for variable declarations but not
> for type declarations

Yes, this is indeed the correct documentation and maybe this should be 
linked better...

> (and again "hint directives" are part of hint directives which is not
> correct IMO).

The "hint directives" is again the "name" of the syntax diagram.

>
> Can someone clarify this documentation please?
>
> Where can I find the documentation for my original question about the
> double TYPE keyword?

This link explains it a bit: 
http://docwiki.embarcadero.com/RADStudio/XE5/en/Type_Compatibility_and_Identity

Regards,
Sven



More information about the fpc-pascal mailing list