Skip to content

[C++29] Dissolve [lex] into the rest of the standard #7441

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Open
AlisdairM opened this issue Nov 25, 2024 · 0 comments
Open

[C++29] Dissolve [lex] into the rest of the standard #7441

AlisdairM opened this issue Nov 25, 2024 · 0 comments

Comments

@AlisdairM
Copy link
Contributor

This is a suggestion for work as part of the broader C++29 chapter cleanup proposed in #7399. It is filed as its own issue to try to establish consensus to add an actionable item to that plan.

The proposal comes in a few stages:

First, make a clear separation between preprocessor phases 1-6 that entirely manipulate text, and C++ translation from phase 7 that adds syntactic and semantic analysis to the resulting tokens. This mostly means clearly separating out of identifiers and string literals the preprocessor specific aspects, likely into pp-identifiers and pp-string-literals.

Once the parts are properly separated, I would suggest moving the phases of translation into the intro material along side the definition of the abstract machine. This would also be a good place to move our definition of the term program.

The preprocessor side of lexing could then move to the start of [cpp], and the material on synaptic and semantic analysis of token would move into [basic].

We might then consider moving some aspects of [basic], such as the memory and concurrency models, into [intro] describing how the abstract machine maps to a real world execution environment.

This would achieve the aims originally espoused in #2252

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant