我一直在开发一种脚本语言,它将java.awt.Graphics
类中的方法移植到类似的命令中
setcolor_0,127,214,255 //R,G,B,Alpha或者
fillrect_50,25,100,75 //x,y,w,h成一张图片,这样我就可以避免每次想要创建某个图像时都必须编写整个程序。语言本身目前仅限于伪函数和命令(直接映射到 Graphics 方法调用),加上一些输出说明符作为每个脚本的标题,但我想添加更多。该脚本在一个同时用作解析器和解释器的程序中进行处理,但是我直接处理输入字符串的方法不足以满足我的需求。
虽然我搜索并发现了大量的解析器和词法分析器生成器,但我仍然遇到与解析器生成器相同的两个问题,即
- 生成的解析器将需要某种形式的运行时依赖(/-ies),只有生成器才能提供(例如:Beaver的产品需要自己的运行时文件),或者
- 生成器似乎还没有完全开发出来,或者如果不是这样,那么生成器仍然会做出至少一个令人不快的假设。(例如:Jay生成源代码的方法不包含类标记并假设所有类都在同一个文件中。)
所以除了避免这些事情之外,我还在寻找一个解析器生成器,它也有大量的开放文档(这就是我想避开 ANTLR 的原因),它输出 Java 源代码(我更喜欢输出尽可能使用最新版本的 Java,但这对我来说不是很重要)。
tl;博士:我需要一个解析器生成器:
- 与大量文档(外部或其他)一起免费提供。
- 构建解析器
- 不需要外部依赖项即可运行,
- 输出 Java 源代码(它是最新的(也许我可能会在 1.5 或更高版本中调用它?)并且易于阅读),以及
- 生成一个正确封装的类。