问题描述
我有一个RPGLE程序,试图将其从固定格式转换为自由格式。总的来说,我知道定义入口变量是使用如下原型完成的:
babel --source-maps -d build src
但是我不知道在定义字段后如何执行此操作。我们有一个标准定义文件,可将其复制到我正在编写的程序中,该文件具有我正在使用的字段作为已定义并复制到其中的输入变量。在固定格式下,这只是
vue-cli-service build --dest build src/index.js
我已经尝试过仅在原型输入之前进行复制,而将规范保留为空白,但这会导致错误。我知道我可以只使用'LIKE'关键字并更改变量名,但是出于可读性考虑,我宁愿避免这样做,而且我不知道将来可能会导致什么问题。
只要有必要,我就尝试引入两个变量:数据结构和带区位的小数。
无论是使用原型还是我不知道的其他方式,如何使用已经在自由格式RPGLE中定义为入口变量的变量?
解决方法
处理此问题的“正确”方法是创建标准定义文件(StdDefs ==> StdDefs2)的新版本,以新名称(可能带有_t后缀)和TEMPLATE关键字声明变量。
然后在重构的PR / PI中使用LIKE或LIKEDS。
所以您的原始程序看起来很像
/copy StdDefs
C *Entry PList
C Parm InEntry1
您的带有PR / PI的重构后的样子
/copy StdDefs2
/copy Mypr
dcl-pi myprogram;
InEntry1 like(inEntry_t);
end-pi;
请注意,最佳做法是将PR放在一个单独的成员中,该成员被/ COPY插入主叫方和被叫方。
,在不使用 like 声明另一个变量的情况下找不到解决方案。并在程序开始时将新变量分配给旧变量,反之亦然。