Changes between Version 17 and Version 18 of FeatureList
- Timestamp:
- 07/02/14 12:33:48 (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
FeatureList
v17 v18 1 1 = BNF Tools Version 2.0: Migration Notes = 2 3 2 Discovered features in version 1.0 and their migration status, as well as further migration notes are summarised below. 4 3 5 4 == Core Features: == 6 7 5 1. BNF front-end (Parser, Lexer, Linker, etc.) 8 6 1. translates a textual representation into an Ecore model 9 7 1. Editor - provides IDE features, e.g. auto-completion, syntax highlighting, etc. 10 8 11 == Validation Rules: == 12 9 == Validation Rules: == 13 10 These rules will give warnings in the editor if they find find consistencies in the code. 14 11 15 1. ''__checkUpdateGrammarConsistency__:'' checks, if the grammar is an updated grammar, for consistencies between the originals and the new grammar 16 * status: not migrated12 1. ''__checkUpdateGrammarConsistency__:'' checks, if the grammar is an updated grammar, for consistencies between the originals and the new grammar 13 * status: not migrated 17 14 1. ''__checkReferencedOnlyOnce__:'' this should warn if there is a rule that is only referenced once, this is an inlining hint 18 * status: migrated19 1. ''__checkPassthroughRule__:'' this tests if a rule gets just passed through, e.g. {{{a ::= b, b ::= "literal"}}} <=> {{{a ::= "literal"}}}, which is better for EBNF20 * status: migrated21 1. ''__checkEqualAlternative__:'' this tests if a rule got equal alternatives, e.g.: {{{a::= d | d}}}22 * status: migrated23 1. ''__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 }}}24 * status: migrated15 * status: migrated 16 1. ''__checkPassthroughRule__:'' this tests if a rule gets just passed through, e.g. `a ::= b, b ::= "literal"` <=> `a ::= "literal"`, which is better for EBNF 17 * status: migrated 18 1. ''__checkEqualAlternative__:'' this tests if a rule got equal alternatives, e.g.: `a::= d | d` 19 * status: migrated 20 1. ''__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 ` 21 * status: migrated 25 22 1. ''__checkSubruleDuplicates__:'' 26 * status: not migrated23 * status: not migrated 27 24 1. ''__check unused rule__:'' checks if a rule is used (exept for the rule with the number 1) 28 * status: migrated29 1. ''__checkNameIsUnique__:'' checks if the name of a rule is already in use e.g. {{{a ::= "end", a ::= "fin"}}}30 * status: migrated25 * status: migrated 26 1. ''__checkNameIsUnique__:'' checks if the name of a rule is already in use e.g. `a ::= "end", a ::= "fin"` 27 * status: migrated 31 28 32 29 == Generation: == 30 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 33 31 34 Generating an intermediate xsl-fo representation for all BNF grammars (merge or delta grammars not supported). This can be rendered to PDF using apache-fop35 32 * status: in progress 36 33 37 34 == Formatting: == 38 39 * ''old:'' had some but they are got commented out in the main project 40 * ''new:'' line-break after every rule, white-spaces after all literals, possible update linebreak and double tab after all >|< bars 35 * ''old:'' had some but they are got commented out in the main project 36 * ''new:'' line-break after every rule, white-spaces after all literals, possible update linebreak and double tab after all >|< bars 41 37 42 38 == Refactoring and Quick-fixing: == 43 44 39 Automated restructuring support. 45 40 46 1. ''auto Numbering of rules'' 47 * status: not migrated41 1. ''auto Numbering of rules'' 42 * status: not migrated 48 43 1. ''remove unused rules'' 49 * status: migrated44 * status: migrated 50 45 1. ''replacement of passthroughRules'' 51 * status: not migrated46 * status: not migrated 52 47 1. ''refactor uppercasetokenRules'' 53 * status: not migrated48 * status: not migrated 54 49 1. ''find references'' 55 * status: provided by xtext250 * status: provided by xtext2 56 51 1. ''renaming'' 57 * status: provided by xtext252 * status: provided by xtext2 58 53 59 54 == Grammar Composition: == 60 61 - 3 grammartypes: 62 - grammar: normal grammar 63 - delta grammar: different notation for a extension grammar, 64 - adds new rules to a grammar (regular rules) and adds changes to rules of the extended grammar (extension rules) (can be automatically created) 65 - merge grammar: for merging extensions 66 - old version had an automatic composition process for merge grammars with a small pop-up-menu. 55 * 3 grammartypes: 56 * grammar: normal grammar 57 * delta grammar: different notation for a extension grammar, 58 * adds new rules to a grammar (regular rules) and adds changes to rules of the extended grammar (extension rules) (can be automatically created) 59 * merge grammar: for merging extensions 60 * 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. 67 61 68 62 * at the moment no support in the new version 69 63 70 64 == Deployment: == 71 72 * export project as Plugin: Plug-in Development/deployable plug-ins and fragments 65 * export project as Plugin: Plug-in Development/deployable plug-ins and fragments 73 66 * RCP project with a minimal eclipse editor: TBD