Стили и методы программирования


Пример 8.4.1 - часть 2


;; подстановка хвостов

(mapcar #’(lambda (d)

(cond

((atom d) (cons d tl))

(T(append d tl))

) ) lt) )

(defun pred (bnf tl)

;; присоединение предшественников

(level1 (mapcar #’(lambda (z) (chain z tl )) bnf) ))

(defun sb-nm (elm tl)

;; постановка определений имен

(cond

((atom (eval elm)) (h-all (eval elm) tl))

(T (chain (eval elm) tl))

) )

(defun chain (chl tl)

;; сборка цепочек

(cond

((null chl) tl)

((atom chl) (sb-nm chl tl))

((atom (car chl))

(sb-nm (car chl) (chain (cdr chl) tl) ))

(T (pred (all-t (car chl) (cdr chl)) tl)) ))

(defun level1 (ll)

;; выравнивание

(cond

((null ll)NIL)

(T (append (car ll) (level1 (cdr ll)) )) ))

(defun lang ( frm )

;; вывод заданной системы текстов

(d-lex (lexs frm))

(d-names frm)

(pred (eval (caar frm)) ’(())

) )




Начало  Назад  Вперед



Книжный магазин