# Compiler project ## Semantic analysis ### Типы операндов - [ ] Каст типов при операциях (сравнение, арифметика) - [ ] Определять при не указанном типе - [ ] Проверять соответствие значения с указанным типом (кастовать при возможности) - [ ] Целое значение индекса/размера массива ### Циклы - [ ] Внутри while находится bool или 1, 0, 1.0, 0.0 - [ ] Внутри for loop целые числа в range - [ ] Числа в range должны быть в правильном порядке (возр., убыв. - reverse) - [ ] Нельзя менять переменную цикла внутри его тела ### Декларация - [ ] Проверка на использование до декларации - [ ] Проверка на область видимости - [x] Редекларация не допускается ### Функции - [ ] Проверка возвращаемого функцией значения с указанным - [ ] Отсутствие return в void подпрограммах - [ ] Проверка типов аргументов функций