Files
cppdraft_translate/cppdraft/lex/ppnumber.md
2025-10-25 03:02:53 +03:00

35 lines
2.4 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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