我正在构建一个可编程的软件。想法是让最终用户通过一些脚本来控制主机系统。因此,该软件附带了一个脚本编辑器,我正在为其使用 RSyntaxTextArea。到这里为止一切都很好。
作为最后的接触,我想在脚本(脚本语言是 Rhino)编辑器中添加某种IntelliSense,但我不确定具体怎么做最好实现这一点(至少在某种程度上)。
首先,我从这种业余方法开始:
- .(点) 字符调用整个建议过程。
- 脚本内容(不包括当前语句)是 *eval*uated 的,我从中识别到目前为止定义的变量/函数及其类型。建议是基于此计算的。
或者,我正在考虑构建 AST,而不是评估脚本(这是不成熟的)。这是解决这个问题的正确方法吗?您有任何建议/链接/算法等吗?如何处理脚本当前状态不可编译的情况?请指教。
最佳答案
假设你在 Java 中实现这个(由于 java 标签)你应该看看 JavaCC它结合了词法分析器、AST 处理功能甚至代码生成(尽管这最后一部分可能与您无关)。
关于java - 脚本语言的智能感知算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20313688/