试着写一个解析器

时间:2011-02-27 17:41:11

标签: parsing shunting-yard lr

我正在尝试使用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

2 个答案:

答案 0 :(得分:2)

定义了正确的语法后,您可以http://www.antlr.org/为您生成解析器。是否合适的解决方案取决于你的作业“要求”。

至少你可以生成它并查看内部的一些提示。

答案 1 :(得分:-2)

我不完全明白你想要做什么,但也许你可以使用一些正则表达式?你想做什么写一个简单的命令行程序?