Есть ли способ составить отдельно скомпилированные грамматики boost :: spirit :: qi? - PullRequest
0 голосов
/ 26 июня 2011

Boost Spirit грамматики синтаксического анализатора Ци прекрасны, и я все время использую их для мелочей.Однако бывают случаи, когда я хотел бы иметь возможность составлять отдельные грамматики.

Это легко сделать все-в-одном в одной компиляции, включив # соответствующие грамматики и соединив их вместе.Однако, это заставляет времена компиляции начинать проходить крышу.Есть и другие недостатки.

Есть ли способ составить отдельно скомпилированные грамматики?Другими словами, я хотел бы определить интерфейс грамматики в заголовочном файле, реализовать шаблон и его создание для конкретного итератора в отдельном модуле компиляции, а затем иметь возможность использовать грамматику из другого, не имея полного шаблонаопределение видно во время компиляции.Другими словами, я хочу иметь возможность использовать грамматику в правиле косвенно .

Возможно ли такое?Если да, то как бы это было?

1 Ответ

1 голос
/ 26 июня 2011

Я не думаю, что это что-то специфическое для Spirit, а скорее C ++ 101. Если вам нужно составить несколько грамматик, вам нужно включить соответствующие заголовочные файлы, определяющие грамматики, которые вы хотите использовать при составлении.Возможно, вы захотите разделить компиляцию конструктора грамматики на отдельный блок компиляции.Посмотрите примеры калькулятора Spirit (mini_c и другие), чтобы увидеть, как это можно сделать.Это будет держать ваши времена компиляции в страхе.

...