我正在尝试使用Shunting Yard(SY)算法解析语法。语法包括以下命令(尽管它们还有很多其他命令!)
a + b // a and b are numbers
setxy c d //c,d can be numbers
setxy c+d b+a //all numbers
本质上,setxy是一个函数,但它不期望任何函数参数分隔符。由于缺少parens和函数参数分隔符,这使得通过SY非常困难(不可能?)。
是否可以使用SY来解析无括号/函数参数的无分隔符函数,还是应该继续使用不同的解析算法?如果是这样,你会推荐哪一个?
谢谢! djs22
答案 0 :(得分:2)
定义了正确的语法后,您可以http://www.antlr.org/为您生成解析器。是否合适的解决方案取决于你的作业“要求”。
至少你可以生成它并查看内部的一些提示。
答案 1 :(得分:-2)
我不完全明白你想要做什么,但也许你可以使用一些正则表达式?你想做什么写一个简单的命令行程序?