0

我目前的项目需要读取存储在配置文件中的数据并从中生成硬件抽象层代码。配置数据结构以低级方式描述数字硬件(具有寄存器/位域的组件,加电复位值等)。从这些数据中,我需要自动生成可供其他应用程序开发人员使用的Python代码,以便在其上编写应用程序。就像我之前说过的,这个想法是为更高级别的应用程序提供HAL。如何设计生成Python代码的代码生成器

我的问题是:你会怎样解决这个问题?对我来说,使用Python代码生成器感觉很自然。我不知道这个任务是否有更好的工具(yacc/bison?)。我的设计思路是让一个静态程序组件得到重新分配,并处理通信处理,日志和所有通用的东西。另一个与硬件相关的组件将完全自动生成并使用静态组件的API。

+0

嗨,欢迎来到SO。你有没有具体的问题和相关的问题?你有没有任何代码(如果是这样,请在这里发布)。 –

回答

0

你想要做的是使用是Program Transformation System (PTS)

这些工具/框架接受一种或多种计算机语言的描述,然后允许您编写将一种语言映射到另一种语言的规则。在你的情况下,你想为硬件的“配置文件”定义一种语言,并且编写规则将各种模式的配置文件映射到Python代码片段(可能是声明,可能是语句,或许是函数集)所需的硬件API。

坚持使用Python的PTS将简单地限制你选择几乎空集,除非你认为你自己要建立一个PTS。那也不会发生。认为使用解析器是一个好的步骤是对的,但它只是真正可行的解决方案的一小部分;看看我的文章Life After Parsing为什么你想要一个完整的PTS。