Difference between revisions of "Adding a language construct"
m (Listed pretty printer) |
|||
Line 6: | Line 6: | ||
* If this is an experimental change, make sure there is a clear rationale available for consultation. | * If this is an experimental change, make sure there is a clear rationale available for consultation. | ||
* Lexical changes | * Lexical changes | ||
− | * Syntax changes: parser | + | * Syntax changes: parser and pretty printer |
* New validity rules and their four-letter codes, or modifications (including additions) to existing validity rules | * New validity rules and their four-letter codes, or modifications (including additions) to existing validity rules | ||
* Type checking | * Type checking |
Revision as of 22:21, 11 September 2017
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 and pretty printer
- 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?
- 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