злоупотребляя ragel, возможно, нужен новый подход / инструмент - PullRequest
2 голосов
/ 22 июня 2010

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

Спасибо!

1 Ответ

1 голос
/ 23 июня 2010

Ну, в итоге я разбил машину на несколько машин, чтобы Ragel не съел всю доступную память - фактически мне пришлось разбить машину на пару отдельных файлов Ragel, потому что сгенерированный класс Java имелслишком много констант в нем из сгенерированных огромных таблиц состояний.Мне все еще интересно услышать лучшее решение для этого, если у кого-нибудь есть такое!

...