Сабж.
Точнее, мне нужен скорее всего CompileUnit с правильными Location-ами на основе файла *.n.
Все ключевые слова, в том числе и от макросов должны быть определены.
Такая функциональность уже реализована в интеграции к студии и ШарпДевелопу, и каким-то магическим образом, с помощью десятка мутабельных констант с непонятными именами, в nemish.
В коде nemish у меня разобраться не вышло, интеграция к студии слишком большая, интеграцию к Шарпдевелопу почти осилил, но не до конца
«Для чего тебе оно?» — спросит любознательный читатель. Ответом ему будет: «Для правильной реализации браузера кода Nemerle с перекрёстными ссылками.»
Я не претендую на полный ответ, но если бы уважаемые авторы интеграции описали вкратце её архитектуру (особенно Nemerle.Compiler.Utils), я остался бы очень благодарен. Думаю, не только мне интересно будет.
Здравствуйте, catbert, Вы писали:
C>«Для чего тебе оно?» — спросит любознательный читатель. Ответом ему будет: «Для правильной реализации браузера кода Nemerle с перекрёстными ссылками.»
Для этого мало парсинга. Для этого нужна типизация. А как справидливо заметил hardcase для этого нужно пользоваться всем движком интеграции или компилятором.
C>Я не претендую на полный ответ, но если бы уважаемые авторы интеграции описали вкратце её архитектуру (особенно Nemerle.Compiler.Utils), я остался бы очень благодарен. Думаю, не только мне интересно будет.
Вкратце тебе нужно реализовать указанные hardcase-ом интерфейсы (IEngine, IIdeProject, ISource). Для затравки можно поглядеть на
проект тестирующий движок интеграции. Там это сделано, хотя и не в полном объеме.