Adding a language construct
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
- 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
- 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