Я хотел бы смочь получить AST для данной программы OCaml (я хотел бы обойти AST и генерировать оснащенную версию кода или сделать некоторое преобразование, например). Какой-либо из инструментов OCaml поддерживает эту функциональность?
camlp4 - отличный вариант. Вот мотивирующий пример . Документов немного - правда, но можно пробиться к чтению вики, существующих примеров, руководств и, возможно, даже исходников camlp4.
Вы ищете [camlp4] [1]. Раньше я не использовал camlp4, поэтому не могу засвидетельствовать его достоинства в качестве программного обеспечения. Я слышал о людях, использующих camlp5 [ http://pauillac.inria.fr/~ddr/camlp5/] , который, согласно википедии, имеет лучшую документацию, чем текущая версия camlp4.