Gale Paeper wrote:
Frank Heckenbach wrote:
... snip ...
Okay, that clarifies that your focus is on ISO 10206 compliance and not on an extension to cover something that is missing from ISO 10206.
If I'm reading ISO 10206 correctly, it isn't a legal code construct.
: programÂcomponent = mainÂprogramÂdeclaration `.' : | moduleÂdeclaration `.' . : moduleÂdeclaration = moduleÂheading [ `;' moduleÂblock ] : | moduleÂidentification `;' moduleÂblock . : moduleÂheading = `module' identifier [ interfaceÂdirective ] : [ `(' moduleÂparameterÂlist `)' ] `;' : interfaceÂspecificationÂpart : importÂpart : { constantÂdefinitionÂpart : | typeÂdefinitionÂpart : | variableÂdeclarationÂpart : | procedureÂandÂfunctionÂheadingÂpart } : `end' .
Note the optional module-block in the first form of module-declaration. So IIUIC, there are 3 kinds of "module components": module headings with `interface' (aka interface modules), module headings without `interface' and module identifications (aka implementation modules).
I think the point of misunderstanding is with "module headings without `interface'". For this case, EP requires a requires a module-block to follow the module-heading.
I think the relevant text from paragraph 6.11.1 is:
"An interface-directive shall occur in a module-heading of a module-declaration if and only if a module-block does not occur in the module-declaration."
I should think this sort of discussion would be better suited to comp.lang.pascal.ansi-iso, where some of the originators of the standard might well chime in. It is not peculiar to GPC AFAICT.