将文本文件加载到内存中并分析其内容

Loading a text file in to memory and analyze its contents

本文关键字:文件 文本 加载 内存      更新时间:2023-10-16

出于教育目的,我想构建一个PHP编程IDE。

我做了一个表单应用程序,并添加了OpenFileDialog ..(我的c#知识很有用,因为它很简单……即使没有智能感知!)

加载文件并从中读取行在每种语言(甚至PERL)中基本上都是相同的。

但我的目标是编写自制智能感知。我不需要的信息richtextBox和它产生的事件,endline, EOF等,等

我的问题是,我如何处理这些数据?排队?

  • 一个结构体的每一行文本文件?
  • 循环链表中的所有结构?…
  • 而更新richtextBox?
  • 查找左、右括号、变量等

我认为微软在应用程序项目文件夹中存储SQL类型的数据库。但是如何跟踪变量并以某种形式模拟它们呢?

我想知道如何有效地处理这个动态文本

我以前从未想过这个问题,但这听起来是个有趣的挑战。

我个人认为你必须实现一个词法扫描器,将整个源文件标记成一个源树,每个标记也有关于它的信息,将标记映射到源文件中的一行/字符。

从那里你可以看到你想让它走多远——当有人在一个令牌上徘徊时,它可以使用它周围的代码上下文来更智能地理解你提供的"智能感知"。

将鼠标悬停在某物上将映射回您的源树,(在构建它时)您将加载您想要显示的任何信息。

也许这太夸张了,但这听起来是个有趣的项目。

这听起来与这个问题有关:https://softwareengineering.stackexchange.com/questions/189471/how-do-ide-s-provide-auto-completion-instant-error-checking-and-debugging

这个问题的公认答案推荐了这个链接,我觉得很有趣:

http://msdn.microsoft.com/en-us/magazine/cc163781.aspx

简而言之,大多数ide从代码生成解析树,这就是它们存储和管理的内容。