макросы — это же AST -> AST. читаешь один AST, потом меняешь его
Да нет никакого AST! Структура читается и тут же обрабатывается. Один из видов обработки — возврат новой структуры, которую нужно заново процессить. Это всё неразделимо и происходит в течении всего сеанса работы интерпретатора
Да нет никакого AST! Структура читается и тут же обрабатывается. Один из видов обработки — возврат новой структуры, которую нужно заново процессить. Это всё неразделимо и происходит в течении всего сеанса работы интерпретатора
это обязательно? то есть это классический лисп так устроен или иначе просто невозможно?
Если "синтаксисом" считать списки, числа, символы и строки, то да, на этом уровне есть и парсинг и построение какого-то внутреннего представления для прочитанного исходника
Кароч, у настоящих лиспов минималистичный парсер и сложный ридер. И возможность этот ридер заменить даёт все те возможности по адаптации языка под какой угодно "синтаксис".