This project has moved and is read-only. For the latest updates, please go here.
Features to complete for the first release
  1. Implement support for robust error reporting and recovery mechanisms in target parsers -
  2. Implement global symbol table
  3. Complete the set of standard Terminal classes for lexeme types found in popular programming languages - numbers, literals, identifiers, etc.
  4. Build a set of built-in AstNode classes for common syntax constructs
  5. Create NUnit tests for all testable units
  6. Implement interpreter mode support for simple procedural programs. Built-in AST node classes would have Evaluate method, so that the entire program can be executed by calling Evaluate on root node. The non-procedural OOP-style programs would require non-trivial Runtime infrastructure, which will be built later.
  7. Create interactive console

Further development
  1. Create introductory documentation and embedded XML documentation for major components.
  2. Provide support for LALR(1.5) parsing with extra token preview on shift. Some languages, like Scheme, seem to need this extension
  3. Implement robust support for AST tree analysis and processing. Hopefully no visitor pattern, but something like multiple-type dispatch.
  4. Advanced AST tree analysis - type checking and inference, optimization, etc.
  5. Create core runtime infrastructure supporting dynamic object model, maybe something along these lines: http://piumarta.com/pepsi/objmodel2.pdf.
  6. .NET interoperability support
  7. Build more realistic (than current samples) reference implementations for one or two programming languages
  8. AST-to-MSIL compilation support.
  9. Build GrammarData code serializer, so that derived grammar data doesn't need to be rebuilt from scratch each time the compiler starts. Instead, GrammaData object will be deserialized from code similar to .NET Windows Forms.
  10. CodeDom and Visual Studio integration support

Last edited Mar 3, 2008 at 9:30 AM by rivantsov, version 6

Comments

No comments yet.