Version 18 (modified by hkaulbersch, 10 years ago) (diff) |
---|
BNF Tools Version 2.0: Migration Notes
Discovered features in version 1.0 and their migration status, as well as further migration notes are summarised below.
Core Features:
- BNF front-end (Parser, Lexer, Linker, etc.)
- translates a textual representation into an Ecore model
- Editor - provides IDE features, e.g. auto-completion, syntax highlighting, etc.
Validation Rules:
These rules will give warnings in the editor if they find find consistencies in the code.
- checkUpdateGrammarConsistency: checks, if the grammar is an updated grammar, for consistencies between the originals and the new grammar
- status: not migrated
- checkReferencedOnlyOnce: this should warn if there is a rule that is only referenced once, this is an inlining hint
- status: migrated
- checkPassthroughRule: this tests if a rule gets just passed through, e.g. a ::= b, b ::= "literal" <=> a ::= "literal", which is better for EBNF
- status: migrated
- checkEqualAlternative: this tests if a rule got equal alternatives, e.g.: a::= d | d
- status: migrated
- checkDuplicateRules: checks if there is another rule in the EtsiBnf, that has the same right hand side, e.g.: a ::= "literal" | b, c ::= "literal" | b
- status: migrated
- checkSubruleDuplicates:
- status: not migrated
- check unused rule: checks if a rule is used (exept for the rule with the number 1)
- status: migrated
- checkNameIsUnique: checks if the name of a rule is already in use e.g. a ::= "end", a ::= "fin"
- status: migrated
Generation:
Generating an intermediate xsl-fo representation for all BNF grammars (merge or delta grammars not supported). This can be rendered to PDF using apache-fop
- status: in progress
Formatting:
- old: had some but they are got commented out in the main project
- new: line-break after every rule, white-spaces after all literals, possible update linebreak and double tab after all >|< bars
Refactoring and Quick-fixing:
Automated restructuring support.
- auto Numbering of rules
- status: not migrated
- remove unused rules
- status: migrated
- replacement of passthroughRules
- status: not migrated
- refactor uppercasetokenRules
- status: not migrated
- find references
- status: provided by xtext2
- renaming
- status: provided by xtext2
Grammar Composition:
- 3 grammartypes:
- grammar: normal grammar
- delta grammar: different notation for a extension grammar,
- adds new rules to a grammar (regular rules) and adds changes to rules of the extended grammar (extension rules) (can be automatically created)
- merge grammar: for merging extensions
- old version had an automatic composition process for merge grammars with a small pop-up-menu. The new has 2 Buttons for Generating either PDF or RTF files from the Grammar.
- at the moment no support in the new version
Deployment:
- export project as Plugin: Plug-in Development/deployable plug-ins and fragments
- RCP project with a minimal eclipse editor: TBD