       (replace-match "" nil nil))))
 
 ;;; ParselTongue grammar
-
-(with-temp-buffer
-  (insert-buffer-substring (get-buffer-create "*example*"))
-  (psl-remove-comments)
-  (goto-char (point-min))
-  (mpd-match 'expr psl-tokens psl-token-funcs))
 
 (defvar psl-tokens
   '((expr      [block defvar deffun number object lambda string

(eval-when-compile (require 'cl))

(defun psl-eval-buffer ()
  "Evaluate the ParselTongue program in the buffer."
  (interactive)
  (let ((buffer (current-buffer)))
    (with-temp-buffer
      (insert-buffer-substring buffer) ; lose the text properties
      (psl-remove-comments)
      (goto-char (point-min))
      (psl-print (eval (mpd-match 'expr psl-tokens psl-token-funcs))))))

(defun psl-+ (a &args rest)
  "Implement ParselTongue's + function."

  o)

(defun psl-remove-comments ()
  "Remove ParselTongue comments from the current buffer."
  (interactive)
  (save-excursion
    (goto-char (point-min))
