что здесь имеется в виду? kind можно получить и без анпарсинга, так как помимо этого ключевого слова, есть или и другой способ задания. Подробности можно посмотреть в LoopAnalyzer/loop_analyzer.cpp:2567 в функции getSizeOfType.
аналогично, зачем создавать новый тип? вообще наверно можно было бы его скопировать, так как это явно правильнее, чем создавать по варианту, так как тут не учтен еще kind/len.
родитель оператора для вставки есть сама функция, поэтому в данном случае получать ср нет смысла, так как это равно function. Логично бы было использовать insertAfter для вставки нового оператора первым. Вопрос - всегда ли implicit должен быть первым ?
не лучший вариант прохода по всем операторам функции, так как скорее всего функция взятия конкретного оператора будет проходит по всем оператора функции с начала и до этого номера, что не эффективно. Лучше это делать так, как показано в инструкции - начиная с первого и перемещаясь через lexNext.
в проход передавать проект в целом не разрешается, поэтому нужно перевести этот проход на проход по файлам, так как ему не зачем что то выполнять над проектом.
я бы начал смотреть комментарии снизу вверх - от самой нижней функции и выше.
ошибочное условие, что здесь имелось в виду? CONTROL_END является оператором закрытия любого блока, в том числе и блока описания интерфейсов. Нам достаточно убедиться, что начались исполняемые операторы или выполнялась проверка на isSgExecutableStmt(state).