我正在为 Java 平台使用 rhino 和脚本,以便允许用户扩展我的应用程序。
但是,用户可以编写一些案例,例如(ASTO.value>440) || (ASTO.bellowNormal)
等...问题是,在使用 ScriptEngine 从我的 JAVA 应用程序运行脚本之前,我想获取所有变量的名称!因为我应该知道脚本运行需要哪些变量...我知道正则表达式可以完成这项工作,但我不确定...请有人可以帮我找出 java regexp 以获取我想要的变量真的很欣赏。。
我找到了一个解决方案 cx.getDebuggableView(result).getParamAndVarCount() 但它不返回未声明的变量:(
我们正在做一些非常相似的事情,尽管它是用 Scala 编写的,我只能给你一些提示......
listArg[Math.floor(4 / listArg[zeroArg]['f3'])]
描述设计的变量...
// 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
我遇到了性能问题,因此将不胜感激。