2011-10-18 10 views

答えて

1

はおそらく、あなたはのいくつかを使用することができます機能は、特定のパッケージ、マクロあなた杖の使用with-package-iteratorで定義されているA Small Lisp interpreter in Java

0

からコードを知りたい場合は、このように:。

(with-package-iterator (next (find-package 'test) :internal) 
    (loop :for (more? sym) := (multiple-value-list (next)) 
     :if (fboundp sym) :collect sym :into rez 
     :else :unless more? :do (return rez))) 

あなただけ抽出したい場合関数をスクリプト(-file)から削除すると、最も簡単な方法は、正規表現"\\(defun (.+)\\s"または類似のものでスキャンするようです。

0

非常に単純なケースでは、正規表現を使用できます。わずかに単純なケースでは、S式のリーダを実装するのが合理的なアプローチかもしれません(あなたは読者のマクロを無視するだけでなくなります)。しかし、一般的には、特にマクロロジーが関与する場合は、Common LispのJava実装であるArmed Bear Common Lispを埋め込み、前述のVsevolodフォームwith-package-iteratorを使用することを検討してください。

関連する問題