Child pages
  • Milestone 3
Skip to end of metadata
Go to start of metadata

Parsing

  • Implement support of external (outside rule bodies) Parse Tree methods.

  • Incremental parsing
  • Parameterized rules. Parameters allow you to avoid duplication of rules. - work in progress...
    Example:
    syntax Tag<Name> = "<" Name Attribute* ">" Content* "</" Name ">";
  • Preprocessor (for languages like C)
  • Preprocessor for indent based languages (like Python and Haskell)

Type system

  • Declarations/AST

    • Declarations/AST serialisation/deserialisation
  • Symbols
    • DSL for declarative defenition of typing rules and checks (for typing bodies of functions & methods)
    • Symbols serialisation/deserialisation
    • Incremental update symbol if a mapped declaration has been changed

IDE support

  • Performace optimizations
    • Incremental parsing
    • Incremental typing
    • parsing & typing in separate thread
    • update highlightings between editing start and parsing + typing will be complited
  • Support serialisation on loading  & deserialisation on unloading for AST, declarations and symbols (to prevent parsing on a project loading)
  • API for quickfix on compiler messages
  • Code formatting
  • Miscellaneous
    • Expand/collapse selection
    • Code formatting
    • Complete statement
    • Rename refactoring

Transformation

  • DSL for code generation

Backends

  • Genegation of executable images

  • Save metadata and code in format supported by backend
  • Load metadata from format supported by backend

API & DSL for high level code generation (for example, C#)

Grammar verification

 

  • ReSharper/Platform DSLs
  • Xml
  • Html
  • CSS
  • Nemerle
  • F#
  • Razor (cshtml, nhtml, fshtml)

 

  • No labels