Мне нужно проанализировать что-то во время выполнения моего плагина eclipse (созданного с помощью Xtext), который затем будет обрабатываться так, как если бы пользователь ввел его, но фактически не всплывает и не отображается для пользователя как ввод самого себя.
Например, у меня есть этот ввод:
for "i" from 1 to 3 do {};
Моя проблема с этим вводом заключается в том, что переменная i не объявлена как обычное объявление с «=», но мне нужно, чтобы синтаксический анализатор сказал, что это одно. Итак, я хочу, чтобы парсер анализировал
i = 1;
поэтому он распознает его как обычное объявление и разрешает перекрестные ссылки на него.
Приветствие Крзмбрзл
РЕДАКТИРОВАТЬ:
В общем, я хочу добавить оператор i=1; к АСТ
Я просто хочу иметь поддержку eclipse для существующего языка, поэтому я не пишу ни интерпретатор, ни генератор. Проблема в том, что когда у меня есть цикл for, как указано выше, фактический интерпретатор этого языка объявляет переменную i (или, как бы то ни было, она названа в заголовке цикла), и поэтому эта переменная доступна в теле цикла. В моем случае мой синтаксический анализатор не распознает i как переменную, потому что он знает только, что объявление выполняется через "=", поэтому я не могу использовать i в теле цикла (если я попытаюсь, я получаю сообщение об ошибке, что объявление i не может быть решен). Вот почему я хочу добавить это объявление вручную при создании такого цикла. Мне не нужно беспокоиться о каких-либо сложностях компиляции или интерпретации, потому что я не делаю этого сам. Как я уже сказал, я просто хочу иметь все классные функции eclipse для этого языка.
i = 1;
к AST синтетическим путем. - person Joko   schedule 01.06.2015