This commit is contained in:
2025-10-25 03:02:53 +03:00
commit 043225d523
3416 changed files with 681196 additions and 0 deletions

34
cppdraft/lex/ppnumber.md Normal file
View File

@@ -0,0 +1,34 @@
[lex.ppnumber]
# 5 Lexical conventions [[lex]](./#lex)
## 5.7 Preprocessing numbers [lex.ppnumber]
[pp-number:](#nt:pp-number "5.7Preprocessing numbers[lex.ppnumber]")
[*digit*](lex.name#nt:digit "5.11Identifiers[lex.name]")
. [*digit*](lex.name#nt:digit "5.11Identifiers[lex.name]")
[*pp-number*](#nt:pp-number "5.7Preprocessing numbers[lex.ppnumber]") [*identifier-continue*](lex.name#nt:identifier-continue "5.11Identifiers[lex.name]")
[*pp-number*](#nt:pp-number "5.7Preprocessing numbers[lex.ppnumber]") ' [*digit*](lex.name#nt:digit "5.11Identifiers[lex.name]")
[*pp-number*](#nt:pp-number "5.7Preprocessing numbers[lex.ppnumber]") ' [*nondigit*](lex.name#nt:nondigit "5.11Identifiers[lex.name]")
[*pp-number*](#nt:pp-number "5.7Preprocessing numbers[lex.ppnumber]") e [*sign*](lex.fcon#nt:sign "5.13.4Floating-point literals[lex.fcon]")
[*pp-number*](#nt:pp-number "5.7Preprocessing numbers[lex.ppnumber]") E [*sign*](lex.fcon#nt:sign "5.13.4Floating-point literals[lex.fcon]")
[*pp-number*](#nt:pp-number "5.7Preprocessing numbers[lex.ppnumber]") p [*sign*](lex.fcon#nt:sign "5.13.4Floating-point literals[lex.fcon]")
[*pp-number*](#nt:pp-number "5.7Preprocessing numbers[lex.ppnumber]") P [*sign*](lex.fcon#nt:sign "5.13.4Floating-point literals[lex.fcon]")
[*pp-number*](#nt:pp-number "5.7Preprocessing 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.2Integer literals[lex.icon]") tokens ([[lex.icon]](lex.icon "5.13.2Integer literals")) and
all [*floating-point-literal*](lex.fcon#nt:floating-point-literal "5.13.4Floating-point literals[lex.fcon]") tokens ([[lex.fcon]](lex.fcon "5.13.4Floating-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.2Integer literals[lex.icon]") token or
a [*floating-point-literal*](lex.fcon#nt:floating-point-literal "5.13.4Floating-point literals[lex.fcon]") token[.](#2.sentence-1)