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

时间:2013-03-12 19:56:21

标签: c++ visual-c++

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

我制作了一个表单应用并添加了OpenFileDialog ..(我的c#知识很有用,因为它很容易......即使没有知识分子!)

加载文件并从中读取行在每种语言中基本相同(即使是PERL)。

但我的目标是写自制的知识产权。我不需要关于richtextBox及其生成的事件,endline,EOF等信息。

我遇到的问题是,我该如何处理数据?换行?

  • 每行文本文件的结构?
  • 循环链表中的所有结构? ......
  • 在更新richtextBox时?
  • 搜索开括号和关闭括号,变量等等

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

我想知道如何在动态文本上有效地处理这个问题。

2 个答案:

答案 0 :(得分:1)

之前从未想过这一点,这听起来像是一个有趣的挑战。

就我个人而言,我认为你必须实现一个词汇扫描程序,将整个源文件标记为源树,每个令牌也有关于它的信息,将令牌映射到源文件内的行/字符。 / p>

从那里你可以看到你想用它走多远 - 当有人盘旋在一个令牌上时,它可以使用它周围的代码的上下文来更加智能地提供你所提供的“intellisense”。

将鼠标悬停在某些内容上会映射回您的源代码树(当您构建它时),您将加载要显示的任何信息。

也许这太过分了,但这听起来像是一个有趣的项目。

答案 1 :(得分:0)

这听起来与这个问题有关: 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都会从代码生成解析树,这就是他们存储和管理的内容。