diff --git a/src/main/java/com/github/zafarkhaja/semver/VersionParser.java b/src/main/java/com/github/zafarkhaja/semver/VersionParser.java index 361164e..94001c9 100644 --- a/src/main/java/com/github/zafarkhaja/semver/VersionParser.java +++ b/src/main/java/com/github/zafarkhaja/semver/VersionParser.java @@ -104,7 +104,7 @@ class VersionParser implements Parser { return chr == '+'; } }, - EOL { + EOI { /** * {@inheritDoc} */ @@ -256,17 +256,17 @@ class VersionParser implements Parser { MetadataVersion preRelease = MetadataVersion.NULL; MetadataVersion build = MetadataVersion.NULL; - Character next = consumeNextCharacter(HYPHEN, PLUS, EOL); + Character next = consumeNextCharacter(HYPHEN, PLUS, EOI); if (HYPHEN.isMatchedBy(next)) { preRelease = parsePreRelease(); - next = consumeNextCharacter(PLUS, EOL); + next = consumeNextCharacter(PLUS, EOI); if (PLUS.isMatchedBy(next)) { build = parseBuild(); } } else if (PLUS.isMatchedBy(next)) { build = parseBuild(); } - consumeNextCharacter(EOL); + consumeNextCharacter(EOI); return new Version(normal, preRelease, build); } @@ -332,7 +332,7 @@ class VersionParser implements Parser { */ private String preReleaseIdentifier() { checkForEmptyIdentifier(); - CharType boundary = nearestCharType(DOT, PLUS, EOL); + CharType boundary = nearestCharType(DOT, PLUS, EOI); if (chars.positiveLookaheadBefore(boundary, LETTER, HYPHEN)) { return alphanumericIdentifier(); } else { @@ -382,7 +382,7 @@ class VersionParser implements Parser { */ private String buildIdentifier() { checkForEmptyIdentifier(); - CharType boundary = nearestCharType(DOT, EOL); + CharType boundary = nearestCharType(DOT, EOI); if (chars.positiveLookaheadBefore(boundary, LETTER, HYPHEN)) { return alphanumericIdentifier(); } else { @@ -454,7 +454,7 @@ class VersionParser implements Parser { * Finds the nearest character type. * * @param types the character types to choose from - * @return the nearest character type or {@code EOL} + * @return the nearest character type or {@code EOI} */ private CharType nearestCharType(CharType... types) { for (Character chr : chars) { @@ -464,7 +464,7 @@ class VersionParser implements Parser { } } } - return EOL; + return EOI; } /** @@ -490,7 +490,7 @@ class VersionParser implements Parser { */ private void checkForEmptyIdentifier() { Character la = chars.lookahead(1); - if (DOT.isMatchedBy(la) || PLUS.isMatchedBy(la) || EOL.isMatchedBy(la)) { + if (DOT.isMatchedBy(la) || PLUS.isMatchedBy(la) || EOI.isMatchedBy(la)) { throw new ParseException( "Identifiers MUST NOT be empty", new UnexpectedCharacterException( diff --git a/src/main/java/com/github/zafarkhaja/semver/expr/ExpressionParser.java b/src/main/java/com/github/zafarkhaja/semver/expr/ExpressionParser.java index c54d3e0..c768007 100644 --- a/src/main/java/com/github/zafarkhaja/semver/expr/ExpressionParser.java +++ b/src/main/java/com/github/zafarkhaja/semver/expr/ExpressionParser.java @@ -85,7 +85,7 @@ public class ExpressionParser implements Parser { public Expression parse(String input) { tokens = lexer.tokenize(input); Expression expr = parseSemVerExpression(); - consumeNextToken(EOL); + consumeNextToken(EOI); return expr; } diff --git a/src/main/java/com/github/zafarkhaja/semver/expr/Lexer.java b/src/main/java/com/github/zafarkhaja/semver/expr/Lexer.java index a19237c..f774664 100644 --- a/src/main/java/com/github/zafarkhaja/semver/expr/Lexer.java +++ b/src/main/java/com/github/zafarkhaja/semver/expr/Lexer.java @@ -65,7 +65,7 @@ class Lexer { LEFT_PAREN("\\("), RIGHT_PAREN("\\)"), WHITESPACE("\\s+"), - EOL("?!"); + EOI("?!"); /** * A pattern matching this type. @@ -218,7 +218,7 @@ class Lexer { throw new LexerException(input); } } - tokens.add(new Token(Token.Type.EOL, null, tokenPos)); + tokens.add(new Token(Token.Type.EOI, null, tokenPos)); return new Stream(tokens.toArray(new Token[tokens.size()])); } } diff --git a/src/test/java/com/github/zafarkhaja/semver/ParserErrorHandlingTest.java b/src/test/java/com/github/zafarkhaja/semver/ParserErrorHandlingTest.java index de547f1..8132a85 100644 --- a/src/test/java/com/github/zafarkhaja/semver/ParserErrorHandlingTest.java +++ b/src/test/java/com/github/zafarkhaja/semver/ParserErrorHandlingTest.java @@ -95,11 +95,11 @@ public class ParserErrorHandlingTest { { "v1.2.3", 'v', 0, new CharType[] { DIGIT } }, { "1.2.3-", null, 6, new CharType[] { DIGIT, LETTER, HYPHEN } }, { "1.2. 3", ' ', 4, new CharType[] { DIGIT } }, - { "1.2.3=alpha", '=', 5, new CharType[] { HYPHEN, PLUS, EOL } }, - { "1.2.3~beta", '~', 5, new CharType[] { HYPHEN, PLUS, EOL } }, - { "1.2.3-be$ta", '$', 8, new CharType[] { PLUS, EOL } }, - { "1.2.3+b1+b2", '+', 8, new CharType[] { EOL } }, - { "1.2.3-rc!", '!', 8, new CharType[] { PLUS, EOL } }, + { "1.2.3=alpha", '=', 5, new CharType[] { HYPHEN, PLUS, EOI } }, + { "1.2.3~beta", '~', 5, new CharType[] { HYPHEN, PLUS, EOI } }, + { "1.2.3-be$ta", '$', 8, new CharType[] { PLUS, EOI } }, + { "1.2.3+b1+b2", '+', 8, new CharType[] { EOI } }, + { "1.2.3-rc!", '!', 8, new CharType[] { PLUS, EOI } }, { "1.2.3-+", '+', 6, new CharType[] { DIGIT, LETTER, HYPHEN } }, { "1.2.3-@", '@', 6, new CharType[] { DIGIT, LETTER, HYPHEN } }, { "1.2.3+@", '@', 6, new CharType[] { DIGIT, LETTER, HYPHEN } }, diff --git a/src/test/java/com/github/zafarkhaja/semver/VersionParserCharTypeTest.java b/src/test/java/com/github/zafarkhaja/semver/VersionParserCharTypeTest.java index 10d3016..6d64886 100644 --- a/src/test/java/com/github/zafarkhaja/semver/VersionParserCharTypeTest.java +++ b/src/test/java/com/github/zafarkhaja/semver/VersionParserCharTypeTest.java @@ -76,10 +76,10 @@ public class VersionParserCharTypeTest { @Test public void shouldBeMatchedByEol() { - assertTrue(EOL.isMatchedBy(null)); - assertFalse(EOL.isMatchedBy('-')); - assertFalse(EOL.isMatchedBy('a')); - assertFalse(EOL.isMatchedBy('0')); + assertTrue(EOI.isMatchedBy(null)); + assertFalse(EOI.isMatchedBy('-')); + assertFalse(EOI.isMatchedBy('a')); + assertFalse(EOI.isMatchedBy('0')); } @Test @@ -97,7 +97,7 @@ public class VersionParserCharTypeTest { assertEquals(DOT, CharType.forCharacter('.')); assertEquals(HYPHEN, CharType.forCharacter('-')); assertEquals(PLUS, CharType.forCharacter('+')); - assertEquals(EOL, CharType.forCharacter(null)); + assertEquals(EOI, CharType.forCharacter(null)); assertEquals(ILLEGAL, CharType.forCharacter('!')); } } diff --git a/src/test/java/com/github/zafarkhaja/semver/expr/LexerTest.java b/src/test/java/com/github/zafarkhaja/semver/expr/LexerTest.java index b5b0502..777249c 100644 --- a/src/test/java/com/github/zafarkhaja/semver/expr/LexerTest.java +++ b/src/test/java/com/github/zafarkhaja/semver/expr/LexerTest.java @@ -44,7 +44,7 @@ public class LexerTest { new Token(NUMERIC, "0", 3), new Token(DOT, ".", 4), new Token(NUMERIC, "0", 5), - new Token(EOL, null, 6), + new Token(EOI, null, 6), }; Lexer lexer = new Lexer(); Stream stream = lexer.tokenize(">1.0.0"); @@ -56,7 +56,7 @@ public class LexerTest { Token[] expected = { new Token(GREATER, ">", 0), new Token(NUMERIC, "1", 2), - new Token(EOL, null, 3), + new Token(EOI, null, 3), }; Lexer lexer = new Lexer(); Stream stream = lexer.tokenize("> 1"); @@ -71,7 +71,7 @@ public class LexerTest { new Token(NUMERIC, "2", 2), new Token(DOT, ".", 3), new Token(NUMERIC, "3", 4), - new Token(EOL, null, 5), + new Token(EOI, null, 5), }; Lexer lexer = new Lexer(); Stream stream = lexer.tokenize("1.2.3"); diff --git a/src/test/java/com/github/zafarkhaja/semver/expr/ParserErrorHandlingTest.java b/src/test/java/com/github/zafarkhaja/semver/expr/ParserErrorHandlingTest.java index 617dcca..3b3d1db 100644 --- a/src/test/java/com/github/zafarkhaja/semver/expr/ParserErrorHandlingTest.java +++ b/src/test/java/com/github/zafarkhaja/semver/expr/ParserErrorHandlingTest.java @@ -69,10 +69,10 @@ public class ParserErrorHandlingTest { @Parameters(name = "{0}") public static Collection parameters() { return Arrays.asList(new Object[][] { - { "1)", new Token(RIGHT_PAREN, ")", 1), new Token.Type[] { EOL } }, - { "(>1.0.1", new Token(EOL, null, 7), new Token.Type[] { RIGHT_PAREN } }, - { "((>=1 & <2)", new Token(EOL, null, 11), new Token.Type[] { RIGHT_PAREN } }, - { ">=1.0.0 &", new Token(EOL, null, 9), new Token.Type[] { NUMERIC } }, + { "1)", new Token(RIGHT_PAREN, ")", 1), new Token.Type[] { EOI } }, + { "(>1.0.1", new Token(EOI, null, 7), new Token.Type[] { RIGHT_PAREN } }, + { "((>=1 & <2)", new Token(EOI, null, 11), new Token.Type[] { RIGHT_PAREN } }, + { ">=1.0.0 &", new Token(EOI, null, 9), new Token.Type[] { NUMERIC } }, { "(>2.0 |)", new Token(RIGHT_PAREN, ")", 7), new Token.Type[] { NUMERIC } }, { "& 1.2", new Token(AND, "&", 0), new Token.Type[] { NUMERIC } }, });