java - java中非常简单的脚本解析器

标签 java parsing scripting

我目前正在用 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/

相关文章:

c - 缓冲区管理和从串行数据中提取帧

python html 解析器不修改实际标记?

linux - 防止 * 在 bash 脚本中被展开

shell - Bourne Shell 左右对齐

java - JMS 连接工厂 NullPointerException

java - 以编程方式更改 id3 标签版本(首选 java)

java - 如何使用 XdmNode 从标签读取 namespace ?

regex - 使用 awk sed 或 grep 从网页源解析 URL

java - SOAP 客户端应用程序异常

java - WebView中的loadDataWithBaseURL是如何处理cookies的?