Языковый фрэймворк
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.03.12 21:32
Оценка: 75 (6)
http://www.rsdn.ru/forum/decl/4679703.1.aspx
Автор: VladD2
Дата: 29.03.12
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Языковый фрэймворк
От: _Obelisk_ Россия http://www.ibm.com
Дата: 30.03.12 20:59
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>http://www.rsdn.ru/forum/decl/4679703.1.aspx
Автор: VladD2
Дата: 29.03.12


Что-то не вижу механизмов восстановления после ошибок и репорта ошибок при парсинге. Позиции в потоке где-нибудь запоминаются ? Отдельно лексер вытащить можно ? И чем все это отличается от генераторов парсеров аля ANTLR и прочих подобных штук? В том же Eclipse в этой области довольно много всего наворотили.



Душа обязана трудиться! (с) Н.Заболоцкий.
Re[2]: Языковый фрэймворк
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.03.12 21:36
Оценка:
Здравствуйте, _Obelisk_, Вы писали:

_O_>Что-то не вижу механизмов восстановления после ошибок и репорта ошибок при парсинге.


Они сейчас прорабатываются. Главная проблема — парсер поддерживает откаты. В их условиях диагностика не простая задача.

Для поддержки ошибочного кода в каждой ветке дерева разбора добавляются специальные наследники которые позволяют сохранить информацию об ошибочном коде (не соответствующем грамматике).

_O_> Позиции в потоке где-нибудь запоминаются ?


Везде и тотально. Даже для токенов. Каждая ветка дерева разбора является наследником класса Location, который хранит позицию начала ветки и позицию конца (в виде смещения в символах от начала файла).

Кроме того в каждой ветке дерева разбора хранятся местоположения всех токенов (в виде отдельных полей и метода возвращающего массив описаний).

_O_> Отдельно лексер вытащить можно ?


Нет. Его нет в принципе. Каждое правило имеет свой микро-лексер.

_O_> И чем все это отличается от генераторов парсеров аля ANTLR и прочих подобных штук?


Тотальной расширяемостью (в том числе и динамической), скоростью работы, интегрированностью с другими сервисами (вывод типов, трансформация кода, области видимости, таблица символов, бэеэндв). В общем, генератор парсеров против полноценной системы создания всего необходимого для поддержки языков.

_O_> В том же Eclipse в этой области довольно много всего наворотили.


Eclipse — это IDE. Как он связан с тем же ANTLR?

Одна из задач Н2 автоматическая поддержка IDE, для языков реализованных с его помощью. Где есть подобные решения?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Языковый фрэймворк
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.03.12 21:42
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>http://www.rsdn.ru/forum/decl/4679703.1.aspx
Автор: VladD2
Дата: 29.03.12


Просьба отвечать (задавать вопросы) в теме по ссылке.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.