diff --git a/scsh/enumconst.scm b/scsh/enumconst.scm index 7de5a3e..e3957b4 100644 --- a/scsh/enumconst.scm +++ b/scsh/enumconst.scm @@ -33,3 +33,18 @@ (syntax-rules () ((define-enum-constants set (elt val) ...) (begin (define-enum-constant set elt val) ...)))) + +(define-syntax define-enum-constants-from-x + (syntax-rules + () + ((define-enum-constants-from-zero x set ()) + (begin)) + ((define-enum-constants-from-zero x set (elt1 elt2 ...)) + (begin (define-enum-constant set elt1 x) + (define-enum-constants-from-x (+ x 1) set (elt2 ...)))))) + +(define-syntax define-enum-constants-from-zero + (syntax-rules + () + ((define-enum-constants-from-zero set (elt ...)) + (define-enum-constants-from-x 0 set (elt ...)))))