Я пытаюсь использовать Ragel для реализации простого да/нет fsm. К сожалению, спецификация языка состоит из объединения около тысячи регулярных выражений, причем * операторы появляются один или несколько в большинстве из них. Таким образом, число возможных состояний взрывается, и, похоже, невозможно будет использовать Ragel для генерации fsm для моего языка. Есть ли там инструмент, который может делать то, что мне нужно, или мне нужно подменить подходы? Мне нужно что-то лучше, чем проверка строк ввода в отношении каждого регулярного выражения по очереди. Я мог бы нарезать тысячи регулярных выражений на куски ~ 50 и генерировать fsm для каждого и запускать каждую строку ввода для всех машин, но если есть инструмент, который может обрабатывать такую работу без такого взлома, я бы приятно слышать об этом.злоупотребление ragel, возможно, нужен новый подход/инструмент
Спасибо!
Возможно, если вы создали ragel, сгенерировали машину «goto and switch» и сделали это на C++ и назвали ее с Java, она могла бы использовать меньше оперативной памяти. Машина на основе goto не использует эти большие таблицы. Но разбить его, вероятно, тоже хороший ход :) – matiu