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

-- 
ak

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

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


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

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

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

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

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

--  
Moscow.pm mailing list
[email protected] | http://moscow.pm.org
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить