XText с использованием информации о типе из внешней модели EMF

#flash-builder #xtext #eclipse-emf-ecore

#flash-builder #xtext #eclipse-emf-ecore

Вопрос:

Я изучаю возможность использования XText для расширения DSL на язык, который я использую ежедневно и который имеет некоторые очевидные недостатки (AS3, через FlashBuilder).

У меня работает система генерации грамматики и кода, в которой приведенное ниже объявление генерирует класс значений с конструктором, переменными уровня класса и геттерами и т. Д.

 class Person (name: String, age: int)
  

Это нормально, но я бы хотел, чтобы типы, определенные в библиотеке Flash Player, а также типы, которые я определяю в проектах пользователей, были доступны в моем расширении DSL. В приведенном выше коде оба String и int исходят из собственной библиотеки flash.

Я предполагаю, что Flash Builder использует ядро EMF внутри для представления как любых включенных библиотек (swcs), так и любых типов, которые я определяю в своих проектах. Если это так, мой вопрос:

 How can I access the EMF model of FLash Builder?
  

Если модели EMF нет, я полагаю, мне придется самому анализировать library.swc и исходный код моих проектов.

 Is the Xtend language intended to preform these sort of native filesystem tasks?
  

Спасибо

Ответ №1:

Предположим, что Flash Builder поставляется с метамоделью на основе EMF. тогда «вещь», которую вам нужно сделать, это реализовать IResourceServiceProvider. Я писал в блоге о том, как делать то же самое для моделей uml: http://christiandietrich.wordpress.com/2011/07/17/xtext-2-0-and-uml /

и нет: xtend — это современный язык программирования, который компилируется в Java и имеет хорошую поддержку шаблонов.