[lex.ppnumber]

# 5 Lexical conventions [[lex]](./#lex)

## 5.7 Preprocessing numbers [lex.ppnumber]

[pp-number:](#nt:pp-number "5.7 Preprocessing numbers [lex.ppnumber]")  
[*digit*](lex.name#nt:digit "5.11 Identifiers [lex.name]")  
. [*digit*](lex.name#nt:digit "5.11 Identifiers [lex.name]")  
[*pp-number*](#nt:pp-number "5.7 Preprocessing numbers [lex.ppnumber]") [*identifier-continue*](lex.name#nt:identifier-continue "5.11 Identifiers [lex.name]")  
[*pp-number*](#nt:pp-number "5.7 Preprocessing numbers [lex.ppnumber]") ' [*digit*](lex.name#nt:digit "5.11 Identifiers [lex.name]")  
[*pp-number*](#nt:pp-number "5.7 Preprocessing numbers [lex.ppnumber]") ' [*nondigit*](lex.name#nt:nondigit "5.11 Identifiers [lex.name]")  
[*pp-number*](#nt:pp-number "5.7 Preprocessing numbers [lex.ppnumber]") e [*sign*](lex.fcon#nt:sign "5.13.4 Floating-point literals [lex.fcon]")  
[*pp-number*](#nt:pp-number "5.7 Preprocessing numbers [lex.ppnumber]") E [*sign*](lex.fcon#nt:sign "5.13.4 Floating-point literals [lex.fcon]")  
[*pp-number*](#nt:pp-number "5.7 Preprocessing numbers [lex.ppnumber]") p [*sign*](lex.fcon#nt:sign "5.13.4 Floating-point literals [lex.fcon]")  
[*pp-number*](#nt:pp-number "5.7 Preprocessing numbers [lex.ppnumber]") P [*sign*](lex.fcon#nt:sign "5.13.4 Floating-point literals [lex.fcon]")  
[*pp-number*](#nt:pp-number "5.7 Preprocessing numbers [lex.ppnumber]") .

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lex.tex#L760)

Preprocessing number tokens lexically include
all [*integer-literal*](lex.icon#nt:integer-literal "5.13.2 Integer literals [lex.icon]") tokens ([[lex.icon]](lex.icon "5.13.2 Integer literals")) and
all [*floating-point-literal*](lex.fcon#nt:floating-point-literal "5.13.4 Floating-point literals [lex.fcon]") tokens ([[lex.fcon]](lex.fcon "5.13.4 Floating-point literals"))[.](#1.sentence-1)

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lex.tex#L765)

A preprocessing number does not have a type or a value; it acquires both
after a successful conversion to
an [*integer-literal*](lex.icon#nt:integer-literal "5.13.2 Integer literals [lex.icon]") token or
a [*floating-point-literal*](lex.fcon#nt:floating-point-literal "5.13.4 Floating-point literals [lex.fcon]") token[.](#2.sentence-1)
