0

我正在为 Java 平台使用 rhino 和脚本,以便允许用户扩展我的应用程序。

但是,用户可以编写一些案例,例如(ASTO.value>440) || (ASTO.bellowNormal)等...问题是,在使用 ScriptEngine 从我的 JAVA 应用程序运行脚本之前,我想获取所有变量的名称!因为我应该知道脚本运行需要哪些变量...我知道正则表达式可以完成这项工作,但我不确定...请有人可以帮我找出 java regexp 以获取我想要的变量真的很欣赏。。

4

3 回答 3

0

我找到了一个解决方案 cx.getDebuggableView(result).getParamAndVarCount() 但它不返回未声明的变量:(

于 2010-04-12T19:39:02.190 回答
0

有点晚了,但您可能对此感兴趣:http ://ramkulkarni.com/blog/understanding-ast-created-by-mozilla-rhino-parser/

于 2013-10-23T11:57:22.960 回答
0

我们正在做一些非常相似的事情,尽管它是用 Scala 编写的,我只能给你一些提示......

  1. 测试真的很重要
  2. 这是我们更复杂的测试之一:listArg[Math.floor(4 / listArg[zeroArg]['f3'])]
  3. 描述设计的变量...

    // chars after which there may be an environment variable used
    private val NewScopeChars = List('[', '(', '/', '*', '+', '-', ',')
    // chars that signal the end of a variable name
    private val SepChars = '.' :: ' ' :: ';' :: ']' :: ')' :: NewScopeChars
    private val ExcludeStrings = List("new", "Math")
    private val LiteralPrefixes = "'" :: "\"" :: (0 to 9).map(_.toString).toList
    

我遇到了性能问题,因此将不胜感激。

于 2011-12-21T23:31:03.500 回答