0

想象一下用 Java 或 C++ 编程。你有一个文件,大约有 5000 行纯代码。每次您键入一个字母并暂停片刻(想想 Eclipse 或 Visual C++)时,IDE 将在整个文件中显示一堆错误(或者可能只显示同一行,具体取决于编辑器)。我想知道的是,IDE如何做到这一点?我只能想象,每次键入字母时读取整个文本文件的 IDE 效率会非常低,并且当有人输入一定数量的字符时可能会开始真正快速减速。

我不是在寻找一个完整的算法解决方案或类似的东西。我正在寻找一个非常简单的编辑器来娱乐,我想知道我应该如何整合文件的整个扫描。即使我想为关键字(this、class、static、extern、transient、public、private、protected 等)设置不同的颜色,我也必须能够知道我应该如何实现这个扫描“算法” .

4

1 回答 1

0

没有这样的单一算法,而是像往常一样分而治之。就像可以使用 DOM 结构操作大型 XML 文件一样,源代码也可以保存在称为 AST(抽象语法树)的东西中。您可以在 Wikipedia 和其他地方阅读更多内容,以下是一些可能是好的开始链接

http://www.eclipse.org/articles/article.php?file=Article-JavaCodeManipulation_AST/index.html

如何在 Eclipse 之外的项目中使用 java Eclipse 抽象语法树?(即不是 Eclipse 插件)

于 2013-06-17T06:41:28.480 回答