2016-12-29 4 views
-1

Je suis étudiante et je poursuis actuellement ma licence en informatique et en génie logiciel. Par curiosité, j'ai commencé à passer mon temps libre sur DSL et j'ai acheté le livre "Implementing Domainspecific Languages ​​with XText and Xtend" de Lorenzo Bettini.XTend Deuxième application Eclipse non mise à jour

Dans le livre, il y a un exemple que j'essaie de réimplémenter pour comprendre les bases de XTend. Mais j'ai eu un problème. L'exemple est un peu DSL qui est généré et ensuite vous deviez ouvrir une nouvelle application Eclipse et utiliser cette liste DSL. Il est mentionné dans le livre que si je change le DSL de toute façon, puis aller dans le fichier avec la fin ".mwe2" qui générée par XTend et exécuter cela comme MWE2 WORKFLOW, il devrait être automatiquement changé dans la deuxième application, en que la DSL est utilisée.

Mais ma deuxième application n'est pas mise à jour. J'ai d'abord eu une grammaire simple qui m'a permis d'utiliser des tableaux sans entrée entre les parenthèses e.G. Entité [] myEntity; et ensuite il a été montré dans l'exemple comment changer la grammaire pour obtenir une syntaxe comme e.G. Entité [10] myEntity ;. J'ai implémenté en conséquence mais comme mentionné ci-dessus le deuxième IDE ne met pas à jour.

J'ai également vérifié qu'Eclipse est activé pour la génération automatique.

Est-ce que quelqu'un sait ce que mon erreur pourrait être?

(Je ne sais pas si je suis autorisé à poster l'exemple du livre ici.)

+0

de quel chapitre parlez-vous? Êtes-vous sûr de redémarrer l'éclipse d'exécution (la seconde) après avoir réexécuté le workflow? –

+0

Exactement le chapitre 2 après le workflow MWE2. Je l'avais compris comme suit. Après une modification de la grammaire et l'exécution du fichier de flux de travail mwe2, la deuxième application éclipse est mise à jour automatiquement. Et puis je peux déjà travailler avec la grammaire mise à jour. Bien sûr, si je ferme la deuxième application et la redémarre, elle se met à jour. Puis, malheureusement, c'était juste un malentendu. – xXRanaXx

+0

pas besoin de fermer et de redémarrer l'eclipse seconf –

Répondre

1

Utilisation de la deuxième instance Eclipse pour tester votre DSL est une façon préférée. À partir de la deuxième instance Eclipse avec le mode de débogage d'Eclipse, certaines modifications de code sont automatiquement propagées dans votre seconde instance de test en cours d'exécution.

enter image description here

Mais, il y a des limites pour la propagation de code change dans l'instance Eclipse en cours d'exécution: Toute modification sur toute signature de classe ne peuvent pas être propagées. Les nouvelles classes ne peuvent pas être propagées. Les classes supprimées ne peuvent pas être déchargées.

Les changements à la grammaire qui nécessitent de régénérer la langue changeront les signatures de classe et créeront/supprimeront des classes. Cela signifie que vous devez redémarrer la deuxième instance Eclipse après avoir régénéré la langue. Même si vous ajoutez/supprimez des classes ou des méthodes, vous devez redémarrer l'application Eclipse. Si je me souviens bien, Eclipse ouvrira une boîte de dialogue d'information qui vous demandera de redémarrer la seconde instance d'Eclipse.