(zilch lang rust): initial commit

This commit is contained in:
puck 2024-11-25 22:06:44 +00:00
parent d52a1e7796
commit 5380ac9307
12 changed files with 1392 additions and 3 deletions

View file

@ -4,7 +4,7 @@
(chicken base) (chicken format)
(srfi 152))
(export
version-major version-minor version-patch version-prerelease version-build-metadata
make-version version-major version-minor version-patch version-prerelease version-build-metadata
version-str parse-version
version=? version<?)
@ -36,8 +36,9 @@
(define (parse-version version-string)
(define version-string-length (string-length version-string))
(define separators '(#\. #\+ #\-))
(define (is-terminator ch)
(member ch '(#\. #\+ #\-)))
(member ch separators))
(define (parse-until-next-splat index)
(define out-list '())
(define (tick)
@ -57,6 +58,7 @@
(for-each (lambda (p) (when (string=? p "") (error "Version string contains empty part" version-string))) version-parts)
(define prerelease-parts #f)
(set! separators '(#\. #\+))
(when (and next-index (char=? version-terminator #\-))
(let-values (((parts-tmp next-index-tmp terminator-tmp) (parse-until-next-splat (+ next-index 1))))
(set! prerelease-parts parts-tmp)