diff options
Diffstat (limited to 'src')
3 files changed, 10 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/styles/parsing/StyleMappingTokeniser.java b/src/main/java/org/zwobble/mammoth/internal/styles/parsing/StyleMappingTokeniser.java index fe36242..4c6a2a9 100644 --- a/src/main/java/org/zwobble/mammoth/internal/styles/parsing/StyleMappingTokeniser.java +++ b/src/main/java/org/zwobble/mammoth/internal/styles/parsing/StyleMappingTokeniser.java @@ -27,6 +27,10 @@ public class StyleMappingTokeniser { index = startIndex + 2; } else { index = seekEndOfToken(line, startIndex + 1, tokenType); + if (tokenType == TokenType.STRING && index == line.length() + 1) { + tokenType = TokenType.UNTERMINATED_STRING; + index -= 1; + } } return new Token(tokenType, line.substring(startIndex, index)); } diff --git a/src/main/java/org/zwobble/mammoth/internal/styles/parsing/TokenType.java b/src/main/java/org/zwobble/mammoth/internal/styles/parsing/TokenType.java index c9cc9a4..04a0b64 100644 --- a/src/main/java/org/zwobble/mammoth/internal/styles/parsing/TokenType.java +++ b/src/main/java/org/zwobble/mammoth/internal/styles/parsing/TokenType.java @@ -13,6 +13,7 @@ public enum TokenType { OPEN_SQUARE_BRACKET, CLOSE_SQUARE_BRACKET, STRING, + UNTERMINATED_STRING, INTEGER, CHOICE, EOF, diff --git a/src/test/java/org/zwobble/mammoth/tests/styles/parsing/StyleMappingTokeniserTests.java b/src/test/java/org/zwobble/mammoth/tests/styles/parsing/StyleMappingTokeniserTests.java index de60249..dd7c15f 100644 --- a/src/test/java/org/zwobble/mammoth/tests/styles/parsing/StyleMappingTokeniserTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/styles/parsing/StyleMappingTokeniserTests.java @@ -41,6 +41,11 @@ public class StyleMappingTokeniserTests { } @Test + public void unterminatedStringsAreTokenised() { + assertTokens("'Tristan", isToken(TokenType.UNTERMINATED_STRING, "'Tristan")); + } + + @Test public void arrowsAreTokenised() { assertTokens("=>=>", isToken(TokenType.ARROW, "=>"), isToken(TokenType.ARROW, "=>")); } |
