Злоупотребляя ragel, возможно, нужен новый подход / инструмент
Я пытаюсь использовать Ragel для реализации простого да / нет ФСМ. К сожалению, языковая спецификация состоит из объединения около тысячи регулярных выражений, в большинстве из которых операторы * появляются один или несколько раз. Таким образом, число возможных состояний увеличивается, и кажется, что использовать Ragel для генерации fsm для моего языка будет невозможно. Есть ли инструмент, который может делать то, что мне нужно, или я должен поменяться подходами? Мне нужно что-то лучше, чем проверка входных строк по каждому регулярному выражению по очереди. Я мог бы разделить тысячу регулярных выражений на куски ~50 и сгенерировать fsm для каждого, и запустить каждую входную строку для всех машин, но если есть инструмент, который может справиться с такой работой без такого взлома, я был бы приятно слышать об этом.
Спасибо!
1 ответ
Что ж, в итоге я разбил машину на несколько машин, чтобы Ragel не съел всю доступную память - фактически мне пришлось разбить машину на пару отдельных файлов Ragel, потому что сгенерированный класс Java имел слишком много констант в нем из огромных таблиц состояний, генерируемых. Мне все еще интересно услышать о лучшем решении для этого, если у кого-нибудь есть такое!