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