- (with-input-from-string (in string)
- (let* ((*module-type-map* (make-hash-table))
- (charscan (make-instance 'charbuf-scanner
- :stream in
- :filename "<string>"))
- (tokscan (make-instance 'sod-token-scanner
- :char-scanner charscan
- :filename "<string>")))
- (with-parser-context (token-scanner-context :scanner tokscan)
- (multiple-value-bind (value winp consumedp)
- (parse (seq ((decls (parse-c-type tokscan))
- (type (parse-declarator tokscan decls :abstractp t))
- :eof)
- type))
- (declare (ignore consumedp))
- (if winp
- (values t (car value) (cdr value)
- (princ-to-string (car value)))
- (values nil value)))))))
+ (with-test-scanner (scanner string)
+ (multiple-value-bind (value winp consumedp)
+ (parse (seq ((decls (parse-c-type scanner))
+ (type (parse-declarator scanner decls :abstractp t))
+ :eof)
+ type))
+ (declare (ignore consumedp))
+ (if winp
+ (values t (car value) (cdr value)
+ (princ-to-string (car value)))
+ (values nil value)))))
+
+(export 'test-parse-pset)
+(defun test-parse-pset (string)
+ "Parse STRING as a property set, and show the results."
+ (with-test-scanner (scanner string)
+ (multiple-value-bind (value winp consumedp)
+ (parse-property-set scanner)
+ (declare (ignore consumedp))
+ (values winp value))))