Семантический анализатор
Семантический анализ гарантирует, что объявления и определения программы семантически верны. Это совокупность методов, вызываемых по мере необходимости при анализе незаконченного синтаксического дерева и таблиц символов. Как синтаксическое дерево, так и таблица символов используются для проверки релевантности кода.
Задачи семантического анализатора:
заполнение таблицы функций;
создание таблиц переменных для каждой области видимости программы и их инкрементное заполнение;
проверка типов операндов, используемых в выражениях и аргументах вызова функции, и вставка новых узлов дерева для приведения типов;
оповещение пользователя об ошибках при анализе синтаксического дерева.