Java 滥用ragel,可能需要新的方法/工具

Java 滥用ragel,可能需要新的方法/工具,java,regex,regular-language,state-machine,ragel,Java,Regex,Regular Language,State Machine,Ragel,我试图使用Ragel实现一个简单的是/否fsm。不幸的是,语言规范由大约一千个正则表达式组成,大多数正则表达式中都有*运算符出现一次或多次。因此,可能的状态数量激增,似乎不可能使用Ragel为我的语言生成fsm。是否有一个工具可以满足我的需要,或者我应该交换方法?我需要比依次检查每个正则表达式的输入字符串更好的东西。我可以把上千个正则表达式分成大约50个块,并为每个块生成一个fsm,然后在所有机器上运行每个输入字符串,但是如果有一个工具可以处理这种工作而不需要这样的技巧,我很高兴听到这个消息 谢

我试图使用Ragel实现一个简单的是/否fsm。不幸的是,语言规范由大约一千个正则表达式组成,大多数正则表达式中都有*运算符出现一次或多次。因此,可能的状态数量激增,似乎不可能使用Ragel为我的语言生成fsm。是否有一个工具可以满足我的需要,或者我应该交换方法?我需要比依次检查每个正则表达式的输入字符串更好的东西。我可以把上千个正则表达式分成大约50个块,并为每个块生成一个fsm,然后在所有机器上运行每个输入字符串,但是如果有一个工具可以处理这种工作而不需要这样的技巧,我很高兴听到这个消息


谢谢

好吧,为了防止Ragel占用所有可用内存,我最终将机器拆分为多台机器-事实上,我不得不将机器拆分为两个单独的Ragel文件,因为生成的java类中有太多来自生成的巨大状态表的常量。我仍然有兴趣听到一个更好的解决方案,如果有人有一个

>如果你让RaGEL生成“Goto和Switter”的机器,并且在C++中调用它并从java调用它,它可能使用更少的RAM。基于goto的机器不使用那些大桌子。但拆分可能也是一个好的举措:)