Как сопоставить assignoOperator с использованием libclang - PullRequest
0 голосов
/ 20 марта 2020

Я хочу сделать перевод с источника на источник.

Пользовательский тип класса CPMap / CPVector имеет оператор присваивания перегрузки.

перед:

mapAffectMonthDelay["0"] = 0;
auto pProductOrder = pPoInfo->productOrders[i];

переписать на:

mapAffectMonthDelay.insert("0", 0);
auto pProductOrder = pPoInfo->productOrders.getItem(i);

Вот совпадение для первого выражения:

        matcher.addMatcher(binaryOperator(
                hasOperatorName("="),
                hasLHS(cxxOperatorCallExpr(
                        hasOverloadedOperatorName("[]"),
                        hasArgument(0, hasType(cxxRecordDecl(
                                anyOf(
                                        hasName("CPMap"),
                                        hasName("CPVector")
                                ))))
                ))
        ).bind("operator"), &subscriptOperatorExprHandler);

Мой вопрос как сопоставить второе выражение или как различить guish первое и второе выражение?

...