Skip to content

Commit 872d308

Browse files
committed
upd
1 parent 967afeb commit 872d308

4 files changed

Lines changed: 179 additions & 2 deletions

File tree

src/SUMMARY.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,4 +122,6 @@
122122
- [With statement](./sx-statements/with-statement.md)
123123
- [Return statement](./sx-statements/return-statement.md)
124124
- [Throw statement](./sx-statements/throw-statement.md)
125-
- [Try statement](./sx-statements/try-statement.md)
125+
- [Try statement](./sx-statements/try-statement.md)
126+
- [ShockScript: Directives](./sx-directives.md)
127+
- [Attributes](./sx-directives/attributes.md)

src/sx-directives.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# ShockScript: Directives
2+
3+
**Syntax**
4+
5+
<ul>
6+
<i>Directive</i><sup>ω</sup> :
7+
<ul>
8+
<i>EmptyStatement</i><br>
9+
<i>Statement</i><sup>ω</sup><br>
10+
<i>ConfigurationConstant</i><sub>opt</sub> <i>Attributes</i><sub>opt</sub> <i>AnnotatableDirective</i><sup>ω</sup><br>
11+
<i>ConfigurationConstant</i> <i>Block</i><br>
12+
<i>ImportDirective</i> <i>Semicolon</i><sup>ω</sup><br>
13+
<i>UseDirective</i> <i>Semicolon</i><sup>ω</sup>
14+
</ul>
15+
</ul>
16+
17+
<ul>
18+
<i>AnnotatableDirective</i><sup>ω</sup> :
19+
<ul>
20+
<i>NamespaceDefinition</i> <i>Semicolon</i><sup>ω</sup><br>
21+
<i>VariableDefinition</i><sup>allowIn</sup> <i>Semicolon</i><sup>ω</sup><br>
22+
<i>FunctionDefinition</i><br>
23+
<i>ClassDefinition</i><br>
24+
<i>EnumDefinition</i><br>
25+
<i>InterfaceDefinition</i><br>
26+
<i>TypeDefinition</i> <i>Semicolon</i><sup>ω</sup>
27+
</ul>
28+
</ul>
29+
30+
<ul>
31+
<i>Directives</i> :
32+
<ul>
33+
«empty»<br>
34+
<i>DirectivesPrefix</i> <i>Directive</i><sup>abbrev</sup>
35+
</ul>
36+
</ul>
37+
38+
<ul>
39+
<i>DirectivesPrefix</i> :
40+
<ul>
41+
«empty»<br>
42+
<i>DirectivesPrefix</i> <i>Directive</i><sup>full</sup>
43+
</ul>
44+
</ul>
45+
46+
<ul>
47+
<i>ConfigurationConstant</i> :
48+
<ul>
49+
<i>Identifier</i> <b>::</b> <i>IdentifierName</i>
50+
</ul>
51+
</ul>

src/sx-directives/attributes.md

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
# Attributes
2+
3+
Attributes are in the sequence of meta-data followed by modifiers. A parser shall disambiguate expressions into attributes as applicable.
4+
5+
**Syntax**
6+
7+
<ul>
8+
<i>Attributes</i> :
9+
<ul>
10+
<i>Attribute</i> <i>AttributeLineBreakRestriction</i><br>
11+
<i>AttributeCombination</i> <i>AttributeLineBreakRestriction</i>
12+
</ul>
13+
</ul>
14+
15+
<ul>
16+
<i>AttributeCombination</i> :
17+
<ul>
18+
<i>Attribute</i> <i>AttributeLineBreakRestriction</i> <i>Attributes</i>
19+
</ul>
20+
</ul>
21+
22+
<ul>
23+
<i>BlockAttributes</i> :
24+
<ul>
25+
<i>Metadata</i><br>
26+
<i>BlockAttributes</i> <i>Metadata</i>
27+
</ul>
28+
</ul>
29+
30+
<ul>
31+
<i>AttributeLineBreakRestriction</i> :
32+
<ul>
33+
no line break if the previous and offending tokens match an <i>IdentifierName</i>
34+
</ul>
35+
</ul>
36+
37+
<ul>
38+
<i>Attribute</i> :
39+
<ul>
40+
<i>Metadata</i><br>
41+
<i>UserAttribute</i><br>
42+
<i>ReservedNamespace</i><br>
43+
<b>final</b><br>
44+
<b>native</b><br>
45+
<b>static</b><br>
46+
<b>abstract</b><br>
47+
<b>override</b>
48+
</ul>
49+
</ul>
50+
51+
<ul>
52+
<i>UserAttribute</i> :
53+
<ul>
54+
<i>Identifier</i><br>
55+
<i>UserAttribute</i> <b>.</b> <i>IdentifierName</i>
56+
</ul>
57+
</ul>
58+
59+
<ul>
60+
<i>Metadata</i> :
61+
<ul>
62+
<i>MetadataPreRestriction</i> <b>&#x5B;</b> <i>MetadataForm</i> <b>&#x5D;</b>&#x5D;<br>
63+
<i>MetadataPreRestriction</i> <b>&#x5B;</b> <i>MetadataForm</i> <i>MetadataTrailingComma</i> <b>&#x5D;</b>
64+
</ul>
65+
</ul>
66+
67+
<ul>
68+
<i>MetadataPreRestriction</i> :
69+
<ul>
70+
if the <i>Metadata</i> is in the beginning of <i>Attributes</i> or if the <i>Metadata</i> appears before an <i>IdentifierName</i> in <i>Attributes</i>
71+
</ul>
72+
</ul>
73+
74+
<ul>
75+
<i>MetadataTrailingComma</i> :
76+
<ul>
77+
comma <b>,</b> if the <i>Metadata</i> is the first occurrence in <i>Attributes</i> or <i>BlockAttributes</i>
78+
</ul>
79+
</ul>
80+
81+
<ul>
82+
<i>MetadataForm</i> :
83+
<ul>
84+
<i>MetadataName</i><br>
85+
<i>MetadataName</i> <b>&#x28;&#x29;</b><br>
86+
<i>MetadataName</i> <b>&#x28;</b> <i>MetadataEntryList</i> <b>&#x29;</b>
87+
</ul>
88+
</ul>
89+
90+
<ul>
91+
<i>MetadataName</i> :
92+
<ul>
93+
<i>Identifier</i><br>
94+
<i>Identifier</i> <b>::</b> <i>IdentifierName</i>
95+
</ul>
96+
</ul>
97+
98+
<ul>
99+
<i>MetadataEntryList</i> :
100+
<ul>
101+
<i>MetadataEntry</i><br>
102+
<i>MetadataEntryList</i> <b>,</b> <i>MetadataEntry</i>
103+
</ul>
104+
</ul>
105+
106+
<ul>
107+
<i>MetadataEntry</i> :
108+
<ul>
109+
<i>MetadataName</i><br>
110+
<i>StringLiteral</i><br>
111+
<i>MetadataName</i> <b>=</b> <i>StringLiteral</i>
112+
</ul>
113+
</ul>

src/sx-expressions/identifiers.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,18 @@ q::[k] ;
2929
<ul>
3030
<i>Qualifier</i> :
3131
<ul>
32-
<i>PropertyIdentifier</i>
32+
<i>PropertyIdentifier</i><br>
33+
<i>ReservedNamespace</i>
34+
</ul>
35+
</ul>
36+
37+
<ul>
38+
<i>ReservedNamespace</i> :
39+
<ul>
40+
<b>public</b><br>
41+
<b>private</b><br>
42+
<b>protected</b><br>
43+
<b>internal</b>
3344
</ul>
3445
</ul>
3546

0 commit comments

Comments
 (0)