我的Lisp解释器不识别defgrammar?

时间:2013-06-28 01:59:44

标签: clisp

我是Lisp的新手,所以我猜我在这里错过了一些简单的东西。我在网上找到了一些我想玩的代码,它使用了defgrammar宏。当我把它写入我的代码文件时,完全从Web复制到开始,保存和加载,它说(省略文件名):

;; Loading file ...
*** - EVAL: undefined function DEFGRAMMAR

我猜我有一些变量需要翻转,比如打印圆形列表,或者一些附件或者我必须安装的东西,但我真的不知道我在找什么。有什么建议吗?

顺便说一下,我正在使用GNU CLisp 2.49。

我正在尝试使用的代码是:

(load "rdp")
(use-package "COM.INFORMATIMAGO.RDP")
(defgrammar binary-tree
:terminals ((label   "[^(),][^(),]*"))
:start tree
:rules ((--> tree
             (opt node)
             :action (if (null $1)
                         (make-empty-binary-tree)
                         $1)) ; it's identity, but make-empty-binary-tree
                                    ; could be defined otherwise.
        (--> node
             label (opt children)
             :action (make-binary-tree :label (read-from-string (second $1))
                                       :left (first $2) :right (second $2)))
        (--> children
             "(" tree "," tree ")"
             :action (list $2 $4))))


(defun binary-tree-from-string (string)
  (parse-binary-tree string))

看着它,我猜我需要“rdp”?

1 个答案:

答案 0 :(得分:0)

您想要使用的代码是什么,可以将其粘贴到此处吗? defgrammar不是内置函数。您应该找到defgrammar函数的定义。首先加载它然后重新评估您的示例。