X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=blobdiff_plain;f=extra%2Fsemver%2Fsemver.factor;h=92f3f998dd9d11926a80096eec689c79adaad392;hp=6826136065a387bd9a90dca5c95d46aac0622d8b;hb=cda1e5f9ad1d6b55077b7a88f18e89e882e8ffef;hpb=7af857659fff7cdb98ffa94d012cf39014a57433 diff --git a/extra/semver/semver.factor b/extra/semver/semver.factor index 6826136065..92f3f998dd 100644 --- a/extra/semver/semver.factor +++ b/extra/semver/semver.factor @@ -1,6 +1,6 @@ ! Copyright (C) 2020 Doug Coleman. ! See http://factorcode.org/license.txt for BSD license. -USING: accessors arrays assocs combinators combinators.smart +USING: accessors arrays assocs combinators combinators.smart io kernel math math.order math.parser multiline peg.ebnf sequences sequences.deep sequences.extras splitting strings ; IN: semver @@ -32,6 +32,8 @@ TUPLE: semver [ "." split [ string>number ] map first3 ] 2dip semver boa ; +: ( str -- semver ) parse-semver ; inline + : first-semver-slot ( semver -- class ) { { [ dup major>> 0 > ] [ drop major ] } @@ -63,6 +65,9 @@ TUPLE: semver } cleave ] "" append-outputs-as ; +: semver. ( semver -- ) + semver>string print ; + : semver-inc-major ( semver -- semver ) dup prerelease>> [ [ 1 + ] change-major @@ -91,7 +96,6 @@ TUPLE: semver : semver-inc-patch ( semver -- semver ) dup prerelease>> [ [ 1 + ] change-patch - 0 >>patch "" >>prerelease "" >>build ] [