metaclass: (Default)
[personal profile] metaclass
Сижу пытаюсь соорудить парсер для Scheme. Спотыкаюсь на всяких забубенных правилах для токенов типа того, что после \ идет либо символ либо его числовое представление, хрен его знает как его туда запилить.
From: (Anonymous)
Это можно представить как символ с именем-числом и соответствующим ему значением-числом.

Vitaly_K
From: [identity profile] metaclass.livejournal.com
О, как вариант допустимо.
Но я уже там припилил варианты символов через регулярное выражение.
From: [identity profile] k-und-k.livejournal.com
Это менее универсальное решение, т.к. не покрывает строковых констант. А первое решение - покрывает.

Vitaly_K

Можно вопрос?

Date: 2008-07-31 12:54 pm (UTC)
From: [identity profile] Озадаченный медведь (from livejournal.com)
А куда собираетесь встраивать парсер? Или это просто упражнение?

Vitaly_K

Re: Можно вопрос?

Date: 2008-07-31 01:38 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Ничего более адекватного в качестве шаблонов для генератора кода не пришло в голову.
На самом деле на полноценный интерпретатор схемы у меня ни времени, ни сил не хватит, но для подстановки значений в шаблон вроде бы хватит и того урезанного куска, который я уже сделал.

Re: Можно вопрос?

Date: 2008-07-31 03:21 pm (UTC)
From: [identity profile] Озадаченный медведь (from livejournal.com)
Может, я чего-то не понимаю, но разве не проще взять готовый интерпретатор лиспа или схемы, наработать на них словарь для генерации кода нужного языка, а потом писать шаблоны уже на схеме/лиспе?

Vitaly_K

Re: Можно вопрос?

Date: 2008-07-31 03:52 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Проще, если бы не было потенциальной необходимости использовать это дело в окружении, где ничего кроме .NET выполняться не может.

Вероятно, можно было бы портировать какой нибудь из существующий интерпретаторов на Managed C++, но я тогда закопаюсь окончательно и до итогового результата - генерации кода из моделей объектов доберусь еще не скоро :)

Так есть же Scheme для .NET

Date: 2008-07-31 04:06 pm (UTC)
From: [identity profile] Озадаченный медведь (from livejournal.com)
Вот, к примеру:
http://www-sop.inria.fr/mimosa/fp/Bigloo/
http://www.yaya.fr/Bigloo/

Vitaly_K

Re: Так есть же Scheme для .NET

Date: 2008-07-31 04:57 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Угу. Если бы оно еще собиралось под виндой без плясок с бубном. makefile ссылается на файл, которого в исходниках нет, и который создается, похоже, скриптом configure, для запуска которого нужен Cygwin.
Проект для Visual Studio тоже не собирается.
К сожалению, мне гораздо проще сделать самодельную урезанную версию интерпретатора, чем разбираться, почему не билдится полноценный интерпретатор и как его потом прикрутить к моему проекту. Это, кстати, проблема с очень многими opensource проектами для программистов - их авторы предполагают, что у тех, кто пользуется их проектами есть очень много времени и опыт для того, чтобы разбираться с инструментами. А обычно это не так, поскольку промышленная разработка требует работы, а не изучения инструментов :)

Re: Так есть же Scheme для .NET

Date: 2008-07-31 06:23 pm (UTC)
From: [identity profile] Озадаченный медведь (from livejournal.com)
Не спорю. Но разве нету других версий?
Вот, к примеру: http://www.codeplex.com/IronScheme

Vitaly_K

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 23rd, 2025 01:01 am
Powered by Dreamwidth Studios