The first focus is to produce a working core

  1. Working Code Generation
  2. Focus on getting the basic function of code generation working. Use Demeter object syntax for definitions and config files.

    a. Implement Type Registry

    Class Dictionary for Type Registry. Initialize via object syntax. Print contents.

    b. Implement Entity Registry

    Class Dictionary for Entity Registry. Initialize via object syntax. Print contents. Update Type Registry with entries for Entities. Calculate type use of Methods (also a semantic check on types occurring in Entity definitions.

    c. Implement Category Registry

    Class dictionary for Category Registry. Initialize via object syntax. Print contents.

    d. Implement Code Generation traversals.

    Implement traversals and visitors for code generation, except for actual expansion of templates.

    e. Implement Template Expansion

    Implement template expansion logic.

  3. Improved syntax for definitions file.
  4. Replace the Demeter syntax with a syntax more reminiscent of a C++ class declaration. Use JavaCC to create the parser for this syntax.

  5. Improved syntax for config file.