Объем работы небольшой. Задача четка. Так что могут справиться и не очень подготовленные товарищи.
Задача формулируется так. Надо создать утилиту аналогичную cs2n. Задачи утилиты творческое преобразование кода C# 4.0 в код Nemerle. В том числе преобразование файлов и конвертация содержимого клипборда.
]парсеру C#[/url], получать AST немерла, преобразовывать его в Nemerle-код и записывать его в другой файл (или помещать в клипборд).
Основная проблема заключается в том, что имеющиеся в составе Nemerle прети-принтер выдает не очень качественный результат. Так что в процессе работы придется доработать его напильником. При этом улучшится код генерируемые макросами немерла (для оладки).
В общем, добро пожаловать добровольцам!
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Требуются помощники для создания конвертера C# -> Nemerl
Здравствуйте, VladD2, Вы писали:
VD>Основная проблема заключается в том, что имеющиеся в составе Nemerle прети-принтер выдает не очень качественный результат.
Влад, я правильно понимаю, что это главная рабочая лошадка конвертера? То есть АСТ Немерла скармливается принтеру, а тот уже выводит весь код?
Re[2]: Требуются помощники для создания конвертера C# -> Nem
Здравствуйте, matumba, Вы писали:
M>Влад, я правильно понимаю, что это главная рабочая лошадка конвертера? То есть АСТ Немерла скармливается принтеру, а тот уже выводит весь код?
Я не стал бы говорить, что что-то там главное. Скорее главным можно назвать парсер и корвертер из АСТ Шарпа в АСТ Немерла. А прети-принтер — это стандартная возможность Немерлового АСТ. Он используется для отображения АСТ в отладчике макросов при отладке и при генерации фэйк-кода для отладки макросов.
Присмотрелся к картинке. Она вообще какая-то странная. Если хит для фукнции показывается, значит она таки есть. Но сообщение об ошибке говорит об обратном.
M>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Требуются помощники для создания конвертера C# -> Nem
Здравствуйте, matumba, Вы писали:
M>И что с этим делать?
Если ты ставил компилятор с PowerPack, то компилятор подхватывает некорректную библиотеку.
Удали Nemerle.Peg.dll, CSharpParser.dll, CSharpToNemerle.dll из каталога Program Files\Nemerle.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[5]: Требуются помощники для создания конвертера C# -> Nem
Здравствуйте, hardcase, Вы писали:
H>Если ты ставил компилятор с PowerPack, то компилятор подхватывает некорректную библиотеку. H>Удали Nemerle.Peg.dll, CSharpParser.dll, CSharpToNemerle.dll из каталога Program Files\Nemerle.
Yes! Сработало. Эту багу как-то починят? Всё-таки дистрибутив, в нём всё должно быть отточено.
Кстати, пришлось переименовать CSharpParser.sln в CSharpParser.nsln
Re[6]: Требуются помощники для создания конвертера C# -> Nem
Здравствуйте, VladD2, Вы писали:
M>>Yes! Сработало. Эту багу как-то починят? Всё-таки дистрибутив, в нём всё должно быть отточено.
VD>Тут нет бага. Ты сам смешал сборки разных версий.
И это мы будем объяснять каждому, кто поставил компилятор? Напишите хотя бы предупреждение, что ли... — компилятор использует такие-то библиотеки, они разные и вызывают такие-то проблемы.
Re[8]: Требуются помощники для создания конвертера C# -> Nem
Здравствуйте, matumba, Вы писали:
M>И это мы будем объяснять каждому, кто поставил компилятор? Напишите хотя бы предупреждение, что ли... — компилятор использует такие-то библиотеки, они разные и вызывают такие-то проблемы.
Вообще не каждый пользователь компилятора занимается разработкой этого компилятора и сопутствующих библиотек.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[8]: Требуются помощники для создания конвертера C# -> Nem
Здравствуйте, matumba, Вы писали:
M>И это мы будем объяснять каждому, кто поставил компилятор? Напишите хотя бы предупреждение, что ли... — компилятор использует такие-то библиотеки, они разные и вызывают такие-то проблемы.
Это не так просто. Компилятор запускается в отдельном процессе (автономно). Интеграция работает в другом. Причем в следствии борьбы с блокировками сборок и их перезагрузки интеграция имеет несколько отличный механизм поиска сборок.
При использовании инсталлированных версий компилятора и библиотек таких проблем не возникнет.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.