我目前正在用 Java 开发一个小项目,我需要为我编写的机器人处理一种非常轻量级的脚本语言。
它不需要处理算术或任何复杂的功能,它只需要运行某些命令并处理 if 和 while 语句。
它可能看起来像这样:
turn(90,cw)
move(25)
sleep(5000)
get(temp)
turn(90,ccw)
get(image)
这是我没有遇到过的问题,并且能够很快让它工作。然而,一旦我开始考虑 if 和 while 语句,我意识到事情可能要复杂得多。
例如,管理这样的东西会很简单:
while(temp > 50)
move(25)
turn(90,cw)
但是我对如何开始处理这样的语句感到非常困惑:
while(temp > 50)
if(light < 100)
move(25)
turn(90,cw)
move(10)
看着它,我可以看到事情很快变得非常困惑!
是否有处理此类“轻量级脚本”的首选方法?还是坚持使用它并开发某种手动解析器会更好?
感谢您能给我的任何帮助!
编辑 - 感谢大家的帮助,我使用 Java 脚本引擎很快就让它工作了!
最佳答案
编写自定义语言非常困难。
从 6.0 开始,Java 有一个内置的 JavaScript 引擎。改用它,您的用户会很高兴您使用他们熟悉的语法。其他替代方案包括 Groovy、JRuby,甚至 Lua。
另见
关于java - java中非常简单的脚本解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13016502/