jangle
Скажи мне, что такое Compile Error ? Это собирательно о Syntax error и о некоторой недопустимости кода.
Что такое Syntax error? Это нарушение в структуре кода, расхождение с правилами написания конкретного языка. Как учитель находит в коде Syntax Error. Он просматривает каждую строчку и старается её классифицировать. Если строчку не удаётся классифицировать - это уже Syntax error.
А если удаётся? Например строка
- Код: Выделить всё
If (фыва фыва фыва фыва фыва фыва фыва ) Then
классифицируется как начало условной конструкции - If-блока.
А у if-блока между if и then должно быть что? Правильно - выражение.
А тепер попробуем классифицировать
(фыва фыва фыва фыва фыва фыва фыва ) как выражения. На этом шаге мы и находим ошибку - Invalid Expression.
И тд.
Вобщем, принцип анализа таков:
Разбей весь код на токены (я имею ввиду не объекты ядра, а элементы "скрипта" ).
Проанализируй каждый токен - он может быть либо выражением, либо вызовом процедуры, либо кейвордом, либо коментарием (либо пустой строчкой).
Дальше в зависимости от типа токена - определяй, правильно ли он записан according его типа