[Moscow.pm] Синтаксический анализ на Perl. Транслятор.

Анатолий Гришаев 0body0 на rambler.ru
Ср Янв 14 09:19:49 PST 2015


Для того, чтобы использовать инструменты нужна грамматика и однозначная 
+ нужно для любого правила указать, как ты из AST частей правила собираешь
AST целого.
Собственно это и есть семантика.
Есть модули которые сразу могут построить AST в своем виде искать нужно 
в  Parse:: на CPAN

Т.е. самое сложное написать грамматику, которую эти инструменты смогут 
переварить.


14.01.2015 12:40, Харпалёв Иван пишет:
> что-то вроде "f(1,2) + 3"  в {function=>'+', args=>[{function=>'f', 
> args=>[1, 2]}, 3]}
>
>
> 14 января 2015 г., 12:34 пользователь Харпалёв Иван 
> <ivan.kharpalev на gmail.com <mailto:ivan.kharpalev на gmail.com>> написал:
>
>     Доброго времени, могучий MoscowPM!
>
>     Сейчас пишу небольшой язык.
>     То есть пишу транслятор из него в awk и С. (Сначала в awk, чтобы
>     потренироваться, а потом в C, там типизация, там сложнее).
>
>     Когда язык был совсем примитивный, я его парсил регэкспами и по
>     рабоче-крестьянски собирал код на целевом языке.
>     Но язык подростает. И рефакторить оказывается очень печально.
>
>     Как я понимаю весь процесс работы транслятора состоит из
>     стандартных стадий, например:
>     токенизация
>     построение дерева разбора
>     сбор кода на целевом языке из полученного описания.
>
>     В общем тория у меня хромает и очень интересна. Но первым делом
>     практика.
>     Скажите, чем строить дерево синтаксического разбора?
>     что-то вроде
>
>
>
>

----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20150114/55582277/attachment.html>


Подробная информация о списке рассылки Moscow-pm