Adding a language construct

From EiffelStudio: an EiffelSoftware project
Revision as of 06:24, 12 September 2017 by Alexander Kogtenkov (talk | contribs) (Listed wizards)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Checklist for adding a language construct to EiffelStudio (order not particularly significant).

  • Announce the change so that others know what's happening!
  • Check ISO/ECMA standard, work of ECMA committee
  • If this is an experimental change, make sure there is a clear rationale available for consultation.
  • Lexical changes
  • Syntax changes: parser, pretty printer, documentation generator
  • New validity rules and their four-letter codes, or modifications (including additions) to existing validity rules
  • Type checking
  • Changes to AST structure (Abstract Syntax Tree)
  • Code generation
  • Runtime support:
    • introspection and reflection
    • conformance
    • catcall detection
    • storable facilities (serialization)
  • Serialization again: any problem with retrieving existing "storables"
  • Editor support
  • Automatic completion (also in editor)
  • New icons (or modified existing icons) associated with the new construct
  • Debugger
  • Metrics tool
  • Testing Framework
  • EiffelStudio views: what survives of the new construct in the Contract View and others?
  • EiffelStudio wizards: what forms need to be changed, what behavior need to be updated, what new dialogs need to be added
  • Effect on external code; in particular, how will the new construct appear to the via external features, CECIL, .NET, external features?
  • Documentation update, in particular
  • Examples of use, covering both basic and advanced usage, and integrated into the regression test suite for the compiler (EiffelWeasel)
  • Diagram tool (including: what are the BON and UML notations for the new construct)?

Original version from material by Alexander Kogtenkov and Bertrand Meyer