Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (ql:quickload :smug)
- (defpackage :dclisp (:use :cl :smug))
- (in-package :dclisp)
- ;;(defvar global-table '(("define" (atom args definiton)
- (defun sexp ()
- (skip-whitespace
- (=or (<list>) (<atom>))))
- (defun <list> ()
- (=let* ((_ (=char #\())
- (contents (skip-whitespace
- (zero-or-more (sexp))))
- (_ (=or (=char #\)))))
- (result contents)))
- (defun <atom> ()
- (text (none-of "() ")))
- (defun parse-input (input)
- (let* ((parsed (funcall (sexp) input)))
- (if (equal (cdr parsed) nil)
- (car parsed)
- (cons (car parsed) (parse-input (cdr parsed))))))
Advertisement
Add Comment
Please, Sign In to add comment