C Metaprogramming Utilities

by Dave Herman <dherman@ccs.neu.edu>

This package provides utilities for manipulating C programs, including a library for extracting binary layout information from header files for use with the foreign library—see FFI: Racket Foreign Interface.

For license information, please see the file COPYING.LIB.

    1 C Metaprogramming Utilities

      1.1 Getting Started

      1.2 Libraries Provided by this Package

      1.3 Known Limitations

      1.4 Feedback and Bug Reports

      1.5 History

    2 The C Language

      2.1 C Language Grammar

        2.1.1 Expressions

        2.1.2 Declarations

        2.1.3 Statements

        2.1.4 Programs

      2.2 Abstract Syntax

        2.2.1 Source Locations

        2.2.2 Identifiers

        2.2.3 Expressions

        2.2.4 Statements

        2.2.5 Declarations

        2.2.6 Initializers

        2.2.7 Designators

        2.2.8 Types

        2.2.9 Type Contexts

    3 Parsing and Reading C

      3.1 Parsing

      3.2 Embedding C in Scheme

        3.2.1 Scribble Reader

        3.2.2 Avoid Using Here Strings

        3.2.3 Embedding C

      3.3 Including C Externally

    4 Parenthetical C

    5 Header Compilation

      5.1 Headers

      5.2 Compilation

      5.3 Layouts

      5.4 Application Binary Interfaces (ABI’s)

    6 Evaluation

      6.1 External Processes

      6.2 GCC

    7 Internals

      7.1 Parser

        7.1.1 Grammar Definitions

        7.1.2 Grammar Invariants

        7.1.3 Syntactic Contexts

        7.1.4 Lexer and Parser Invariants

        7.1.5 Type Names as Identifiers

      7.2 Header Compilation

    Index