-
Notifications
You must be signed in to change notification settings - Fork 11
Home
#High-Level Documentation
All plugins are located in the trunk directory
- CIDE is the old version, depricated
- CIDE2 is the core that contains most of the infrastructure, the colored text editor (including views), the variant generation mechanism, astview, statistics and others.
- CIDE2_AST contains the common AST infrastructure for all languages (IASTNode)
- CIDE2_TypeChecking contains the infrastructure for type checking and its caching mechanism (see architecture description in docs directory)
- CIDE_Storage_Default contains the mechanism to store .color files (annotations of each file)
- CIDE_FM_* contains the three different feature model types (guidsl, list and purevariants). They extend an extension point in the core plugin. They mostly bridge to external plugins.
- CIDE_Export_* and CIDE_Import_* contain code for exports and imports
- CIDE_Language_* contain the grammar and code for various languages.
- CIDE_Language_JDT is special because it bridges to Eclipse's AST and provides type-checking capabilities and the Colored Java Editor
- CIDE_Deploy_* is for deployment (features, website, updatesite,...)
- CIDE_Docs provides some documentation inside Eclipse
- CIDE_Samples contributes several examples to Eclipse
- all plugin fragments ending in "-test" contain unit tests for the corresponding plugin. they are not part of the deployment process
- CIDE_generateAST and CIDE_DTDgen is not a plugin, but infrastructure used to generate the language plugins from a grammar. similar disciplinedanalysis and fstgen have an external purpose.
Currently there are three Feature Model (FM) plugins, CIDE_FM_List, CIDE_FM_Guidsl, CIDE_FM_PureVariants. Only one of them can be used at the same time, which one can be configured in Eclipse's options.
The CIDE_FM_List plugin supports 50 features in a list. There are no connections, dependencies or the like between the features (except of parent-child relations), all features are optional.
In contrast CIDE_FM_Guidsl allows reasoning with feature models on top of CIDE. It uses the guidsl model (see http://www.cs.utexas.edu/users/dsb/fopdocs/guidsl.html and accordant SPLC05 paper) to store feature models in a textual form as grammar in the model.m file in the root-directory of the project. There can be arbitrary constraints between features, e.g., it is possible to create dependent features (pseudo features/derivatives) which are selected automatically. This can be used to annotate conditions like "not Feature1 or Feature2" in CIDE. The CIDE_FM_Guidsl must be used together with two plugins (featureide_fm_core and featureide_fm_ui) from the FeatureIDE project which implement the reasoning and a graphical editor (which are available on the CIDE update site or can be mailed on request).
Anleitung als Datei angehängt.
Zum Arbeiten an und mit CIDE Haskell benötigt man folgende Projekte: CIDE2, CIDE2_ast, CIDE_FM_guidsl oder CIDE_FM_List, CIDE_generateAST, CIDE_Language_Haskell.
Für CIDE Haskell gibt es zwei Versionen des Parsers, ein Pseudo-Parser (phaskell.gcide) und ein richtiger Parser (haskell.gcide). Wir nutzen eigentlich nur noch den richtigen Parser. Der Parser kann Haskell-Code im sog. Layout-Stil (Einrückungen spielen eine Rolle, dafür braucht man keine Block-bildenden Klammern wie geschweifte Klammern) nicht sauber parsen. Einfache Blockeinrueckungen zwischen Zeilen sind moeglich, aber keine automatischen Klammern innerhalb einer Zeile. Es gibt aber auch den Block-Stil, in den wir glücklicherweise fast jedes Haskell-Programm im Layout-Stil konvertieren können (wichtigstes Kriterium für die Konvertierung und auch dafür, dass wir es parsen können: der Code muss Haskell98-konform sein und darf keine Spracherweiterungen nutzen). Das Konvertierungstool !NoLayout (von Armin Größlinger und somit selbstverständlich selbst in Haskell geschrieben) ist auf Anfrage verfügbar.