Rename EOL (End Of Line) to EOI (End Of Input)
This commit is contained in:
parent
f3f9b81838
commit
97c768eab1
@ -104,7 +104,7 @@ class VersionParser implements Parser<Version> {
|
|||||||
return chr == '+';
|
return chr == '+';
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
EOL {
|
EOI {
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@ -256,17 +256,17 @@ class VersionParser implements Parser<Version> {
|
|||||||
MetadataVersion preRelease = MetadataVersion.NULL;
|
MetadataVersion preRelease = MetadataVersion.NULL;
|
||||||
MetadataVersion build = MetadataVersion.NULL;
|
MetadataVersion build = MetadataVersion.NULL;
|
||||||
|
|
||||||
Character next = consumeNextCharacter(HYPHEN, PLUS, EOL);
|
Character next = consumeNextCharacter(HYPHEN, PLUS, EOI);
|
||||||
if (HYPHEN.isMatchedBy(next)) {
|
if (HYPHEN.isMatchedBy(next)) {
|
||||||
preRelease = parsePreRelease();
|
preRelease = parsePreRelease();
|
||||||
next = consumeNextCharacter(PLUS, EOL);
|
next = consumeNextCharacter(PLUS, EOI);
|
||||||
if (PLUS.isMatchedBy(next)) {
|
if (PLUS.isMatchedBy(next)) {
|
||||||
build = parseBuild();
|
build = parseBuild();
|
||||||
}
|
}
|
||||||
} else if (PLUS.isMatchedBy(next)) {
|
} else if (PLUS.isMatchedBy(next)) {
|
||||||
build = parseBuild();
|
build = parseBuild();
|
||||||
}
|
}
|
||||||
consumeNextCharacter(EOL);
|
consumeNextCharacter(EOI);
|
||||||
return new Version(normal, preRelease, build);
|
return new Version(normal, preRelease, build);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -332,7 +332,7 @@ class VersionParser implements Parser<Version> {
|
|||||||
*/
|
*/
|
||||||
private String preReleaseIdentifier() {
|
private String preReleaseIdentifier() {
|
||||||
checkForEmptyIdentifier();
|
checkForEmptyIdentifier();
|
||||||
CharType boundary = nearestCharType(DOT, PLUS, EOL);
|
CharType boundary = nearestCharType(DOT, PLUS, EOI);
|
||||||
if (chars.positiveLookaheadBefore(boundary, LETTER, HYPHEN)) {
|
if (chars.positiveLookaheadBefore(boundary, LETTER, HYPHEN)) {
|
||||||
return alphanumericIdentifier();
|
return alphanumericIdentifier();
|
||||||
} else {
|
} else {
|
||||||
@ -382,7 +382,7 @@ class VersionParser implements Parser<Version> {
|
|||||||
*/
|
*/
|
||||||
private String buildIdentifier() {
|
private String buildIdentifier() {
|
||||||
checkForEmptyIdentifier();
|
checkForEmptyIdentifier();
|
||||||
CharType boundary = nearestCharType(DOT, EOL);
|
CharType boundary = nearestCharType(DOT, EOI);
|
||||||
if (chars.positiveLookaheadBefore(boundary, LETTER, HYPHEN)) {
|
if (chars.positiveLookaheadBefore(boundary, LETTER, HYPHEN)) {
|
||||||
return alphanumericIdentifier();
|
return alphanumericIdentifier();
|
||||||
} else {
|
} else {
|
||||||
@ -454,7 +454,7 @@ class VersionParser implements Parser<Version> {
|
|||||||
* Finds the nearest character type.
|
* Finds the nearest character type.
|
||||||
*
|
*
|
||||||
* @param types the character types to choose from
|
* @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) {
|
private CharType nearestCharType(CharType... types) {
|
||||||
for (Character chr : chars) {
|
for (Character chr : chars) {
|
||||||
@ -464,7 +464,7 @@ class VersionParser implements Parser<Version> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return EOL;
|
return EOI;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -490,7 +490,7 @@ class VersionParser implements Parser<Version> {
|
|||||||
*/
|
*/
|
||||||
private void checkForEmptyIdentifier() {
|
private void checkForEmptyIdentifier() {
|
||||||
Character la = chars.lookahead(1);
|
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(
|
throw new ParseException(
|
||||||
"Identifiers MUST NOT be empty",
|
"Identifiers MUST NOT be empty",
|
||||||
new UnexpectedCharacterException(
|
new UnexpectedCharacterException(
|
||||||
|
@ -85,7 +85,7 @@ public class ExpressionParser implements Parser<Expression> {
|
|||||||
public Expression parse(String input) {
|
public Expression parse(String input) {
|
||||||
tokens = lexer.tokenize(input);
|
tokens = lexer.tokenize(input);
|
||||||
Expression expr = parseSemVerExpression();
|
Expression expr = parseSemVerExpression();
|
||||||
consumeNextToken(EOL);
|
consumeNextToken(EOI);
|
||||||
return expr;
|
return expr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ class Lexer {
|
|||||||
LEFT_PAREN("\\("),
|
LEFT_PAREN("\\("),
|
||||||
RIGHT_PAREN("\\)"),
|
RIGHT_PAREN("\\)"),
|
||||||
WHITESPACE("\\s+"),
|
WHITESPACE("\\s+"),
|
||||||
EOL("?!");
|
EOI("?!");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A pattern matching this type.
|
* A pattern matching this type.
|
||||||
@ -218,7 +218,7 @@ class Lexer {
|
|||||||
throw new LexerException(input);
|
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<Token>(tokens.toArray(new Token[tokens.size()]));
|
return new Stream<Token>(tokens.toArray(new Token[tokens.size()]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -95,11 +95,11 @@ public class ParserErrorHandlingTest {
|
|||||||
{ "v1.2.3", 'v', 0, new CharType[] { DIGIT } },
|
{ "v1.2.3", 'v', 0, new CharType[] { DIGIT } },
|
||||||
{ "1.2.3-", null, 6, new CharType[] { DIGIT, LETTER, HYPHEN } },
|
{ "1.2.3-", null, 6, new CharType[] { DIGIT, LETTER, HYPHEN } },
|
||||||
{ "1.2. 3", ' ', 4, new CharType[] { DIGIT } },
|
{ "1.2. 3", ' ', 4, new CharType[] { DIGIT } },
|
||||||
{ "1.2.3=alpha", '=', 5, new CharType[] { HYPHEN, PLUS, EOL } },
|
{ "1.2.3=alpha", '=', 5, new CharType[] { HYPHEN, PLUS, EOI } },
|
||||||
{ "1.2.3~beta", '~', 5, new CharType[] { HYPHEN, PLUS, EOL } },
|
{ "1.2.3~beta", '~', 5, new CharType[] { HYPHEN, PLUS, EOI } },
|
||||||
{ "1.2.3-be$ta", '$', 8, new CharType[] { PLUS, EOL } },
|
{ "1.2.3-be$ta", '$', 8, new CharType[] { PLUS, EOI } },
|
||||||
{ "1.2.3+b1+b2", '+', 8, new CharType[] { EOL } },
|
{ "1.2.3+b1+b2", '+', 8, new CharType[] { EOI } },
|
||||||
{ "1.2.3-rc!", '!', 8, new CharType[] { PLUS, EOL } },
|
{ "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 } },
|
{ "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 } },
|
||||||
|
@ -76,10 +76,10 @@ public class VersionParserCharTypeTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void shouldBeMatchedByEol() {
|
public void shouldBeMatchedByEol() {
|
||||||
assertTrue(EOL.isMatchedBy(null));
|
assertTrue(EOI.isMatchedBy(null));
|
||||||
assertFalse(EOL.isMatchedBy('-'));
|
assertFalse(EOI.isMatchedBy('-'));
|
||||||
assertFalse(EOL.isMatchedBy('a'));
|
assertFalse(EOI.isMatchedBy('a'));
|
||||||
assertFalse(EOL.isMatchedBy('0'));
|
assertFalse(EOI.isMatchedBy('0'));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -97,7 +97,7 @@ public class VersionParserCharTypeTest {
|
|||||||
assertEquals(DOT, CharType.forCharacter('.'));
|
assertEquals(DOT, CharType.forCharacter('.'));
|
||||||
assertEquals(HYPHEN, CharType.forCharacter('-'));
|
assertEquals(HYPHEN, CharType.forCharacter('-'));
|
||||||
assertEquals(PLUS, CharType.forCharacter('+'));
|
assertEquals(PLUS, CharType.forCharacter('+'));
|
||||||
assertEquals(EOL, CharType.forCharacter(null));
|
assertEquals(EOI, CharType.forCharacter(null));
|
||||||
assertEquals(ILLEGAL, CharType.forCharacter('!'));
|
assertEquals(ILLEGAL, CharType.forCharacter('!'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -44,7 +44,7 @@ public class LexerTest {
|
|||||||
new Token(NUMERIC, "0", 3),
|
new Token(NUMERIC, "0", 3),
|
||||||
new Token(DOT, ".", 4),
|
new Token(DOT, ".", 4),
|
||||||
new Token(NUMERIC, "0", 5),
|
new Token(NUMERIC, "0", 5),
|
||||||
new Token(EOL, null, 6),
|
new Token(EOI, null, 6),
|
||||||
};
|
};
|
||||||
Lexer lexer = new Lexer();
|
Lexer lexer = new Lexer();
|
||||||
Stream<Token> stream = lexer.tokenize(">1.0.0");
|
Stream<Token> stream = lexer.tokenize(">1.0.0");
|
||||||
@ -56,7 +56,7 @@ public class LexerTest {
|
|||||||
Token[] expected = {
|
Token[] expected = {
|
||||||
new Token(GREATER, ">", 0),
|
new Token(GREATER, ">", 0),
|
||||||
new Token(NUMERIC, "1", 2),
|
new Token(NUMERIC, "1", 2),
|
||||||
new Token(EOL, null, 3),
|
new Token(EOI, null, 3),
|
||||||
};
|
};
|
||||||
Lexer lexer = new Lexer();
|
Lexer lexer = new Lexer();
|
||||||
Stream<Token> stream = lexer.tokenize("> 1");
|
Stream<Token> stream = lexer.tokenize("> 1");
|
||||||
@ -71,7 +71,7 @@ public class LexerTest {
|
|||||||
new Token(NUMERIC, "2", 2),
|
new Token(NUMERIC, "2", 2),
|
||||||
new Token(DOT, ".", 3),
|
new Token(DOT, ".", 3),
|
||||||
new Token(NUMERIC, "3", 4),
|
new Token(NUMERIC, "3", 4),
|
||||||
new Token(EOL, null, 5),
|
new Token(EOI, null, 5),
|
||||||
};
|
};
|
||||||
Lexer lexer = new Lexer();
|
Lexer lexer = new Lexer();
|
||||||
Stream<Token> stream = lexer.tokenize("1.2.3");
|
Stream<Token> stream = lexer.tokenize("1.2.3");
|
||||||
|
@ -69,10 +69,10 @@ public class ParserErrorHandlingTest {
|
|||||||
@Parameters(name = "{0}")
|
@Parameters(name = "{0}")
|
||||||
public static Collection<Object[]> parameters() {
|
public static Collection<Object[]> parameters() {
|
||||||
return Arrays.asList(new Object[][] {
|
return Arrays.asList(new Object[][] {
|
||||||
{ "1)", new Token(RIGHT_PAREN, ")", 1), new Token.Type[] { EOL } },
|
{ "1)", new Token(RIGHT_PAREN, ")", 1), new Token.Type[] { EOI } },
|
||||||
{ "(>1.0.1", new Token(EOL, null, 7), new Token.Type[] { RIGHT_PAREN } },
|
{ "(>1.0.1", new Token(EOI, null, 7), new Token.Type[] { RIGHT_PAREN } },
|
||||||
{ "((>=1 & <2)", new Token(EOL, null, 11), new Token.Type[] { RIGHT_PAREN } },
|
{ "((>=1 & <2)", new Token(EOI, null, 11), new Token.Type[] { RIGHT_PAREN } },
|
||||||
{ ">=1.0.0 &", new Token(EOL, null, 9), new Token.Type[] { NUMERIC } },
|
{ ">=1.0.0 &", new Token(EOI, null, 9), new Token.Type[] { NUMERIC } },
|
||||||
{ "(>2.0 |)", new Token(RIGHT_PAREN, ")", 7), 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 } },
|
{ "& 1.2", new Token(AND, "&", 0), new Token.Type[] { NUMERIC } },
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user