Difference between revisions of "Adding a language construct"
m (Listed wizards) |
|||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | [[Category:Compiler]] | ||
Checklist for adding a language construct to EiffelStudio (order not particularly significant). | Checklist for adding a language construct to EiffelStudio (order not particularly significant). | ||
Line 5: | 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, pretty printer, documentation generator |
* 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 | ||
Line 23: | Line 24: | ||
* Testing Framework | * Testing Framework | ||
* EiffelStudio views: what survives of the new construct in the Contract View and others? | * 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? | * 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 | * Documentation update, in particular |
Latest revision as of 21:24, 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, 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