Direkt zum Hauptbereich

Posts

Es werden Posts vom Oktober, 2017 angezeigt.

Basic Type Mapping mit Xbase

Folgendes Problem: Die Bezeichnungen "int" oder "double" sind einfach hässlich. Welcher "normale" Mensch weiß denn, was double bedeutet? .. Ok, ich gehe davon aus, dass jeder Leser hier tatsächlich weiß, wofür das steht. Dennoch möchte man eventuell den primitiven Datentypen andere Namen geben. Zum Beispiel zum Entwicklung einer Programmiersprache bestehend aus "How I Met Your Mother"-Zitaten, bei der "Ted" für den Datentyp "int" und "Robin" für "double". steht. Nun zum technischen: Zunächst muss die Variablendeklaration definiert werden. Diese wird anschließend als zusätzliche XPrimaryExpression hinzugefügt. Variable returns XVariableDeclaration: {Variable} writeable?='variable' simpleName=ID ':' typing=('Ted'|'Robin' /* more types */); Normalerweise wird bei Xbase im feld type der XVariableDeclaration eine JvmTypeReference gesetzt, die auf den Java Typen zeigt. D

Das Initialisieren von Klassen in Xbase..

Folgendes Problem: Gegeben sei eine auf Xbase basierte Grammatik in Xtext, in der structs definiert werden. Diese werden definiert wie in plain old C: struct Student { String firstName; String secondName; int age; }; Selbstverständlich verwenden wir hier die Java Datentypen und keine char*-Arrays für Strings wie in C ;-). Die structs - in meiner Grammatik Composition genannt - sehen wie folgt aus Composition : {Composition} "type" name=ID ":" "structure" "{" (attributes+=Attribute)* "}" ; Attribute: {Attribute} "attribute" name=ID ":" type=JvmTypeReference ";" ; Ich möchte in meiner generierten DSL also beispielsweise folgendes schreiben können: type Student : structure { attribute firstName : String; attribute secondName : String; attribute age : int; } Durch das Implementieren des Xbase-Inferrer, der den Java-Code daraus generiert, soll folgendes Vorgehen realisiert werden: Jede