Я анализирую буфер, используя правило x3, которое имеет много альтернативных подправил.
На самом деле, у меня есть данные с разных устройств GPS, и мой основной синтаксический анализатор выглядит так:
auto gps_r = device1_r | device2_r | device3_r;
bool ok = x3::parse(...,gps_r,..);
Я понимаю, что могу реализовать параллельный вызов x3::parse()
для входных данных и для каждого правила устройства. Но это может быть неприменимо для некоторых рекурсивных разборов (скажем, SAX DOM-разбор).
Мой вопрос носит более теоретический характер: есть ли какие-нибудь попытки сделать Alternative Parser асинхронным (скажем, с использованием boost.coroutines2) для параллельного анализа?