我有一个声明性语言(twolc
实际上)的源文件,我需要编写许多变体:一个规范版本和许多非规范版本,每个版本都有一个或多个与规范不同的变体。例如,假设规范文件具有三个规则:
Rule A:
Do something A-ish
Rule B:
Do something B-ish
Rule C:
Do something C-ish
A
那么,一种变体可能具有与and的规范完全相同的规则C
,但对于 具有不同的规则B
,我将其称为B-1
:
Rule A:
Do something A-ish
Rule B-1:
Do something B-ish, but with a flourish
Rule C:
Do something C-ish
想象一下,你对许多不同的规则有许多不同的细微变化,你有我的情况。我担心的问题是代码的可维护性。如果稍后我决定Rule A
需要以某种方式重构,那么我将有 50 多个文件需要手动编辑完全相同的规则。
我的想法是为每个规则设置单独的文件,并使用cat
: cat A.twolc B.twolc C.twolc > norm.twolc
、cat A.twolc B-1.twolc C.twolc > not-norm.twolc
等将它们连接成变体。
是否有任何工具旨在管理此类问题?有没有比我想到的更好的方法?我提出的解决方案是否有我应该注意的弱点?