chiark / gitweb /
src/: Export a package version from the ASDF system definition.
[sod] / src / scratch.lisp
1 (in-package #:sod)
2
3 (defun try-parse* (parser string)
4   (call-with-module-environment
5    (lambda ()
6      (let* ((char-scanner (make-string-scanner string))
7             (scanner (make-instance 'sod-token-scanner
8                                     :char-scanner char-scanner)))
9        (funcall parser scanner)))))
10
11 (defmacro try-parse ((scanner string) &body parser)
12   `(try-parse* (lambda (,scanner)
13                  (with-parser-context
14                      (token-scanner-context :scanner ,scanner)
15                    ,@parser))
16                ,string))