C代码生成帮助程序包。

csnake的Python项目详细描述


pipeline statuscoverage report

csnake是一个python 3包,它帮助您从python生成c代码。

csnake为您提供了一个一致的、自以为是的api,它可以帮助您 构造c生成的python代码。 它通过提供类和函数来生成每种c语言 建造。

可能最重要的特性是能够将一个值初始化为 structarray来自python dict和list的初始值设定项(实际上, Maps和Collections),嵌套到任意级别。

这里有一个味道:

fromcsnakeimportCodeWriter,Variable,FormattedLiteralimportnumpyasnpvar=Variable("test",primitive="struct whatever",value={"field1":[{'x':num,'y':10-num}fornuminrange(2)],"field2":{'test':range(3),'field':np.arange(6).reshape(2,3)},"field3":FormattedLiteral([30,31,32],int_formatter=hex),"field4":8,},)cw=CodeWriter()cw.add_variable_initialization(var)print(cw)

这将产生:

structwhatevertest={.field1={{.x=0,.y=10},{.x=1,.y=9}},.field2={.test={0,1,2},.field={{0,1,2},{3,4,5}}},.field3={0x1e,0x1f,0x20},.field4=8};

如图所示,numpy数组作为值受支持(同样,sympy数组也受支持)。 值可以由任意函数格式化(这里我们使用hex来 将int输出为成员field3的十六进制文本。

动机

csnake的可变生成是由一个通用的嵌入式开发驱动的 任务:将数据输入C代码。

csnake在生成用于表示如下数据的c代码时应该有帮助 位图、字体、状态机、查找表-作为数组和结构。 它还可用于循环展开、模板化等操作

csnake可以很容易地集成到构建系统中(make,cmake, 烤饼,…),也很适合 Ned Batcher’s cog

文档

文档(sphinx)可以在 GitLab pages for this package

示例

csnake用于我的一些尚未发布的开源嵌入式 项目。我将在这个过程中添加这些(和其他)示例。

学分

csnake是 C-Snake 通过 Oliver (原始思想)和andrej(变量初始化思想和实现, 此软件包的作者)。

它是根据麻省理工学院的许可证提供的。

更改日志

可以在文档中找到变更日志, here

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Hibernate即使在关闭会话后仍在oracle db中保持非活动会话   java为什么在定义hashCode()和equals()之后,我的代码仍然比较链接   Java中的随机如何随机选择字母(az)?   java为什么这个方法没有在系统中实现?另外,在代码的第一位下面还有第二个问题   如何转换证书。对。使用Java编程的pfx   java“无法构建实体管理器工厂”在运行用Maven编译的jar文件时出现Hibernate异常   多线程Java线程安全:当必须调用实例变量上的方法时,如何处理实例变量   macos如何从MacOSX应用程序中的自定义协议URL获取java代码中的URL字符串   Java密码密钥转换无法正常工作   java如何使用自定义字体/书法更改tabLayout的字体   java无法在Windows上运行带有JavaFX 11的Maven shaded jar   java如何在字符串排序数组中计算等于字符串   Java 2D游戏检查玩家是否触摸到另一个精灵   java javafx tableview仅在排序后更新数据   java如何按参数类型选择重载方法?   java如何返回字段不存在的所有文档,但如果字段存在,则返回值为“tag1”的文档   java SLES Apache Solr启动。jar,无法访问jar文件