Merge branch 'fix/126-missing-key-is-not-detected-by-tokenclassifier' into 'main'

Detect missing keys while classifying tokens

Closes #126

See merge request cs108-fs26/Gruppe-13!150
This commit was merged in pull request #306.
This commit is contained in:
Lars Simon Winzer
2026-04-25 14:33:12 +02:00
2 changed files with 10 additions and 1 deletions
@@ -48,7 +48,7 @@ public class TokenClassifier {
}
private static void validateSeparator(List<RawToken> rawTokens, int index) {
boolean missingKey = index == 0 || rawTokens.get(index - 1).type() != RawTokenType.WORD;
boolean missingKey = index <= 1 || rawTokens.get(index - 1).type() != RawTokenType.WORD;
boolean missingValue =
index + 1 >= rawTokens.size()
@@ -63,6 +63,15 @@ public class TokenClassifierTest {
assertEquals("Expected VALUE after '='", ex.getMessage());
}
@Test
void testMissingKeyBeforeSeparatorThrows() {
List<RawToken> raw = Tokenizer.tokenize("CMD =VALUE");
TokenizerException ex =
assertThrows(TokenizerException.class, () -> TokenClassifier.classify(raw));
assertEquals("Expected KEY before '='", ex.getMessage());
}
@Test
void testNextWordIsKeyThrows() {
List<RawToken> raw = Tokenizer.tokenize("CMD KEY1=KEY2=42");