Я слежу за "Языками программирования: применение и интерпретация"
http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/2007-04-26/plai-2007-04-26.pdf (стр. 21)
Сейчас я работаю над страницей 21 со всеми тестовыми примерами. Я смог пройти только первый, в то время как все тестовые примеры, в которых было указано «with», завершились неудачно. Я понял, что у моего парсера нет операторов, с которыми можно было бы справиться «с».
На данный момент это мой парсер:
(define (parse sexp)
(cond
[(number? sexp)(num sexp)]
[(list? sexp)
(case (first sexp)
[(+) (add (parse (second sexp))
(parse (third sexp)))]
[(-) (sub (parse (second sexp))
(parse (third sexp)))])]))
Не могли бы вы помочь, потому что эта функция синтаксического анализа приводит к сбою моих вышеуказанных тестов? Спасибо.