Здравствуйте, xeno.by, Вы писали:
XB>Добрый день! Возник вопрос: как мне вывести на экран некоторый AST во всех деталях? Я видел, что в базовых классах выражений перегружен метод ToString(), но он дает слишком мало информации для моего случая. Хотелось бы получить что-то вроде E_call(E_ref("f"), [Parm(E_ref("x"))] (как в разделе 9.1 статьи Метапрограммирование в NemerleАвтор(ы): Kamil Skalski, Michal Moskal и Pawel Olszta
Дата: 23.05.2006
Пример C++ показывает, что индустрии нужны системы метапрограммирования – даже достаточно причудливая система шаблонов широко используется для вычислений во время компиляции. Эта статья является исследованием возможного внедрения техники метапрограммирования в индустриальную среду в более чистой форме. Мы, таким образом, фокусируемся на том, чтобы сделать нашу систему легкой в использовании для программистов, как пишущих, так и использующих макросы.
).
Если нужны детали, то имеет смысл не печатеть АСТ, а рассматривать его под отладчиком. Там можно все что угодно увидеть. Вставляешь в макрос assert2(flase), жмешь Retry в появившемся окне делаешь шаг, чтобы выйти из контекста assert-а и в окне Locals или Watch1 смотришь что в переменных.