2013-06-11 3 views
0

Я очень потерял работу с тем, как работает импорт глобальной области. Я пишу парсер с xtext для языка структуры скважины, и я не могу зависеть от рабочего пространства или концепций проекта. На моем языке у меня есть инструкции, которые могут иметь относительные или абсолютные пути другого файла. Мне нужно иметь возможность ссылаться на объекты, определенные в этом другом файле. Я попытался использовать importURI, но он не работает. Все, что я попытался было добавить правило:xtext importURI внешний файл

Include: 
    'INCLUDE' '=' importURI=STRING ';' 
; 

и изменил файл MWE2 в этих краях:

// scoping and exporting API 
       fragment = scoping.ImportURIScopingFragment {} 
       // fragment = exporting.SimpleNamesFragment {} 

       // scoping and exporting API 
       fragment = scoping.ImportNamespacesScopingFragment {} 
       fragment = exporting.QualifiedNamesFragment {} 

Но это не имеет никакого эффекта в моем редакторе. Я все еще могу ссылаться на объекты, определенные в каждом файле с тем же расширением, не имея операторов include, и я до сих пор не могу включать файлы вне проекта.

ответ

0

Решение заключалось в том, чтобы удалить эти два из рабочего процесса.

// provides the necessary bindings for java types integration 
// fragment = types.TypesGeneratorFragment {} 

// generates the required bindings only if the grammar inherits from Xbase 
//fragment = xbase.XbaseGeneratorFragment {} 
0

Вам необходимо удалить ImportNamespacesScopingFragment. Он настраивает ваш язык на использование областей, основанных на имени, а не на основе файлов.

Вы также можете захотеть выкопать в IContainer.Manager, который по умолчанию настроен на реализацию на основе рабочей области Eclipse и концепции проекта.

+0

Мне на самом деле нужен обзор URI и пространства имен, и он отлично работает. – rozagh

Смежные вопросы