Xtext - und was man damit anstellen kann
Upcoming SlideShare
Loading in...5
×
 

Xtext - und was man damit anstellen kann

on

  • 5,267 views

Grober Überblick über Xtext für Teilnehmer auf dem Eclipse DamoCamp in Hamburg im Mai 2009

Grober Überblick über Xtext für Teilnehmer auf dem Eclipse DamoCamp in Hamburg im Mai 2009

Statistics

Views

Total Views
5,267
Views on SlideShare
5,259
Embed Views
8

Actions

Likes
1
Downloads
44
Comments
0

2 Embeds 8

http://www.slideshare.net 4
http://lanyrd.com 4

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Xtext - und was man damit anstellen kann Xtext - und was man damit anstellen kann Presentation Transcript

  • ...und was man damit anstellen kann. Heiko Behrens Eclipse DemoCamp 2009 Hamburg 25.05.2009 E-Mail Heiko.Behrens@itemis.de Blog www.1160pm.net
  • Xtext? Xtext is a framework/tool for development of external textual DSLs. A domain-specific-language (DSL) in the context of modeling is a formal, processable language targeting at a specific viewpoint or aspect of a software system. Its semantics, flexibility and notation is designed in order to support working with that viewpoint as good as possible.
  • Fuh in VU 4. und 5.
  • “Wen hast Du morgen in den letzten beiden Stunden?” “ Fuh in VU ” 4. und 5.
  • Aussagen von Phillipp: Deutsch bei Müller montags in der 1. Stunde kraft ch Fa ehr agL deT Stun Meierrain Englisch in der 2.de k ft L ehr ach F un St Sport bei Sippft 3. unde 4. Fac h e L hrkr a d S tun Sozi in der 5. de Fach n Stu Franz bei Meiert dienstags in der 2. kraf F cha ehr L ag T S t unde Deutsch 3. unde 4. Fac h d S tun
  • Montag Dienstag Deutsch Müller Deutsch Englisch Meier Englisch Franz Sport Sipp Sport Deutsch Sport Deutsch Franz Meier Sozi Protokoll Aussage Vorname Lehrkraft Stunde * Name * Wert Name Tag
  • Deutsch bei Müller montags in der 1. Stunde
  • Grammatik (ähnlich zu EBNF) Protokoll : ! quot;Aussagen vonquot; vorname=NAME nachname=NAME quot;:quot; ! (aussagen+=Aussage)*; ! Aussage: ! lehrkraft=NAME quot;inquot; fach=NAME zeit=Zeit | ! fach=NAME (quot;beiquot; lehrkraft=NAME)? zeit=Zeit; ! Zeit: ! (tag=Tag)? stunden+=Stunde ((quot;,quot; | quot;undquot;) stunden+=Stunde)*; ! Stunde: ! (quot;inquot; quot;derquot;|quot;zurquot;)? wert=INT quot;.quot; quot;Stundequot;?; ! enum Tag: ! unbekannt | ! montags | dienstags | mittwochs | ! donnerstags | freitags | samstags; ! terminal NAME : ! ('A'..'Z'|'Ä|'Ö'|'Ü') ('A'..'Z'|'Ä'|'Ö'|'Ü'|'-'|'a'..'z'|'ä'|'ö'|'Ü'|'ß')*;
  • ik at Modell m m ra G Superclass Subclass Class LL(*) Parser ecore Metamodell Editor Xtext-Rahmenwerk (anpassbar mit Google Guice)
  • Demo • Modelldatei • Xtext Grammar für Aussagen zum Stundenplan • Java-Programm zum Laden und navigieren über Modell • Xpand-basierter Generator © itemis AG 2009 – Alle Rechte vorbehalten 9
  • Entities (1/2) @SuppressWarnings(quot;serialquot;) @Entity @Table(name = quot;CUSTOMER_INFOquot;) public class CustomerInfo implements Serializable { ! @Id ! @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = quot;idSeqquot;) ! @SequenceGenerator(name = quot;idSeqquot;, sequenceName = quot;CUST_SEQquot;, allocationSize = 1) ! @Column(name = quot;CUST_IDquot;, nullable = false) ! private String customerId; ! public void setCustomerId(String customerId) { ! ! this.customerId = customerId; ! } ! public String getCustomerId() { ! ! return customerId; ! } ! @Column(name = quot;EMAILquot;, nullable = false, length = 128) ! private String emailAddress; ! public String getEmailAddress() { ! ! return emailAddress; ! } ! public void setEmailAddress(String emailAddress) { ! ! String oldValue = emailAddress; ! ! this.emailAddress = emailAddress; ! ! firePropertyChangedEvent(quot;emailAddressquot;, oldValue, this.emailAddress); ! }
  • Entities (2/2) entity CustomerInfo ! (id=CUST_ID, sequenceName=CUST_SEQ) { ! ! String emailAddress (notNull, length = 128) ! }
  • DSLs in der Praxis Datenmodellierung Architekturbeschreibung Konfiguration Geschäftsregeln Dokumentation Mapping Navigation auf Objektgraphen Constraints Strickmuster ...
  • Language development has never been so easy.
  • Demo Rezept: quot;Pizza mit Quark-Ölteigquot; Zuaten: 1 Ei 2el Öl 4el Milch 150g Quark 260g Mehl 1x Backpulver Arbeitsschritte: quot;Einfach alles in die Schüssel und umrühren, bis ein fester Teig entsteht. Ausrollen, auf Blech legen und belegen.quot; © itemis AG 2009 – Alle Rechte vorbehalten 16
  • www. .org www.twitter.com/xtext Downloads Documentation Support Stable Version 0.7 im Juni 2009 als Teil von Eclipse Galileo