10. AST and Macros
Runtime type information, AST access and manipulation, code generation templates, quoting, and macro infrastructure.
- 10.1. Runtime type information library
- 10.1.1. Type aliases
- 10.1.2. Constants
- 10.1.3. Enumerations
- 10.1.4. Handled structures
- 10.1.5. Typeinfo macros
- 10.1.6. Handled types
- 10.1.7. Initialization and finalization
- 10.1.8. Type access
- 10.1.9. Rtti context access
- 10.1.10. Program access
- 10.1.11. Module access
- 10.1.12. Annotation access
- 10.1.13. Compilation and simulation
- 10.1.14. File access
- 10.1.15. Structure access
- 10.1.16. Data walking and printing
- 10.1.17. Function and mangled name hash
- 10.1.18. Context and mutex locking
- 10.1.19. Name lookup builder
- 10.1.20. Runtime data access
- 10.1.21. Tuple and variant access
- 10.1.22. Lint suppression
- 10.1.23. Iteration
- 10.2. AST manipulation library
- 10.2.1. Type aliases
- 10.2.2. Enumerations
- 10.2.3. Handled structures
- 10.2.4. Call macros
- 10.2.5. Typeinfo macros
- 10.2.6. Handled types
- 10.2.7. Classes
- 10.2.8. Compilation and file access
- 10.2.9. Building programs from AST nodes
- 10.2.10. Call generation
- 10.2.11. Visitor pattern
- 10.2.12. Expression generation
- 10.2.13. Adapter generation
- 10.2.13.1. make_block_annotation
- 10.2.13.2. make_call_macro
- 10.2.13.3. make_capture_macro
- 10.2.13.4. make_comment_reader
- 10.2.13.5. make_enumeration_annotation
- 10.2.13.6. make_for_loop_macro
- 10.2.13.7. make_function_annotation
- 10.2.13.8. make_pass_macro
- 10.2.13.9. make_reader_macro
- 10.2.13.10. make_simulate_macro
- 10.2.13.11. make_structure_annotation
- 10.2.13.12. make_type_macro
- 10.2.13.13. make_typeinfo_macro
- 10.2.13.14. make_variant_macro
- 10.2.13.15. make_visitor
- 10.2.14. Adapter application
- 10.2.15. Adding objects to objects
- 10.2.16. Program and module access
- 10.2.17. Textual descriptions of the objects
- 10.2.18. Searching
- 10.2.19. Iterating
- 10.2.20. Cloning
- 10.2.21. Mangled name
- 10.2.22. Size and offset
- 10.2.23. Evaluations
- 10.2.24. Error reporting
- 10.2.25. Location and context
- 10.2.26. Use queries
- 10.2.27. Log
- 10.2.28. Removal
- 10.2.29. Properties
- 10.2.30. Infer
- 10.2.31. Module queries
- 10.2.32. Debug info helpers
- 10.2.33. AOT support
- 10.2.34. String builder writer
- 10.2.35. GC
- 10.3. Boost package for the AST
- 10.3.1. Type aliases
- 10.3.2. Function annotations
- 10.3.3. Variant macros
- 10.3.4. Structure macros
- 10.3.5. Classes
- 10.3.6. Containers
- 10.3.7. Textual descriptions of the objects
- 10.3.8. Collect carriers
- 10.3.9. Queries
- 10.3.10. Annotations
- 10.3.11. Expression generation
- 10.3.12. Type generation
- 10.3.13. Type casts
- 10.3.14. Setup
- 10.4. decltype macro and template function annotation
- 10.5. Template application helpers
- 10.5.1. Structures
- 10.5.2. Call macros
- 10.5.3. Template rules
- 10.5.4. Template application
- 10.5.5. Expression helpers
- 10.5.6. Expression generation
- 10.5.7. Block helpers
- 10.5.8. Global variable helpers
- 10.5.9. Hygienic names
- 10.5.10. Quoting macros
- 10.5.11. Type pointer helpers
- 10.5.12. Structure helpers
- 10.5.13. Class generation
- 10.6. AST quasiquoting infrastructure
- 10.7. Boost package for macro manipulations
- 10.8. A module required after the walk, and calls into its macro context
- 10.9. Calls into every member of a module group
- 10.10. Type macro and template structure support
- 10.11. DECS, AST block to loop
- 10.12. Position-based AST queries
- 10.13. AST type usage collection
- 10.14. AST pattern matching
- 10.14.1. Enumerations
- 10.14.2. Structures
- 10.14.3. Call macros
- 10.14.4. Match execution
- 10.14.5. Call matching
- 10.14.6. Result builders
- 10.14.7. Capture staging
- 10.14.8. Value extraction
- 10.14.9. Name and type extraction
- 10.14.10. Argument filtering
- 10.14.11. Block scanning
- 10.14.12. Constant construction
- 10.14.13. AST reconstruction
- 10.14.14. AST normalization
- 10.14.15. Hygienic names
- 10.15. Constant expression checker and substitution