src/: Export a package version from the ASDF system definition.
[sod] / src / scratch.lisp
CommitLineData
dea4d055
MW
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))