[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)