将文本文件加载到内存中并分析其内容
Loading a text file in to memory and analyze its contents
出于教育目的,我想构建一个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从代码生成解析树,这就是它们存储和管理的内容。
相关文章:
- 文本文件中的单词链表
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 如何将内容数组写入文本文件?
- 无法通过空白将文本文件行分隔为矢量
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- C++将文本文件中的数据读取到结构数组中
- 在指针的帮助下,文本文件中单词的频率
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 将值从二维数组输出到文本文件
- 如何使用 c++ 实现并发文件/文本编辑?
- 我需要转换一些代码,以便它适用于输入和输出文件文本
- 通过套接字发送二进制文件.文本文件有效,其他文件无效
- 将大型数据文件拆分为多个小文件(文本格式)
- 如何读取输入文件(文本文件)并将输入验证为有效整数
- 从文本文件/文本流中读取Q字符串错误
- 从文本文件(文本解析器)C++中读取行和列的逻辑
- 如何将*.css文件(文本文件)的内容与附加信息存储在新文件中?
- 关于内存映射文件和使用大文件文本编辑器
- 如何在读取文件文本时跳过"n"
- 使用libzip从.zip获取文件(文本除外)