(once-only (string value winp consumedp)
(with-gensyms (my-value my-winp my-consumedp label what)
`(let ((,scanner (make-string-scanner ,string)))
+ (declare (ignorable ,scanner))
(multiple-value-bind (,my-value ,my-winp ,my-consumedp)
(with-parser-context
(character-scanner-context :scanner ,scanner)
;;;--------------------------------------------------------------------------
;;; Test expression parser.
-(defparse token (:context (context character-parser-context) parser)
- (with-gensyms (value)
- (expand-parser-spec context
- `(seq ((,value ,parser) :whitespace) ,value))))
+(eval-when (:compile-toplevel :load-toplevel :execute)
+ (defparse token (:context (context character-parser-context) parser)
+ (with-gensyms (value)
+ (expand-parser-spec context
+ `(seq ((,value ,parser) :whitespace) ,value)))))
(let ((add (binop "+" (x y 5) `(+ ,x ,y)))
(sub (binop "-" (x y 5) `(- ,x ,y)))