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

Artur Kh kh.artur на gmail.com
Ср Янв 14 01:46:12 PST 2015


Если я правильно понимаю, то возможно вам нужно что-то вроде этого: https://metacpan.org/pod/Marpa::R2
-- 
ak

From: Харпалёв Иван <ivan.kharpalev на gmail.com>
Reply: Moscow.pm group <moscow-pm на pm.org>>
Date: 14 January 2015 at 11:40:40
To: Moscow.pm group <moscow-pm на pm.org>>
Subject:  Re: [Moscow.pm] Синтаксический анализ на Perl. Транслятор.  

что-то вроде "f(1,2) + 3"  в {function=>'+', args=>[{function=>'f', args=>[1, 2]}, 3]}


14 января 2015 г., 12:34 пользователь Харпалёв Иван <ivan.kharpalev на gmail.com> написал:
Доброго времени, могучий MoscowPM!

Сейчас пишу небольшой язык.
То есть пишу транслятор из него в awk и С. (Сначала в awk, чтобы потренироваться, а потом в C, там типизация, там сложнее). 

Когда язык был совсем примитивный, я его парсил регэкспами и по рабоче-крестьянски собирал код на целевом языке.
Но язык подростает. И рефакторить оказывается очень печально.

Как я понимаю весь процесс работы транслятора состоит из стандартных стадий, например:
токенизация
построение дерева разбора
сбор кода на целевом языке из полученного описания.

В общем тория у меня хромает и очень интересна. Но первым делом практика.
Скажите, чем строить дерево синтаксического разбора?
что-то вроде 

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


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