 1. (2 ). ᫨ 筨 pip n.

 2. (2 ). '易 ⥬ ii pi.

 3. (4 ). H i筨 ippp  p⨪
A -> A OR B | A XOR B | B
B -> B AND C | C
C -> NOT D | D
D -> { A } | TRUE | FALSE


ࠪ⭨ i祭 ⮬⮬  i A=(Q, , d, q0, F), 
Q -  ⠭i,		q0 - ⪮ ⠭,
 - i 䠢i,		F  -  i楢 ⠭i.
d: Q *  -> Q - 㭪i 室i,

 ணࠬi ⮬ 㤥  ⪮ ⠭ q0, ᯨ᪮ i楢 
⠭i qfin  㭪i 室i,  㤥 ।⠢ ᯨ᪮ au.
⠬ ᯨ 室i  ᯨ᪨  (state1 sym state2):  
⮬ 室  ⠭i state1,   室i ᨬ sym, ⮬ 
室  ⠭ state2.

Q	A	B	C
1	2	3	---
2	4	---	3
3	---	4	3
4	---	---	---

 ⠡i ࠦ i祭 i ⮬  iࠬ 室i. 
 ணࠬi i  㯭 稭:
q0 = 1, qfin = (4), au = ((1 A 2)(1 B 3)(2 C 3)(2 A 4)(3 C 3)(3 B 4)).

⮬ 㤥 i  䠩i determ.dat, 直  :
1  (4)
((1 A 2)(1 B 3)(2 C 3)(2 A 4)(3 C 3)(3 B 4))

 㭪i MAIN  i' 䠩,  类 i ⮬, 
 i  iii ii    ࠭i ⮬.

  类i ᨬi 室 㫨 i ᫠,  ⢮ਬ   ᨬ.
 i쭥 ᫮, ਪ, 345, ⢮ਬ  ᨬ |345|.  ஡ 
