gpt4 book ai didi

c++ - 是否有任何免费工具可以帮助自动生成代码?

转载 作者:太空狗 更新时间:2023-10-29 23:31:48 24 4
gpt4 key购买 nike

几个学期前,我上了一个类,我们编写了一个非常基本的方案解析器,并最终编写了一个解释器。课后,我将我的解析器转换为 C++ 解析器,只要我不对预处理器或宏做任何花哨的事情,它就可以很好地解析 C++。我可以用它来阅读我的类和函数,并做一些巧妙的事情,比如自动生成类阅读器或编写器,或者从文本文件设置函数回调。

但是,我的程序非常有限。我确信我可以花一些时间让它更健壮并做更整洁的事情,但如果已经有更健壮的工具可以做同样的事情,我不想花时间和精力。我认为必须有这样的东西,因为解析器是编译器的重要组成部分,但我还没有看到专门用于自动代码生成的工具,这些工具可以很容易地浏览和使用代表类、函数和专门针对 C++ 的变量。是否有执行此操作的工具?

编辑:

希望这会澄清一点我正在寻找的东西。我在 visual studio 中作为预构建步骤运行的程序。它读取我的源文件,列出类、它们的成员、它们的函数等,然后用于生成新代码。目前我只是用它来方便地读取我的数据结构并将其写入纯文本文件,但我也可以做其他事情。文件读取器和写入器输出到纯 .cpp 和 .h 文件中,我将它们包含在我的项目的其余部分中,就像我包含任何其他文件一样。我正在寻找的是做类似事情的工具,这样我就可以决定是继续使用我自己的工具还是切换到更好的解决方案。我不是在寻找任何可以生成机器代码或编辑我编写的代码的东西。

最佳答案

如果您想从头开始解析 C++,则需要一个完整的解析器构建工具,如 ANTLR 或 YACC,但它对您的目的来说太过分了。

它读取我的源文件,列出类、它们的成员、它们的函数等,然后用于生成新代码。

两个主要选项:

  • GCC-XML可以生成类、成员和函数的列表。他们网站上的分发版本很旧;请尝试使用 CVS 版本。我不知道 Windows 端口是否可用。
  • Doxygen专为生成文档而设计,但它也可以生成 XML 输出,您应该能够使用它来执行您想要的操作。

目前我只是用它来方便地读取我的数据结构并将其写入纯文本文件...

这称为序列化。尝试 Boost.Serialization或者也许 libs11nGoogle Protocol Buffers . Stack Overflow有进一步的讨论。

...但我也可以做其他事情。

这种自动代码生成的其他很酷的应用包括反射(在运行时检查对象的成员,使用 duck typing 和 C++ 等)和生成用于从脚本语言调用 C++ 的包装器。对于 C++ 反射库,请参阅 Reflex .有关为脚本语言生成包装器的示例,请参阅 Boost.PythonSWIG .

关于c++ - 是否有任何免费工具可以帮助自动生成代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1456342/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com