C++ソースコードファイル内で、配列変数を関数に置き換えます。 さらに、ハードコードされた数値を列挙型に置き換える必要があります。 これに対して、私は正規表現と辞書を使うと考えました。 dictは、関連付けを列挙するための番号を表します。正規表現:テキスト変数と括弧内の数字を一致するdictエントリに置き換えます。
これは私がPythonスクリプトに変換したいのコード例です:
int a = foo[0];
int b = foo[1];
int c = foo[2];
これは、変換後に所望の結果である:列挙型の交換のため
int a = bar(enum_zero);
int b = bar(enum_one);
int c = bar(enum_two);
Pythonの辞書:
enums = dict([('zero',0),
('one', 1),
('two', 2)])
これは、配列をfに置き換えることができる現在の非機能です列挙型と慰めではなく数:
import fileinput
import re
enums = dict([('zero',0),
('one', 1),
('two', 2)])
search = r'foo'
replace = r'bar'
read = open('test.cpp', 'r')
write = open('out.cpp', 'w')
for line in read:
if line.find(search) != -1:
s_tag = r'(\-)('+search+r')\[(\d+)\](?=\.\w+)'
r_tag = r'\1'+replace+r'(\3)'
line = re.sub(s_tag, r_tag, line, re.M)
write.write(line)
else:
write.write(line)
read.close()
「サンプルコード」を「希望のコード」に変換したい – dgrat