出于教育目的,我想构建一个用于PHP编码的IDE。
我制作了一个表单应用并添加了OpenFileDialog
..(我的c#知识很有用,因为它很容易......即使没有知识分子!)
加载文件并从中读取行在每种语言中基本相同(即使是PERL)。
但我的目标是写自制的知识产权。我不需要关于richtextBox及其生成的事件,endline,EOF等信息。
我遇到的问题是,我该如何处理数据?换行?
我认为Microsoft在应用程序项目文件夹中存储了SQL类型的数据库。 但是,您如何跟踪变量并以某种形式模拟它们?
我想知道如何在动态文本上有效地处理这个问题。
答案 0 :(得分:1)
之前从未想过这一点,这听起来像是一个有趣的挑战。
就我个人而言,我认为你必须实现一个词汇扫描程序,将整个源文件标记为源树,每个令牌也有关于它的信息,将令牌映射到源文件内的行/字符。 / p>
从那里你可以看到你想用它走多远 - 当有人盘旋在一个令牌上时,它可以使用它周围的代码的上下文来更加智能地提供你所提供的“intellisense”。
将鼠标悬停在某些内容上会映射回您的源代码树(当您构建它时),您将加载要显示的任何信息。
也许这太过分了,但这听起来像是一个有趣的项目。
答案 1 :(得分:0)
该问题的接受答案建议我发现这个链接非常有趣:
http://msdn.microsoft.com/en-us/magazine/cc163781.aspx
简而言之,大多数IDE都会从代码生成解析树,这就是他们存储和管理的内容。