Грамматики парсера Boost Spirit Qi замечательны, и я все время использую их для мелких вещей. Однако бывают случаи, когда я хотел бы иметь возможность составлять отдельные грамматики.
Это легко сделать все-в-одном в одном компиляторе, #включив соответствующие грамматики и соединив их вместе. Однако из-за этого время компиляции зашкаливает. Есть и другие недостатки.
Есть ли способ составить отдельно скомпилированные грамматики? Другими словами, я хотел бы определить интерфейс грамматики в заголовочном файле, реализовать шаблон и его создание для конкретного итератора в отдельной единице компиляции, а затем иметь возможность использовать грамматику из другого, не имея полного шаблона. определение видно во время компиляции. Другими словами, я хочу иметь возможность использовать грамматику в правиле косвенно.
Возможно ли такое? Если да, то как бы это сделать?