racket/collects/deinprogramm/syntax-checkers.rkt
2010-04-27 16:50:15 -06:00

21 lines
537 B
Racket

#lang scheme/base
(provide check-for-id!
check-for-id-list!)
(define (check-for-id! arg error-msg)
(when (not (identifier? arg))
(raise-syntax-error #f error-msg arg)))
(define (check-for-id-list! args error-msg)
(for-each (lambda (arg)
(check-for-id! arg error-msg))
args)
(cond ((check-duplicate-identifier args)
=> (lambda (dup)
(raise-syntax-error
#f
"Bezeichner doppelt gebunden"
args dup)))
(else #t)))