想象一下使用Java或C ++编程。你有一个文件,大约5000行纯代码。每次键入单个字母并暂停一段时间(想想Eclipse或Visual C ++)时,IDE将在整个文件中显示一堆错误(或者可能只显示同一行,具体取决于编辑器)。我想知道的是,IDE如何做到这一点?我只能想象,每次键入一个字母时读取整个文本文件的IDE都会非常低效,并且当某人遇到一定数量的字符时,可能会开始减速。
我不是在寻找一个完整的算法解决方案或类似的东西。我正在寻找一个非常简单的编辑器以获得乐趣,我想知道如何整合扫描文件的整个过程。即使我想为关键字(this,class,static,extern,transient,public,private,protected等)设置不同的颜色,我也必须知道如何实现这种扫描“算法” 。
答案 0 :(得分:0)
没有单一的算法,但通常分而治之。就像可以使用DOM结构操纵大型XML文件一样,类似的源代码可以保存在称为AST(抽象语法树)的东西中。您可以在维基百科和其他地方阅读更多内容,以下是一些可能是良好开端的链接
http://www.eclipse.org/articles/article.php?file=Article-JavaCodeManipulation_AST/index.html