java - 脚本语言的智能感知算法

标签 java algorithm intellisense abstract-syntax-tree scripting-language

我正在构建一个可编程的软件。想法是让最终用户通过一些脚本来控制主机系统。因此,该软件附带了一个脚本编辑器,我正在为其使用 RSyntaxTextArea。到这里为止一切都很好。

作为最后的接触,我想在脚本(脚本语言是 Rhino)编辑器中添加某种IntelliSense,但我不确定具体怎么做最好实现这一点(至少在某种程度上)。

首先,我从这种业余方法开始:

  1. .(点) 字符调用整个建议过程。
  2. 脚本内容(不包括当前语句)是 *eval*uated 的,我从中识别到目前为止定义的变量/函数及其类型。建议是基于此计算的。

或者,我正在考虑构建 AST,而不是评估脚本(这是不成熟的)。这是解决这个问题的正确方法吗?您有任何建议/链接/算法等吗?如何处理脚本当前状态不可编译的情况?请指教。

最佳答案

假设你在 Java 中实现这个(由于 java 标签)你应该看看 JavaCC它结合了词法分析器、AST 处理功能甚至代码生成(尽管这最后一部分可能与您无关)。

关于java - 脚本语言的智能感知算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20313688/

相关文章:

java - IntelliJ : Arrange Java members by name

java - 如何通过Java将字节数组插入到SQL中?

java - 货币换算算法

string - 在不以纯文本形式存储子字符串的情况下在流中查找子字符串

asp.net - VS2012 智能感知不适用于自定义控件

visual-studio - Visual Studio 认为 `Microsoft Web Developer Tools` 已安装

java - 通过网络发送对象 vector

java - JTextArea 圆角 Java Swing

javascript - Spot it 算法 - js

c# - Resharper 代码完成工具提示未显示