Alexander_KS
  • Joined on 2023-09-14
Alexander_KS deleted branch planner from M/VisualSapfor 2023-12-13 09:10:46 +00:00
Alexander_KS commented on pull request Alexander_KS/SAPFOR#19 2023-12-12 08:25:49 +00:00
task-create-implicit-pass

а зачем еще раз проверяет, что он не объявлен, если это делается выше?

Alexander_KS commented on pull request Alexander_KS/SAPFOR#19 2023-12-12 08:25:49 +00:00
task-create-implicit-pass

что здесь имеется в виду? kind можно получить и без анпарсинга, так как помимо этого ключевого слова, есть или и другой способ задания. Подробности можно посмотреть в LoopAnalyzer/loop_analyzer.cpp:2567 в функции getSizeOfType.

Alexander_KS commented on pull request Alexander_KS/SAPFOR#19 2023-12-12 08:25:49 +00:00
task-create-implicit-pass

аналогично, зачем создавать новый тип? вообще наверно можно было бы его скопировать, так как это явно правильнее, чем создавать по варианту, так как тут не учтен еще kind/len.

Alexander_KS commented on pull request Alexander_KS/SAPFOR#19 2023-12-12 08:25:49 +00:00
task-create-implicit-pass

зачем пустой блок? лучше тогда != NULL

Alexander_KS commented on pull request Alexander_KS/SAPFOR#19 2023-12-12 08:25:49 +00:00
task-create-implicit-pass

родитель оператора для вставки есть сама функция, поэтому в данном случае получать ср нет смысла, так как это равно function. Логично бы было использовать insertAfter для вставки нового оператора первым. Вопрос - всегда ли implicit должен быть первым ?

Alexander_KS commented on pull request Alexander_KS/SAPFOR#19 2023-12-12 08:25:49 +00:00
task-create-implicit-pass

тут наверно лишняя пустая строка между intType и realType и не нужные { }

Alexander_KS commented on pull request Alexander_KS/SAPFOR#19 2023-12-12 08:25:49 +00:00
task-create-implicit-pass

через printInernal, см комментарии ниже

Alexander_KS commented on pull request Alexander_KS/SAPFOR#19 2023-12-12 08:25:49 +00:00
task-create-implicit-pass

лучше эту переменную все же заполнить, или удалить

Alexander_KS commented on pull request Alexander_KS/SAPFOR#19 2023-12-12 08:25:49 +00:00
task-create-implicit-pass

не лучший вариант прохода по всем операторам функции, так как скорее всего функция взятия конкретного оператора будет проходит по всем оператора функции с начала и до этого номера, что не эффективно. Лучше это делать так, как показано в инструкции - начиная с первого и перемещаясь через lexNext.

Alexander_KS commented on pull request Alexander_KS/SAPFOR#19 2023-12-12 08:25:49 +00:00
task-create-implicit-pass

скобки лишние, и у if выше тоже

Alexander_KS commented on pull request Alexander_KS/SAPFOR#19 2023-12-12 08:25:49 +00:00
task-create-implicit-pass

третий параметр не обязателен

Alexander_KS commented on pull request Alexander_KS/SAPFOR#19 2023-12-12 08:25:49 +00:00
task-create-implicit-pass

переменная Х как то не говорит о том, что это такое

Alexander_KS commented on pull request Alexander_KS/SAPFOR#19 2023-12-12 08:25:49 +00:00
task-create-implicit-pass

оператор IMPLICIT может быть только один в каждой функции?

Alexander_KS commented on pull request Alexander_KS/SAPFOR#19 2023-12-12 08:25:49 +00:00
task-create-implicit-pass

думаю, что можно было бы использовать просто lhs() вместо operand.

Alexander_KS commented on pull request Alexander_KS/SAPFOR#19 2023-12-12 08:25:49 +00:00
task-create-implicit-pass

в проход передавать проект в целом не разрешается, поэтому нужно перевести этот проход на проход по файлам, так как ему не зачем что то выполнять над проектом.

Alexander_KS commented on pull request Alexander_KS/SAPFOR#19 2023-12-12 08:25:49 +00:00
task-create-implicit-pass

все стандартные инклуды делаются через , а не в кавычках

Alexander_KS commented on pull request Alexander_KS/SAPFOR#19 2023-12-12 08:25:49 +00:00
task-create-implicit-pass

соответственно тут прототип должен быть SgFile*

Alexander_KS approved Alexander_KS/SAPFOR#19 2023-12-12 08:25:49 +00:00
task-create-implicit-pass

я бы начал смотреть комментарии снизу вверх - от самой нижней функции и выше.

Alexander_KS commented on pull request Alexander_KS/SAPFOR#19 2023-12-12 08:25:49 +00:00
task-create-implicit-pass

ошибочное условие, что здесь имелось в виду? CONTROL_END является оператором закрытия любого блока, в том числе и блока описания интерфейсов. Нам достаточно убедиться, что начались исполняемые операторы или выполнялась проверка на isSgExecutableStmt(state).