以下をキーに基づいて並べ替えたい
case IndexError:
    PyErr_SetString(PyExc_IndexError, exc.str.c_str());
    break;
case ValueError:
    PyErr_SetString(PyExc_ValueError, exc.str.c_str());
    break;
case RuntimeError:
    PyErr_SetString(PyExc_RuntimeError, exc.str.c_str());
    break;
case IOError:
    PyErr_SetString(PyExc_IOError, exc.str.c_str());
    break;
そうなる
case IOError:
    PyErr_SetString(PyExc_IOError, exc.str.c_str());
    break;
case IndexError:
    PyErr_SetString(PyExc_IndexError, exc.str.c_str());
    break;
case RuntimeError:
    PyErr_SetString(PyExc_RuntimeError, exc.str.c_str());
    break;
case ValueError:
    PyErr_SetString(PyExc_ValueError, exc.str.c_str());
    break;
本質的に、私は行をソートするだけです
case IOError:
case IndexError:
case RuntimeError:
case ValueError:
他の行(aで始まらない行)の内容はcase重要ではありませんが、大文字と小文字で並べ替えてください。
casesの内容が類似しているため、全体を再生成できることです。並べ替えられた*Errorsを取得し(enum?から?を介して実行される場合がありsort(1)ます)、すべての列挙値に変換XErrorしcase XError: PyErr_SetString(PyExc_XError, exc.str.c_str()); break;て実行するマクロを作成します。