More questions about the FreePascal Language Reference (version 3.2.0)

1. Section 17.1 defines a rule <raise-statement> and <exception-address>

        raise-statement = "raise" [ exception-instance [ exception-address ] ] .
        exception-address = "at" exception-address [ "," address-expression ] .

a) Is it correct that <exception-address> defines itself recursively ?

b) I can't find the rule that defines <address-expression>. What is it ?

c) I can't find the rule that defines <exception-instance>. What is it ?

2. Section 12.1 refers to a rule <address-factor>

factor = "(" expression ")" | variable-reference | function-call | unsigned-constant| "NOT" factor | "sign" factor | set-constructor | value-typecast | address-factor .

I can't find the rule <address-factor> but it may be the same as the rule <addressfactor> given in section 12.7 ?

addressfactor = "@" ( variable-reference | procedure-identifier | function-identifier | qualified-method-identifier ) .

3. Section 2.2 refers to a rule <address-constant>

typed-constant = constant | address-constant | array-constant | record-constant | procedural-constant .

I can't find the rule <address-constant>. What is it ?

4. Section 2.2 also refers to a rule <array-constant>

typed-constant = constant | address-constant | array-constant | record-constant | procedural-constant .

I can't find the rule <array-constant>. What is it ?

5. Section 2.2 also refers to a rule <record-constant>

typed-constant = constant | address-constant | array-constant | record-constant | procedural-constant .

I can't find the rule <record-constant>. What is it ?

6. Section 2.2 also refers to a rule <procedural-constant>

typed-constant = constant | address-constant | array-constant | record-constant | procedural-constant .

I can't find the rule <procedural-constant>. What is it ?

7. Section 13.3 refers to a rule <assembler code>

        asm-statement = "asm" assembler-code "END" [ registerlist ] .

I can't find a rule for <assembler code> What is it, from the point of view of 
parsing Pascal ?

8. Section 10.1 refers to  a rule <basehelper>

helper-type = ( "CLASS" | "RECORD" | "TYPE" ) "helper" [ "(" basehelper ")" ] "FOR" identifier { helper-component-list } "END" hint-modifiers .

I can't find a rule for <basehelper>. What is it ?

9. Sections 17.2 and 6.1 refer to a rule <class-type-identifier>

        exception-handler = "ON" [ identifier ":" ] class-type-identifier "DO" 
statement .
        class-heritage = "(" class-type-identifier [ class-implemented-interfaces ] 
")" .

I can assume ?

        class-type-identifier = identifier .

10. Section 11.2 refers to a rule <objective-Cclass-type-identifier>

        objc-class-heritage = "(" [ objective-Cclass-type-identifier ] [ 
objc-implemented-protocols ] ")" .

I can assume ?

        objective-Cclass-type-identifier = identifier .

11. Section 6.1 refers to a rule <classtype>

        class-reference-type = "CLASS" "OF" classtype .

I can't find a rule for <classtype>. What is it ?

12. Section 13.2 refers to a rule <conditional-statement>

structured-statement = compound-statement | conditional-statement | repetitive-statement | with-statement | exception-statement .

I can't find a rule for <conditional-statement>. What is it ?

13. Section 6.1 referes to a rule <const-declaration-part>

component-list = [ visibility-specifier ] { field-definition } { const-declaration-part | type-declaration-part | variable-declaration-part | class-variable-declaration-part | method-definition | property-definition } .

I can assume ?

        const-declaration-part = constant-declaration-part .

14. Sections 2.2, 3.1.1, 3.3.2, 4.7 and 13.2.2 refer to a rule <constant>

typed-constant = constant | address-constant | array-constant | record-constant | procedural-constant .
        subrange-type = constant ".." constant .
        variant = constant { "," constant } ":" "(" [ field-list ] ")" .
        default-specifier = "default" [ constant ] | "nodefault" .
        stored-specifier = "stored" ( constant | identifier ) .
        case = constant [ ".." constant ] { "," constant [ ".." constant ] } 
":" statement .

I can't find a rule for <constant>. What is it ?

15. Sections 5.1 and 6.6.1 refer to a rule <constant-expression>

        const-definition = "CONST" identifier "=" constant-expression ";" .
class-method-directives = ( ( "virtual" | "dynamic" ) [ ";" "abstract" ] | "reintroduce" ";" | "override" ";" | "message" constant-expression ) [ call-modifiers ";" ] .

I can assume ?

        constant-expression = expression .

16. Section 12.1 refers to a rule <constant-identifier>

        unsigned-constant = unsigned-number | character-string | constant-identifier | 
"NIL" .

I can assume ?

        constant-identifier = identifier .

(more to follow)

Regards,

Adriaan van Os

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to