diff options
Diffstat (limited to 'main.lisp')
| -rw-r--r-- | main.lisp | 17 |
1 files changed, 8 insertions, 9 deletions
@@ -1,17 +1,16 @@ (in-package #:monparser) (defun parse (parser data) - (let* ((result (funcall parser - (make-instance 'cursed:text - :data data)))) - (if (parsing-p result) - (let ((finished? (not (cursed:has-data? (parsing-end result))))) - (values (parsing-tree result) finished?)) - result))) + (if (typep data 'string) + (funcall parser + (make-instance 'text :data data) + (make-instance 'text :data data)) + (error "Only string parsing is allowed."))) (defun append-on-failure (p message) - (lambda (input) - (let ((result (funcall p input))) + (lambda (start input) + (declare (ignore start)) + (let ((result (funcall p input input))) (if (failure-p result) (make-failure :place (failure-place result) :message (concatenate 'string message (failure-message result)) |
