Guest User

Untitled

a guest
Apr 11th, 2012
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 0.67 KB | None | 0 0
  1. (ql:quickload :smug)
  2. (defpackage :dclisp (:use :cl :smug))
  3. (in-package :dclisp)
  4.  
  5. ;;(defvar global-table '(("define" (atom args definiton)                                                                
  6.  
  7. (defun sexp ()
  8.   (skip-whitespace
  9.    (=or (<list>) (<atom>))))
  10.  
  11. (defun <list> ()
  12.   (=let* ((_ (=char #\())
  13.           (contents (skip-whitespace
  14.                      (zero-or-more (sexp))))
  15.           (_ (=or (=char #\)))))
  16.     (result contents)))
  17.  
  18. (defun <atom> ()
  19.   (text (none-of "() ")))
  20.  
  21. (defun parse-input (input)
  22.   (let* ((parsed (funcall (sexp) input)))
  23.     (if (equal (cdr parsed) nil)
  24.     (car parsed)
  25.     (cons (car parsed) (parse-input (cdr parsed))))))
Advertisement
Add Comment
Please, Sign In to add comment