解析简单表达式时,ocamlyacc/menhir的轻量级替代方案是什么?

解析简单表达式时,ocamlyacc/menhir的轻量级替代方案是什么?,ocaml,Ocaml,我有一个非常简单的代数表达式的数据类型(只有标识符、加法和乘法),我想将字符串(如“a+b*(c+d)”解析为这种类型。我的默认冲动是使用Ulex+Menhir,但我想知道对于这样一个简单的问题是否有更简单的解决方案。有什么建议吗?流解析器 还有扫描仪的Genlex,你可以自己动手。你想办什么就办什么。请注意,该样式功能性不强,基本上取自。等效的ocamlex/ocamlyacc解析器将更加简洁易读(性能?不确定!)。您也可以手工编写递归下降解析器。这与流解析器没有太大区别,但不需要campl4

我有一个非常简单的代数表达式的数据类型(只有标识符、加法和乘法),我想将字符串(如“a+b*(c+d)”解析为这种类型。我的默认冲动是使用Ulex+Menhir,但我想知道对于这样一个简单的问题是否有更简单的解决方案。有什么建议吗?

流解析器


还有扫描仪的Genlex,你可以自己动手。你想办什么就办什么。请注意,该样式功能性不强,基本上取自。等效的ocamlex/ocamlyacc解析器将更加简洁易读(性能?不确定!)。

您也可以手工编写递归下降解析器。这与流解析器没有太大区别,但不需要campl4。如果您关心向用户提供有意义的解析错误消息,那么这肯定是正确的做法。如果您关心解析器的长期维护,请远离流解析器。