[jsemver] 73/95: Refactor VersionParser, make some improvements

Alexandre Viau reazem-guest at moszumanska.debian.org
Mon Feb 16 14:58:32 UTC 2015


This is an automated email from the git hooks/post-receive script.

reazem-guest pushed a commit to branch master
in repository jsemver.

commit abaca661ff4f0d60063b5244558d1676f03455b9
Author: Zafar Khaja <zafarkhaja at gmail.com>
Date:   Mon Jan 27 14:09:47 2014 +0400

    Refactor VersionParser, make some improvements
---
 .../github/zafarkhaja/semver/VersionParser.java    | 54 ++++++++++------------
 1 file changed, 24 insertions(+), 30 deletions(-)

diff --git a/src/main/java/com/github/zafarkhaja/semver/VersionParser.java b/src/main/java/com/github/zafarkhaja/semver/VersionParser.java
index bbeb0d1..1911e61 100644
--- a/src/main/java/com/github/zafarkhaja/semver/VersionParser.java
+++ b/src/main/java/com/github/zafarkhaja/semver/VersionParser.java
@@ -224,18 +224,18 @@ class VersionParser implements Parser<Version> {
      * @return a valid version object
      */
     private Version parseValidSemVer() {
-        NormalVersion normalVersion = parseVersionCore();
-        MetadataVersion preReleaseVersion = MetadataVersion.NULL;
-        MetadataVersion buildMetadata = MetadataVersion.NULL;
+        NormalVersion normal = parseVersionCore();
+        MetadataVersion preRelease = MetadataVersion.NULL;
         if (chars.positiveLookahead(HYPHEN)) {
             chars.consume();
-            preReleaseVersion = parsePreRelease();
+            preRelease = parsePreRelease();
         }
+        MetadataVersion build = MetadataVersion.NULL;
         if (chars.positiveLookahead(PLUS)) {
             chars.consume();
-            buildMetadata = parseBuild();
+            build = parseBuild();
         }
-        return new Version(normalVersion, preReleaseVersion, buildMetadata);
+        return new Version(normal, preRelease, build);
     }
 
     /**
@@ -277,23 +277,21 @@ class VersionParser implements Parser<Version> {
      * @throws ParseException if the pre-release version has empty identifier(s)
      */
     private MetadataVersion parsePreRelease() {
+        List<String> idents = new ArrayList<String>();
         CharType end = closestEndpoint(PLUS, EOL);
         CharType before = closestEndpoint(DOT, end);
-        List<String> idents = new ArrayList<String>();
-        while (!chars.positiveLookahead(end)) {
-            if (before == DOT) {
-                checkForEmptyIdentifier();
-            }
+        do {
+            checkForEmptyIdentifier();
             if (chars.positiveLookaheadBefore(before, LETTER, HYPHEN)) {
                 idents.add(alphanumericIdentifier());
             } else {
                 idents.add(numericIdentifier());
             }
             if (before == DOT) {
-                chars.consume();
+                chars.consume(DOT);
+                before = closestEndpoint(DOT, end);
             }
-            before = closestEndpoint(DOT, end);
-        }
+        } while (!chars.positiveLookahead(end));
         return new MetadataVersion(idents.toArray(new String[idents.size()]));
     }
 
@@ -316,23 +314,21 @@ class VersionParser implements Parser<Version> {
      * @throws ParseException if the build metadata has empty identifier(s)
      */
     private MetadataVersion parseBuild() {
+        List<String> idents = new ArrayList<String>();
         CharType end = EOL;
         CharType before = closestEndpoint(DOT, end);
-        List<String> idents = new ArrayList<String>();
-        while (!chars.positiveLookahead(end)) {
-            if (before == DOT) {
-                checkForEmptyIdentifier();
-            }
+        do {
+            checkForEmptyIdentifier();
             if (chars.positiveLookaheadBefore(before, LETTER, HYPHEN)) {
                 idents.add(alphanumericIdentifier());
             } else {
                 idents.add(digits());
             }
             if (before == DOT) {
-                chars.consume();
+                chars.consume(DOT);
+                before = closestEndpoint(DOT, end);
             }
-            before = closestEndpoint(DOT, end);
-        }
+        } while (!chars.positiveLookahead(end));
         return new MetadataVersion(idents.toArray(new String[idents.size()]));
     }
 
@@ -371,10 +367,9 @@ class VersionParser implements Parser<Version> {
      */
     private String alphanumericIdentifier() {
         StringBuilder sb = new StringBuilder();
-        sb.append(chars.consume(DIGIT, LETTER, HYPHEN));
-        while (chars.positiveLookahead(DIGIT, LETTER, HYPHEN)) {
-            sb.append(chars.consume());
-        }
+        do {
+            sb.append(chars.consume(DIGIT, LETTER, HYPHEN));
+        } while (chars.positiveLookahead(DIGIT, LETTER, HYPHEN));
         return sb.toString();
     }
 
@@ -392,10 +387,9 @@ class VersionParser implements Parser<Version> {
      */
     private String digits() {
         StringBuilder sb = new StringBuilder();
-        sb.append(chars.consume(DIGIT));
-        while (chars.positiveLookahead(DIGIT)) {
-            sb.append(chars.consume());
-        }
+        do {
+            sb.append(chars.consume(DIGIT));
+        } while (chars.positiveLookahead(DIGIT));
         return sb.toString();
     }
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/jsemver.git



More information about the pkg-java-commits mailing list