diff options
| author | Juan Manuel Tomás <jtomas1815@gmail.com> | 2025-12-31 16:14:31 -0300 |
|---|---|---|
| committer | Juan Manuel Tomás <jtomas1815@gmail.com> | 2025-12-31 16:14:31 -0300 |
| commit | 9566e92321a1ed29a7f5903a3ba4ab16de3783b9 (patch) | |
| tree | db2360d29cc3e8fe931b868017c662fc6aabbc5f /extra.lisp | |
| parent | 13525655b8a8577b0f1f467515ec259e85028b10 (diff) | |
| download | monparser-9566e92321a1ed29a7f5903a3ba4ab16de3783b9.tar.gz monparser-9566e92321a1ed29a7f5903a3ba4ab16de3783b9.zip | |
Type check functions
Diffstat (limited to 'extra.lisp')
| -rw-r--r-- | extra.lisp | 27 |
1 files changed, 15 insertions, 12 deletions
@@ -1,9 +1,10 @@ (in-package #:monparser) -(defparameter whitespace - (many (unit (or (char= it #\Space) - (not (graphic-char-p it)))))) +(defun whitespace? (it) + (or (char= it #\Space) + (not (graphic-char-p it)))) +(declaim (ftype (function (parser integer integer) parser) repeat)) (defun repeat (p min &optional (max 0)) (if (> min 0) (comp ((x p) @@ -28,13 +29,15 @@ `(comp ,(reverse binding-list) ,(cons 'list (reverse name-list))))) -(defmacro within (left p right) - `(comp ((_ ,left) - (cell ,p) - (_ ,right)) - cell)) +(declaim (ftype (function (parser parser parser) parser) within)) +(defun within (left p right) + (comp ((_ left) + (cell p) + (_ right)) + cell)) -(defmacro interlinked (p separator) - `(many (comp ((cell ,p) - (_ (optional ,separator))) - cell))) +(declaim (ftype (function (parser parser) parser) interlinked)) +(defun interlinked (p separator) + (many (comp ((cell p) + (_ (optional separator))) + cell))) |
