23 lines
887 B
Markdown
23 lines
887 B
Markdown
[gram.general]
|
||
|
||
# Annex A (informative) Grammar summary [[gram]](./#gram)
|
||
|
||
## A.1 General [gram.general]
|
||
|
||
[1](#1)
|
||
|
||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/grammar.tex#L5)
|
||
|
||
This summary of C++ grammar is intended to be an aid to comprehension[.](#1.sentence-1)
|
||
|
||
It is not an exact statement of the language[.](#1.sentence-2)
|
||
|
||
In particular, the grammar described here accepts
|
||
a superset of valid C++ constructs[.](#1.sentence-3)
|
||
|
||
Disambiguation rules ([[stmt.ambig]](stmt.ambig "8.11 Ambiguity resolution"), [[dcl.spec]](dcl.spec "9.2 Specifiers"), [[class.member.lookup]](class.member.lookup "6.5.2 Member name lookup"))
|
||
are applied to distinguish expressions from declarations[.](#1.sentence-4)
|
||
|
||
Further, access control, ambiguity, and type rules are used
|
||
to weed out syntactically valid but meaningless constructs[.](#1.sentence-5)
|