src/parser/parser-proto.lisp: Export `combine-parser-failures'.
[sod] / src / parser / parser-proto.lisp
index 4242dfe..4bd1ae4 100644 (file)
@@ -77,6 +77,7 @@
 ;;;--------------------------------------------------------------------------
 ;;; Utilities.
 
+(export 'combine-parser-failures)
 (defun combine-parser-failures (failures)
   "Combine the failure indicators listed in FAILURES.
 
     (:documentation
      "Expand a parser list-form given by HEAD and TAIL, in CONTEXT.")
     (:method (context head tail)
+      (declare (ignore context))
       (cons head tail)))
 
   (export 'wrap-parser)
   (defgeneric wrap-parser (context form)
     (:documentation
      "Enclose FORM in whatever is necessary to make the parser work.")
-    (:method (context form) form)))
+    (:method (context form)
+      (declare (ignore context))
+      form)))
 
 (export 'defparse)
 (defmacro defparse (name bvl &body body)
        `(defmethod expand-parser-form
             ((,context ,ctxclass) (,head (eql ',name)) ,tail)
           ,@doc
+          (declare (ignorable ,context))
           (block ,name
             (destructuring-bind ,bvl ,tail
               ,@decls
 
 (defmethod expand-parser-spec (context (spec (eql t)))
   "Always matches without consuming input."
+  (declare (ignore context))
   '(values t t nil))
 
 (defmethod expand-parser-spec (context (spec (eql nil)))
   "Always fails without consuming input.  The failure indicator is `:fail'."
+  (declare (ignore context))
   '(values '(:fail) nil nil))
 
 (export 'seq)
    underlying scanner can use this call to determine whether there are
    outstanding captured places, and thereby optimize its behaviour.  Be
    careful: all of this is happening at macro-expansion time.")
-    (:method (context place) nil))
+    (:method (context place)
+      (declare (ignore context place))
+      nil))
 
   (export 'parser-places-must-be-released-p)
   (defgeneric parser-places-must-be-released-p (context)
    the correct cleanup.  If it returns false, then the `unwind-protect' is
    omitted so that the runtime code does't have to register cleanup
    handlers.")
-    (:method (context) t)))
+    (:method (context)
+      (declare (ignore context))
+      t)))
 
 (export 'with-parser-place)
 (defmacro with-parser-place ((place context) &body body)