Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
18 lines (14 sloc) 545 Bytes
(define *unparsed* '())
(define (parse-sentence)
  (list 'sentence
        (parse-noun-phrase)
        (parse-word verbs)))
(define (parse input)
  (set! *unparsed* input)
  (let ((send (parse-sentence))
    (require (null? *unparsed*))
    sent)))

这里的解析程序parse,把要分析的input放入了一个全局变量*unparsed*里面,然后从左向右依次解析其成分。

如果我们的解释器从右向左对参数求值,那么在(parse-word)时,*unparsed*最前面是个名词,而不是动词了。