Changes between Version 18 and Version 19 of FeatureList
- Timestamp:
- 11/04/14 14:31:47 (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
FeatureList
v18 v19 3 3 4 4 == Core Features: == 5 1. BNF front-end (Parser, Lexer, Linker, etc.)6 1. translates a textual representation intoan Ecore model7 1. Editor - provides IDE features, e.g. auto-completion, syntax highlighting, etc.5 1. BNF front-end - lexer, parser, linker, etc. 6 1. Model serialisation - translates a textual representation to and from an Ecore model 7 1. IDE - provides editors and other IDE features, e.g. outline, auto-completion, syntax highlighting, quick-fixing, etc. 8 8 9 9 == Validation Rules: == 10 These rules will give warnings in the editor if they find find consistencies in the code.10 These rules will give warnings in the editor if they find inconsistencies and constraint violations in the code. 11 11 12 1. ''__checkUpdateGrammarConsistency__:'' checks , if the grammar is an updated grammar, for consistencies between the originalsand the new grammar12 1. ''__checkUpdateGrammarConsistency__:'' checks if the grammar is an updated grammar, for consistency validation between the original grammar and the new grammar 13 13 * status: not migrated 14 1. ''__checkReferencedOnlyOnce__:'' this should warn if there is a rule that is only referencedonce, this is an inlining hint14 1. ''__checkReferencedOnlyOnce__:'' checks if there are rules that are only referenced only once, this is an inlining hint 15 15 * 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 EBNF16 1. ''__checkPassthroughRule__:'' checks if a rule gets just passed through, e.g. `a ::= b, b ::= "literal"` <=> `a ::= "literal"`, which is better for EBNF 17 17 * status: migrated 18 1. ''__checkEqualAlternative__:'' this tests if a rule gotequal alternatives, e.g.: `a::= d | d`18 1. ''__checkEqualAlternative__:'' checks if a rule has equal alternatives, e.g.: `a::= d | d` 19 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 `20 1. ''__checkDuplicateRules__:'' checks if there is another rule that has the same right hand side, e.g.: `a ::= "literal" | b, c ::= "literal" | b ` 21 21 * status: migrated 22 1. ''__checkSubruleDuplicates__:'' 22 1. ''__checkSubruleDuplicates__:'' checks if there are identical parts of right hand sides, this is an extract subrule hint e.g. `a::= b c d` and `f::= e c d` <=> `a::= b g` and `f::= e g` with `g::= c d` 23 23 * status: not migrated 24 1. ''__check unused rule__:'' checks if a rule is used (exept for the rule with the number 1)24 1. ''__checkUnusedRule__:'' checks if a rule never used (except for the first rule) 25 25 * status: migrated 26 26 1. ''__checkNameIsUnique__:'' checks if the name of a rule is already in use e.g. `a ::= "end", a ::= "fin"` … … 28 28 29 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-fop31 30 32 * status: in progress 31 Generating an intermediate xsl-fo representation for all BNF grammars, which can then be rendered to PDF or RTF using apache-fop 32 * status: partially migrated, merge or delta grammars not supported (were they in the original implementation?) 33 33 34 34 == Formatting: == 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 35 36 Automated formatting support 37 * ''legacy:'' had some formatting support, but it was commented out in the main project 38 * ''migrated:'' line-break after every rule, white-spaces after all literals, possible update to line-break and double tab after all >|< bars 37 39 38 40 == Refactoring and Quick-fixing: == 39 Automated restructuring support.40 41 41 1. ''auto Numbering of rules'' 42 Automated restructuring and quick fixing support. 43 44 1. ''auto numbering of rules'' 42 45 * status: not migrated 43 46 1. ''remove unused rules'' 44 47 * status: migrated 45 1. ''replacement of pass throughRules''48 1. ''replacement of pass-through rules'' 46 49 * status: not migrated 47 1. '' refactor uppercasetokenRules''50 1. ''uppercase token rules'' 48 51 * status: not migrated 49 52 1. ''find references'' … … 53 56 54 57 == Grammar Composition: == 55 * 3 grammartypes: 58 59 Three grammar types: 56 60 * grammar: normal grammar 57 * delta grammar: different notation for a extension grammar,61 * delta grammar: different notation for an extension grammar, 58 62 * adds new rules to a grammar (regular rules) and adds changes to rules of the extended grammar (extension rules) (can be automatically created) 59 63 * 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.61 64 62 * at the moment no support in the new version 63 64 == Deployment: == 65 * export project as Plugin: Plug-in Development/deployable plug-ins and fragments 66 * RCP project with a minimal eclipse editor: TBD 65 The legacy version had an automatic composition process for merge grammars with a small pop-up-menu. 66 * status: at the moment no support for grammar composition in the migrated version