Skip to content

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

Open

Description

@AlisdairM

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 syntactic 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3-OtherTriaged issue not in P1 or P2

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions