next up previous
Next: Prettyprinted parse output from Up: 13.11.2001: Grammatik: prozedurale Aspekte Previous: LISP implementation of a

Test lexicon and grammar for the LISP recursive-descent parser

; cf_grammar2.lm

(define (member? sym set)
	(pair? (member sym set)))

(define (nonterminal? sym)
  (member?
    sym
    '(s np vp pp)))

(define (terminal? sym)
  (member?
    sym
    '(det n v p)))

(define (lexicon category word)
  (member?
    word
    (assoc
      category
      '((det the this)
        (n man woman park jack jill)
        (v visited saw)
        (p near in with)))))

(define (productions sym)
  (cdr
    (assoc
      sym
      '(
        (s
          (np vp)
          (np vp pp)
        )
        (np
          (n)
          (det n)
          (n pp)
          (det n pp)
        )
        (pp
          (p np)
        )
        (vp
          (v)
          (v np)
          (v pp)
          (v np pp)
        )))))

(define (start-symbol)
  's)


Dafydd Gibbon, Wed Feb 12 10:50:41 MET 2003 Automatically generated, links may change - update every session.