summaryrefslogtreecommitdiff
path: root/main.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'main.lisp')
-rw-r--r--main.lisp27
1 files changed, 0 insertions, 27 deletions
diff --git a/main.lisp b/main.lisp
deleted file mode 100644
index b557327..0000000
--- a/main.lisp
+++ /dev/null
@@ -1,27 +0,0 @@
-(in-package #:monparser)
-
-(declaim (ftype (function (parser string) result) parse))
-(defun parse (parser data)
- (funcall parser (make-cursor :data data)))
-
-(declaim (ftype (function (parser string) parser) append-on-failure))
-(defun append-on-failure (p message)
- (lambda (input)
- (let ((result (funcall p input)))
- (if (failure-p result)
- (make-failure :place (result-place result)
- :message (concatenate 'string message (failure-message result))
- :priority (failure-priority result))
- result))))
-
-(defmacro defparser (name args parser)
- (let ((message (format nil "In ~a:~&" name)))
- (if (and (listp args) (every #'symbolp args))
- (let (definition)
- (when (= (length args) 0)
- (push `(defparameter ,name (,name)) definition))
- (push `(defun ,name (,@args) (append-on-failure ,parser ,message))
- definition)
- (push 'progn definition)
- definition)
- (error "Malformed argument list."))))