㭪i REBUILD.
$ (REBUILD '((1 2 2)(A 34 7)(FG E 1)))
((1 /2 2)(A |34| 7)(FG E 1))

㭪i main2   i i ᫮  i wrd   
㭪i (READ-LINE).  i쪨 㭪i READ-LINE ⮬筮  ⢮ 
i i  i,  ⢮७ ஡ 㭪i
(SETQ wrd (UNPACK (STRING-UPCASE wrd))). 

㭪i MEMBER2 । ⠭ ⮬ state1, ᨬ symbol   
室i lst.   类 state2 i i (state1 symbol state2)  
⮬i au,   state2, i  NIL. 
$ (MEMBER2 2 A au)    $ (MEMBER 2 C au)     $ (MEMBER 2 D au)
4                     3                     NIL

㭪i GO । ⪮ ⠭ ⮬ q0  i ᫮ wrd.  
⮬ ஧i ᫮,  T, i - NIL.

㭪i OUTRES  i i 祭 i ANS  i  
஧i  ஧i i ᫮.

 determ.dat
1
(4)
((1 A 2)(1 B 3)(2 C 3)(2 A 4)(3 C 3)(3 B 4))



; i i祭 ⮬

(DEFUN MEMBER2 (state1 symbol lst)
   ( (NULL lst) NIL )
   ((AND (EQL state1 (CAAR lst)) (EQL symbol (CADAR lst))) (CADDAR lst))
   (MEMBER2 state1 symbol (CDR lst)) )

(DEFUN REBUILD (lst)
   ( (NULL lst) NIL)
   (SETQ tmp (CAR lst))
   (IF (NUMBERP (CADR tmp))
       (SETQ tmp (LIST (CAR tmp) (PACK (UNPACK (CADR tmp)))(CADDR tmp))))
   (CONS tmp (REBUILD (CDR lst))) )

(DEFUN GO (q wrd)
   (SETQ sym (CAR wrd))
   (PRINC q) (SPACES 2) (PRINC sym) (SPACES 2)
   (SETQ q (MEMBER2 q sym au))
   (PRINT q)
   ((EQ q NIL) NIL)
   ((NULL (CDR wrd)) ((EQL NIL (MEMBER q qfin)) NIL) T)
   (GO q (CDR wrd)) )

(DEFUN OUTRES ()
   (TERPRI)
   (TERPRI)
   (FOREGROUND-COLOR 14)
   (IF (EQL ANS 'yes) (PRINC "THIS WORD IS RECOGNISED")
                      (PRINC "THIS WORD CAN'T BE RECOGNIZED"))
   (FOREGROUND-COLOR 7)
   (TERPRI)
   (TERPRI)
   (SETQ *BLINK* T)
   (PRINC "     PRESS \"S + ENTER\" TO FINISH  OR \"C + ENTER\" TO CONTINUE ")
   (SETQ *BLINK* NIL)
   (SETQ ok (READ))
   ((EQ ok 'C)
           PROG2 (CLEAR-SCREEN)
                 (MAIN2))
   (SYSTEM) )


(DEFUN MAIN ()
   (TERPRI)
   (PRINC "ENTER INPUT FILE: ") (SETQ filein (READ))
   (OPEN-INPUT-FILE filein)
   (SETQ q0 (READ) qfin (READ) au (READ))
   (CLOSE-INPUT-FILE filein)
   (SETQ au (REBUILD au))
   (MAIN2) )

(DEFUN MAIN2 ()
   (CLEAR-SCREEN)
   (PRINC "Your automata is:")         (TERPRI)
   (PRINC "Beginning state is:      ") (PRINT q0)
   (PRINC "List of final states is: ") (PRINT qfin)
   (PRINT au)
   (READ-LINE)
   (SETQ ANS 'no)
   (PRINC "INPUT WORD, PLEASE >>" )   (SETQ wrd (READ-LINE))
   (SETQ wrd (UNPACK (STRING-UPCASE wrd)))
   (IF (GO q0 wrd) (SETQ ANS 'yes))
   (OUTRES) )

 (MAIN)




; ippp p䬥筮 p
; E -> E + T | E - T | T
; T -> T * F | T / F | F
; F -> { E } | <NUMBER>

; ii LL-1 p⨪:
; E -> T  E1
; E1 -> + T E1 | - T E1 | e
; T -> F T1
; T1 -> * F T1 | / F T1 | e
; F -> { E } | <NUMBER>

(DEFUN DO (lst)
       (SETQ res (e (CONS lst nil)))
       (CADR res)   )

(DEFUN E (p)
      (SETQ p (T p))
      (SETQ p (E1 p))  )

(DEFUN E1 (p)
((EQL (CAAR p) '+)
      (SETQ p (CONS (CDAR p) (CDR p)))
      (SETQ p (T p))
      (SETQ p (CONS (CAR p) (CONS (+ (CADR p) (CADDR p)) (CDDDR p))))
      (SETQ p (E1 p)))
((EQL (CAAR p) '-)
      (SETQ p (CONS (CDAR p) (CDR p)))
      (SETQ p (T p))
      (SETQ p (CONS (CAR p) (CONS (- (CADDR p) (CADR p)) (CDDDR p))))
      (SETQ p (E1 p)))
p  )

(DEFUN T (p)
      (SETQ p (F p))
      (SETQ p (T1 p))  )

(DEFUN T1 (p)
((EQL (CAAR p) '*)
      (SETQ p (CONS (CDAR p) (CDR p)))
      (SETQ p (F p))
      (SETQ p (CONS (CAR p) (CONS (* (CADR p) (CADDR p)) (CDDDR p))))
      (SETQ p (T1 p)))
((EQL (CAAR p) '/)
      (SETQ p (CONS (CDAR p) (CDR p)))
      (SETQ p (F p))

(DEFUN T1 (p)
((EQL (CAAR p) '*)
      (SETQ p (CONS (CDAR p) (CDR p)))
      (SETQ p (F p))
      (SETQ p (CONS (CAR p) (CONS (* (CADR p) (CADDR p)) (CDDDR p))))
      (SETQ p (T1 p)))
((EQL (CAAR p) '/)
      (SETQ p (CONS (CDAR p) (CDR p)))
      (SETQ p (F p))
      (SETQ p (CONS (CAR p) (CONS (/ (CADDR p) (CADR p)) (CDDDR p))))
      (SETQ p (T1 p)))
p  )

(DEFUN F (p)
((NUMBERP (CAAR p)) (CONS (CDAR p) (CONS (CAAR p) (CDR p))))
((EQL (CAAR p) '{ )
    (SETQ p (CONS (CDAR p) (CDR p)))
    (SETQ p (E p))
    ((EQL (CAAR p) '} ) (SETQ p (CONS (CDAR p) (CDR p))))
(prin1 'ERROR))  )
