2014-03-01 64 views
0

我想在我正在做的一个格式化程序的C++解析器。如何解决一个C++解析器

你很明显可以打开一个文件并使用getline(..)或get(),这是合理的方式来启动事物,然后使用向量数组来创建一个系统,从而创建数组的负载并以某种方式构造出从那里处理你正在做的事情。例如,假设我想在一个源文件中找到函数,所有函数都有相同的语法,“(){”一旦删除了空格,那么您只需查找常用的定界符来将这些部分解析为数组。我想我会随着学习而学习。

或者我还假设有这样做的尝试和测试方法,我想可能就像他们说的那样重新发明轮子。

+0

虽然C是一种简单的语言来解析,但它的后代C++是一个完全不同的故事。以符合标准的方式正确解析C++代码非常困难。如果你没有解析和编译器理论/实践方面的经验,那将非常困难。 –

+0

而不是自己编写一个C++解析器(这可能是一个非常艰巨的任务),我建议使用一个已有的解析器(例如Clang/LLVM),它允许您提供插件。 –

+0

这是一个非常复杂的任务。如果你想了解它是如何完成的,你应该看看叮当声。 Clang的架构由小型库组成,如果你想解析一些C++,你可以使用它。 –

回答