我正在解析.h
和.cpp
文件,我需要找到/替换所有非匈牙利语标记的变量与他们的匈牙利语等效。你会问:"为什么?"我的雇主要求我用匈牙利语,'够了'。
我们现在只处理ints
。
给定任何这些情况…
int row; // no hungarian prefix
int nrow(9); // incorrect capitalization
int number; // hmm...
int nnumber = getValue(); // uh oh!
应该改成:
int nRow;
int nRow(9); // obviously ctor args and assignments shouldn't change
int nNumber;
int nNumber = getValue();
我拍摄只是一个单一的一行调用理想的s///
。
对于额外的挑战,如果有人可以在int
的"类型检查"之后改变这个变量的所有实例,那将为您赢得一些印像点。
到目前为止我写的是:
s/(ints+)(?!n)(w+)/$1nu$2/g;
这与int nrow
或int number
不匹配。
提前感谢!
No.
更明确地说,您正在尝试使用正则表达式编译程序。这不是那样工作的。
例如,您的一行代码已经忘记了函数参数,并且无法解析任何用户定义的类型(struct, enum)。更不用说。cpp建议c++建议类。
还有,方法/函数/内联注释会发生什么?
我的建议是在某个地方找到一个语法编译器并将c++语法传递给它,因此对于每个定义,您都可以将值和类型写入文件。然后你就可以用正则表达式来玩了。您也可以尝试在每次使用每个变量时都写入,以便以后自动替换它们。
比一个简单的正则表达式复杂得多,但是这个简单的正则表达式会失败很多,最后你将不得不手动修改代码。
作为一个积极的提示,也许当你告诉你的老板改变需要多少钱时,他会更好地考虑。