我目前正在开展一个项目,该项目使用具有简单上下文无关语法的自定义语言。
由于项目的特点,必须在多个平台上使用相同的语言,尤其是移动平台。目前,我正在使用我的小型手写Java解析器(用于 Android 平台)。很快,我将不得不为JavaScript编写基本相同的解析器,以后还可能为C# (Windows Phone) 和Objective C (iOS) 编写解析器。还有一个额外的机会,我还必须为PHP编写它。
我的问题是:有哪些选项可以简化解析器开发过程?我真的必须为每个平台编写基本相同的解析器还是有一种工作强度较低的方法?
从开发过程的角度来看,最好的选择是让我编写一个语法定义,然后自动编译到解析器中。
但是,到目前为止,基本上我发现的唯一跨平台解析器生成器是支持我的两个目标平台(Java 和 C#)的GOLD Parser 。如果您能指出其他选择,那就太好了。
如果您不了解其他跨平台编译器编译器:您是否有提示如何构建代码以实现未来的语言可扩展性?