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. Runtime data access
- 10.1.20. Tuple and variant access
- 10.1.21. 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. Call generation
- 10.2.9. Visitor pattern
- 10.2.10. Expression generation
- 10.2.11. Adapter generation
- 10.2.11.1. make_block_annotation
- 10.2.11.2. make_call_macro
- 10.2.11.3. make_capture_macro
- 10.2.11.4. make_comment_reader
- 10.2.11.5. make_enumeration_annotation
- 10.2.11.6. make_for_loop_macro
- 10.2.11.7. make_function_annotation
- 10.2.11.8. make_pass_macro
- 10.2.11.9. make_reader_macro
- 10.2.11.10. make_simulate_macro
- 10.2.11.11. make_structure_annotation
- 10.2.11.12. make_type_macro
- 10.2.11.13. make_typeinfo_macro
- 10.2.11.14. make_variant_macro
- 10.2.11.15. make_visitor
- 10.2.12. Adapter application
- 10.2.13. Adding objects to objects
- 10.2.14. Program and module access
- 10.2.15. Textual descriptions of the objects
- 10.2.16. Searching
- 10.2.17. Iterating
- 10.2.18. Cloning
- 10.2.19. Mangled name
- 10.2.20. Size and offset
- 10.2.21. Evaluations
- 10.2.22. Error reporting
- 10.2.23. Location and context
- 10.2.24. Use queries
- 10.2.25. Log
- 10.2.26. Removal
- 10.2.27. Properties
- 10.2.28. Infer
- 10.2.29. Module queries
- 10.2.30. Debug info helpers
- 10.2.31. AOT support
- 10.2.32. String builder writer
- 10.2.33. 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. Queries
- 10.3.9. Annotations
- 10.3.10. Expression generation
- 10.3.11. Type generation
- 10.3.12. Type casts
- 10.3.13. 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. Type macro and template structure support
- 10.9. DECS, AST block to loop
- 10.10. Position-based AST queries
- 10.11. AST type usage collection
- 10.12. AST pattern matching
- 10.12.1. Enumerations
- 10.12.2. Structures
- 10.12.3. Call macros
- 10.12.4. Match execution
- 10.12.5. Result builders
- 10.12.6. Value extraction
- 10.12.7. Name and type extraction
- 10.12.8. Argument filtering
- 10.12.9. Block scanning
- 10.12.10. Constant construction
- 10.12.11. AST reconstruction
- 10.12.12. AST normalization
- 10.13. Constant expression checker and substitution