Skip to content

Commit ca697b4

Browse files
ghostwriternikic
authored andcommitted
Add grammar for readonly classes
Signed-off-by: Nathanael Esayeas <[email protected]>
1 parent 287f3d0 commit ca697b4

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

spec/14-classes.md

+12-2
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,16 @@ While PHP supports *anonymous class types*, such a type cannot be declared using
6060

6161
<!-- GRAMMAR
6262
class-declaration:
63-
class-modifier? 'class' name class-base-clause? class-interface-clause? '{' class-member-declarations? '}'
63+
class-modifiers? 'class' name class-base-clause? class-interface-clause? '{' class-member-declarations? '}'
64+
65+
class-modifiers:
66+
class-modifier
67+
class-modifiers class-modifier
6468
6569
class-modifier:
6670
'abstract'
6771
'final'
72+
'readonly'
6873
6974
class-base-clause:
7075
'extends' qualified-name
@@ -76,11 +81,16 @@ class-interface-clause:
7681

7782
<pre>
7883
<i id="grammar-class-declaration">class-declaration:</i>
79-
<i><a href="#grammar-class-modifier">class-modifier</a></i><sub>opt</sub> class <i><a href="09-lexical-structure.md#grammar-name">name</a></i> <i><a href="#grammar-class-base-clause">class-base-clause</a></i><sub>opt</sub> <i><a href="#grammar-class-interface-clause">class-interface-clause</a></i><sub>opt</sub> { <i><a href="#grammar-class-member-declarations">class-member-declarations</a></i><sub>opt</sub> }
84+
<i><a href="#grammar-class-modifiers">class-modifiers</a></i><sub>opt</sub> class <i><a href="09-lexical-structure.md#grammar-name">name</a></i> <i><a href="#grammar-class-base-clause">class-base-clause</a></i><sub>opt</sub> <i><a href="#grammar-class-interface-clause">class-interface-clause</a></i><sub>opt</sub> { <i><a href="#grammar-class-member-declarations">class-member-declarations</a></i><sub>opt</sub> }
85+
86+
<i id="grammar-class-modifiers">class-modifiers:</i>
87+
<i><a href="#grammar-class-modifier">class-modifier</a></i>
88+
<i><a href="#grammar-class-modifiers">class-modifiers</a></i> <i><a href="#grammar-class-modifier">class-modifier</a></i>
8089

8190
<i id="grammar-class-modifier">class-modifier:</i>
8291
abstract
8392
final
93+
readonly
8494

8595
<i id="grammar-class-base-clause">class-base-clause:</i>
8696
extends <i><a href="09-lexical-structure.md#grammar-qualified-name">qualified-name</a></i>

spec/19-grammar.md

+6-1
Original file line numberDiff line numberDiff line change
@@ -964,11 +964,16 @@ The grammar notation is described in [Grammars section](09-lexical-structure.md#
964964

965965
<pre>
966966
<i id="grammar-class-declaration">class-declaration:</i>
967-
<i><a href="#grammar-class-modifier">class-modifier</a></i><sub>opt</sub> class <i><a href="#grammar-name">name</a></i> <i><a href="#grammar-class-base-clause">class-base-clause</a></i><sub>opt</sub> <i><a href="#grammar-class-interface-clause">class-interface-clause</a></i><sub>opt</sub> { <i><a href="#grammar-class-member-declarations">class-member-declarations</a></i><sub>opt</sub> }
967+
<i><a href="#grammar-class-modifiers">class-modifiers</a></i><sub>opt</sub> class <i><a href="#grammar-name">name</a></i> <i><a href="#grammar-class-base-clause">class-base-clause</a></i><sub>opt</sub> <i><a href="#grammar-class-interface-clause">class-interface-clause</a></i><sub>opt</sub> { <i><a href="#grammar-class-member-declarations">class-member-declarations</a></i><sub>opt</sub> }
968+
969+
<i id="grammar-class-modifiers">class-modifiers:</i>
970+
<i><a href="#grammar-class-modifier">class-modifier</a></i>
971+
<i><a href="#grammar-class-modifiers">class-modifiers</a></i> <i><a href="#grammar-class-modifier">class-modifier</a></i>
968972

969973
<i id="grammar-class-modifier">class-modifier:</i>
970974
abstract
971975
final
976+
readonly
972977

973978
<i id="grammar-class-base-clause">class-base-clause:</i>
974979
extends <i><a href="#grammar-qualified-name">qualified-name</a></i>

0 commit comments

Comments
 (0)