wiki:FeatureList

Version 3 (modified by hkaulbersch, 10 years ago) (diff)

--

==FeatureList xText EBNF Version 2.0==

*Core Features:

-BNF front-end (Parser, Lexer, Linker, etc.) - translates a textual representation into an Ecore model

-the editor

  • 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

e.g.: status: not migrated

-CheckReferencedOnlyOnce?: this should warn if there is a rule that is only referenced once, this is an inlining hint

e.g.: status: migrated

-checkPassthroughRule:

e.g.:this tests if a rule gets just passed through

a ::= b b ::= "literal" <=> a ::= "literal" , which is better for EBNF

-checkEqualAlternative: this tests if a rule got equal alternatives

e.g.:

a::= d | d

status: still some problems

-checkDuplicateRules: checks if there is another rule in the EtsiBnf?, that got the same behaviour

e.g.:

a ::= "literal" | b c ::= "literal" | b

status: migrated

-checkSubruleDuplicates:

status: not migrated

-check unused rule: it checks if a rule is used (exept for the rule with the number 1)

status: migrated

-checkNameIsUnique: checks if the nam of a rule is already in use

e.g.:

a ::= "end" a ::= "fin"

status: migrated

*Generation:

-basic generation has been achieved but the output-format is unclear. Works with a Xtend-generator, momentary "xmi-like" output for a bnf grammar -old version had: mwe2 Generator and Xpand2 support

  • it could generate mergeGrammars from CoreGrammars? and CompositeGrammars? from Merge grammars -seemingly it could produce a xsl-fo-file with the corresponding nodemodel

-new version: xsl-fo file for all bnf grammars (not for merge or deltagrammars) this can be Rendered to Pdf using apache-fop

*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, linebreak and double tab after all >|< bars

-still got some Problems with rulereferences at the end of a definitionlist

*Refactoring & Quickfixing:

old had: -auto Numbering of rules

-not migrated

-remove unused rules

-not migrated

-replacement of passthroughRules

-not migrated

-refactor uppercasetokenRules

-not migrated

-find references, this one is standard in xtext2.* -renaming, this is standard in xtext2.*

*Grammar composition:

-3 grammartypes:

grammar: normal grammar deltagrammar: 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 automaticly created

mergegrammar: for merging extensions

-old version had an automatic composition Process, for merge grammars, with a small pop-up-menu.

  • at the moment no support in the new version

*Deploying:

-export project: Plug-in Development/deployable plug-ins and fragments -rcp project with a minimal eclipse editor