Извиняюсь за задание такого открытого вопроса, но я хочу эмулировать некоторую синтетическую сборку (не для реального процессора) в C ++, и я хочу отделить сборку от реализации симулятора, на котором он работает.
Написание DSL или подобного похоже на очевидный путь, и у меня есть некоторый опыт этого, когда я сделал нечто подобное (фактически смесь DSL и интерпретатора) в Groovy.
Boost :: proto кажется очевидным выбором, но я нахожу документацию совершенно непроницаемой, хотя, как я уже сказал, я немного разбираюсь в основах.
Существует ли какое-либо альтернативное учебное пособие или подобное, которое объясняет — таким образом, что основное внимание уделяется практичности написания DSL, а не теории AST и т. Д. — как это сделать. Или есть альтернатива? Прямо сейчас я застрял с реализацией инструкций по сборке как методов классов, которые составляют симулятор, что делает их очень тесно связанными и чрезвычайно трудными для поддержки базы кода.
Я второй комментарии, предполагающие, что вы можете иметь плохо подобранный XY-проблема Вот.
Между тем, лучшее введение в прикладная Поддержка Proto для встроенного eDSL была в блоге Дейва Абрахамса cpp-next.com. К сожалению, это ушло в эфир.
Эрик Ниблер, автор Boost Proto, предложил отправить людям необработанные дампы этих страниц по запросу:
Сообщество C ++ страдает от потери сайта cpp-next.com и всего отличного контента, который когда-то был там размещен. За последние 2 месяца я получил много вопросов как о сайте, так и о судьбе моей серии статей «Expressive C ++». В ответ я буду публиковать свои старые статьи в этом блоге. Но я занята, и это займет время. В то же время, если у вас острая необходимость в удобочитаемом введении в Boost.Proto и встраиваемые языки, специфичные для предметной области, в C ++, и вы не против читать необработанные уценки, напишите мне. Я пришлю тебе то, что у меня есть.
http://ericniebler.com/2014/05/24/cpp-next-com-and-the-expressive-cxx-series-2/
Между тем у waybackmachine есть кое-что из этого, например:
*