-
Notifications
You must be signed in to change notification settings - Fork 11
Milestone 3
VladD2 edited this page Apr 2, 2016
·
3 revisions
- Incremental parsing.
- Parameterized rules. Parameters allow you to avoid duplication of rules. Parameters can be rule type or primitive type (string or int).
Example:
syntax Tag<Name> = "<" Name Attribute* ">" Content* "</" Name ">";
- Rule local variables.
- Semantic predicates - predicates which operate on Rule parameters and local rules variables. Semantic predicates and parameterized rules allows us to parse identation based grammars and other context-sensitive grammar (like "raw" string literals from C++ 11).
- DSL for code generation
- Design and implement Backends API
- Implement .Net Backend
- Save metadata and code in format supported by backend
- Load metadata from format supported by backend
- Generation of executable images
- Incremental reset and update dependent properties (DP). For example: re-evaluate DP of separate method and evaluate DP of methods in lazy manner.
- Support serialization (on solution loading) & deserialization (on solution unloading) for AST, declarations and symbols (to prevent parsing on a project loading)
- Project reference
- API for quickfix on compiler messages
- Code formatting
- Refactoring API
- Rename refactoring
- Miscellaneous
- Expand/collapse selection
- Complete statement
- Design and implement Project DSL. This DSL should replace IProjectSupport (currently used in Nitra)
- Nemerle
- C#
- Make deploying of nuget packages to nuget.org
- Make VSIX for Nitra
- Make Web site
- Write documentation for Mapping
- Write documentation for Dependent Properties Language
- Write documentation for AST/Declarations
- Write documentation for IDE features
- Replace Nemerle 1.0 code by Nemerle 2.0 code (powered by Nitra).
- Move Nitra on Project DSL
- Implement IDE support for Nitra
- Implement Extensible C# and Nemerle 2.0 on Nitra
- Make Nitra independent from Nemerle 1.0.
- Move Nitra on .Net backend and Nemerle 2.0.
- Release Nitra 1.0 (make distributive and deploying nuget packages)