~/talk

“Parsing C++”

Talkat CppCon 2018 · 2018-09-23..09-28· [compilers-and-language-design]
links:none on file
links:none on file
slides:none on file

C++ parsing requires semantic name lookup and often arbitrary lookahead so parsers must perform type lookup, evaluate constexprs and handle template-dependent lexing rather than just follow a context-free grammar. Real tooling (JetBrains CLion, Clang-based tools) copes by mixing parsing with semantic analysis, adding disambiguation hacks like most vexing parse workarounds and typename annotations, and still sees compilers produce inconsistent diagnostics; modules promise improvement but introduce new tooling integration challenges.

AI-written summary · about

  1. 0:00Introduction to parsing C++
  2. 1:07C++ compiler basics and lexer
  3. 3:20C++ grammar and ambiguities
  4. 6:18Ambiguities in C vs C++
  5. 9:31Constructors and parsing challenges
  6. 12:40Most vexing parse explained
  7. 15:31Rewinding and disambiguation in parsing
  8. 18:46Declarators with parentheses
  9. 21:13Initializers in control flow
  10. 22:39More vexing parse examples
  11. 26:52Impact of grammar on tooling
  12. 33:00Templates and parsing difficulties
  13. 35:37Why tooling struggles with C++
  14. 37:30Compiler error messages and recovery
  15. 41:27Error recovery in IDEs
  16. 43:40Designing new C++ features
  17. 44:46Future of C++ syntax and modules
  18. 48:26Q&A: Generic C++ parser
  19. 49:07Q&A: Modules and tooling
  20. 50:58Q&A: Modules and preprocessor
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.