Fortran Coder

查看: 215|回复: 0

[编辑器] 自动生成类模块脚本

[复制链接]

2

帖子

2

主题

0

精华

入门

F 币
45 元
贡献
22 点
发表于 2022-3-10 21:47:27 | 显示全部楼层 |阅读模式
鉴于使用对象去计算,对于模块化十分好,容易将复杂的系统拆分。但是,一个子系统有无数个变量,在程序中写构造函数十分烦琐。于是,使用脚本自动生成,让没意义的重复劳动通通见鬼去吧。
脚本使用bash编写,在Fedora 31上测试很好。这个脚本生成的程序按我的一般习惯编写:
1、对象中有一个Init()的子程序,用于将对象初始化,任务是将所有的变量全部先赋值成默认值。
2、使用对象中的Set(Who,Value)函数单独对每个成员赋值,这个动作一般是通过读取ini文件,指向到某个参数段后,将参数段中所有的参数逐个使用Set子程序赋值。
3、成员中有的成员是通过其他成员的值计算出来的,这类成员不能使用Set子程序赋值,而是通过内部的ParameterRefresh子程序进行统一计算。
ParameterRefresh子程序在初始化和每次赋值都会执行一次,保证不会漏改。
4、成员对象使用函数*Get(Who)获取,针对real、integer、complex、logical、character类型的成员,分别用rGet、iGet、cGet、lGet、sGet获取

注意,脚本生成的程序中,ParameterRefresh子程序需要用户进入生成的文件自行编写具体的程序。除开Set和*Get两类过程,在对象结构文件中用户添加的函数/子程序也要自行在生成的程序文件中自行编写,脚本只生成一个框架。

脚本的用法是
$ sh ./ClassBuild.sh Example.txt
对象结构文件Example.txt可以自己改名,注释符是#号,注意,注释符只能打在行首。对象结构文件可以按照文件内的注释自行修改
写在最后,脚本可能还存在不足,如有发现请反馈。大家都是做计算的,那些没意义的劳动就交给机器去做,不能妨碍我们人类要干伟大的事业。

ClassBuild.tar.gz (5.67 KB, 下载次数: 1)
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2022-7-7 20:58

Powered by Tencent X3.4

© 2013-2022 Tencent

快速回复 返回顶部 返回列表