[gram.key] # Annex A (informative) Grammar summary [[gram]](./#gram) ## A.2 Keywords [gram.key] [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/grammar.tex#L19) New context-dependent keywords are introduced into a program bytypedef ([[dcl.typedef]](dcl.typedef "9.2.4 The typedef specifier")),namespace ([[namespace.def]](namespace.def "9.9.2 Namespace definition")), class ([[class]](class "11 Classes")), enumeration ([[dcl.enum]](dcl.enum "9.8.1 Enumeration declarations")), andtemplate ([[temp]](temp "13 Templates")) declarations[.](#1.sentence-1) [*typedef-name*](dcl.typedef#nt:typedef-name "9.2.4 The typedef specifier [dcl.typedef]"): [*identifier*](lex.name#nt:identifier "5.11 Identifiers [lex.name]") [*simple-template-id*](temp.names#nt:simple-template-id "13.3 Names of template specializations [temp.names]") [*namespace-name*](namespace.def.general#nt:namespace-name "9.9.2.1 General [namespace.def.general]"): [*identifier*](lex.name#nt:identifier "5.11 Identifiers [lex.name]") [*namespace-alias*](namespace.alias#nt:namespace-alias "9.9.3 Namespace alias [namespace.alias]") [*namespace-alias*](namespace.alias#nt:namespace-alias "9.9.3 Namespace alias [namespace.alias]"): [*identifier*](lex.name#nt:identifier "5.11 Identifiers [lex.name]") [*class-name*](class.pre#nt:class-name "11.1 Preamble [class.pre]"): [*identifier*](lex.name#nt:identifier "5.11 Identifiers [lex.name]") [*simple-template-id*](temp.names#nt:simple-template-id "13.3 Names of template specializations [temp.names]") [*enum-name*](dcl.enum#nt:enum-name "9.8.1 Enumeration declarations [dcl.enum]"): [*identifier*](lex.name#nt:identifier "5.11 Identifiers [lex.name]") [*template-name*](temp.names#nt:template-name "13.3 Names of template specializations [temp.names]"): [*identifier*](lex.name#nt:identifier "5.11 Identifiers [lex.name]")