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