Сижу пытаюсь соорудить парсер для Scheme. Спотыкаюсь на всяких забубенных правилах для токенов типа того, что после \ идет либо символ либо его числовое представление, хрен его знает как его туда запилить.
Ничего более адекватного в качестве шаблонов для генератора кода не пришло в голову. На самом деле на полноценный интерпретатор схемы у меня ни времени, ни сил не хватит, но для подстановки значений в шаблон вроде бы хватит и того урезанного куска, который я уже сделал.
Может, я чего-то не понимаю, но разве не проще взять готовый интерпретатор лиспа или схемы, наработать на них словарь для генерации кода нужного языка, а потом писать шаблоны уже на схеме/лиспе?
Проще, если бы не было потенциальной необходимости использовать это дело в окружении, где ничего кроме .NET выполняться не может.
Вероятно, можно было бы портировать какой нибудь из существующий интерпретаторов на Managed C++, но я тогда закопаюсь окончательно и до итогового результата - генерации кода из моделей объектов доберусь еще не скоро :)
Угу. Если бы оно еще собиралось под виндой без плясок с бубном. makefile ссылается на файл, которого в исходниках нет, и который создается, похоже, скриптом configure, для запуска которого нужен Cygwin. Проект для Visual Studio тоже не собирается. К сожалению, мне гораздо проще сделать самодельную урезанную версию интерпретатора, чем разбираться, почему не билдится полноценный интерпретатор и как его потом прикрутить к моему проекту. Это, кстати, проблема с очень многими opensource проектами для программистов - их авторы предполагают, что у тех, кто пользуется их проектами есть очень много времени и опыт для того, чтобы разбираться с инструментами. А обычно это не так, поскольку промышленная разработка требует работы, а не изучения инструментов :)
В данном конкретном случае с числом
(Anonymous) 2008-07-30 11:23 am (UTC)(link)Vitaly_K
Re: В данном конкретном случае с числом
Но я уже там припилил варианты символов через регулярное выражение.
Re: В данном конкретном случае с числом
Vitaly_K
Можно вопрос?
Vitaly_K
Re: Можно вопрос?
На самом деле на полноценный интерпретатор схемы у меня ни времени, ни сил не хватит, но для подстановки значений в шаблон вроде бы хватит и того урезанного куска, который я уже сделал.
Re: Можно вопрос?
Vitaly_K
Re: Можно вопрос?
Вероятно, можно было бы портировать какой нибудь из существующий интерпретаторов на Managed C++, но я тогда закопаюсь окончательно и до итогового результата - генерации кода из моделей объектов доберусь еще не скоро :)
Так есть же Scheme для .NET
http://www-sop.inria.fr/mimosa/fp/Bigloo/
http://www.yaya.fr/Bigloo/
Vitaly_K
Re: Так есть же Scheme для .NET
Проект для Visual Studio тоже не собирается.
К сожалению, мне гораздо проще сделать самодельную урезанную версию интерпретатора, чем разбираться, почему не билдится полноценный интерпретатор и как его потом прикрутить к моему проекту. Это, кстати, проблема с очень многими opensource проектами для программистов - их авторы предполагают, что у тех, кто пользуется их проектами есть очень много времени и опыт для того, чтобы разбираться с инструментами. А обычно это не так, поскольку промышленная разработка требует работы, а не изучения инструментов :)
Re: Так есть же Scheme для .NET
Вот, к примеру: http://www.codeplex.com/IronScheme
Vitaly_K