2013-06-17 2 views
0

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

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

Теперь у меня есть вопрос о переменных окружения. Поскольку эта грамматика разработана ранее, и есть много тестовых файлов, основанных на этой грамматике, мне нужно заставить мой синтаксический анализатор xtext поддерживать все, что у нас было раньше. Одной из них является возможность импорта другого файла с использованием переменных окружения в пути.

Я попытался определить переменные среды для проекта, а затем связать файлы на основе этих переменных, но проблема в строке importURI не получает переменную окружения.

Предположим, у меня есть файл 1, определенный в проекте, который имеет ссылку на файл, чтобы понравиться:

INCLUDE = "$ {var1} /file2.foo";

VAR1 определен и файл2 связан с проектом на основе VAR1.

Это не работает, к сожалению, знаете ли вы, как я могу это решить?

ответ

0

Я решил эту проблему, перезаписав метод ImportUriGlobalScopeProvider.getImportUris.

Проблема была importURI работает над файлами, связанными с рабочей областью или проектом. Таким образом, в моем случае я связал файлы автоматически с фиктивным проектом в методе getimportUris.