diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-11-16 19:21:49 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-11-16 19:21:49 +0000 |
| commit | b4099505ca1ceab2f0633381265f27ddfd4fd1be (patch) | |
| tree | 4f006d12014b6fcb631d7660a358b0a159d31643 /src/main | |
| parent | 3707fb14902ec697e25d49636c5e13c4c17f3ed7 (diff) | |
Return unknown tokens instead of throwing
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/internal/styles/parsing/RegexTokeniser.java | 6 | ||||
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/internal/styles/parsing/StyleMappingTokeniser.java | 1 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/styles/parsing/RegexTokeniser.java b/src/main/java/org/zwobble/mammoth/internal/styles/parsing/RegexTokeniser.java index 06ecbd3..8ff4392 100644 --- a/src/main/java/org/zwobble/mammoth/internal/styles/parsing/RegexTokeniser.java +++ b/src/main/java/org/zwobble/mammoth/internal/styles/parsing/RegexTokeniser.java @@ -23,8 +23,9 @@ public class RegexTokeniser<T> { private final List<TokenRule<T>> rules; - public RegexTokeniser(List<TokenRule<T>> rules) { - this.rules = rules; + public RegexTokeniser(T unknown, List<TokenRule<T>> rules) { + this.rules = new ArrayList<>(rules); + this.rules.add(rule(unknown, ".")); } public List<Token<T>> tokenise(String value) { @@ -42,6 +43,7 @@ public class RegexTokeniser<T> { } } if (!matched) { + // Should be impossible throw new RuntimeException("Remaining: " + remaining); } } 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 1b7c881..1eec870 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 @@ -9,6 +9,7 @@ public class StyleMappingTokeniser { String stringPrefix = "'((?:\\.|[^'])*)"; RegexTokeniser<TokenType> tokeniser = new RegexTokeniser<>( + TokenType.UNKNOWN, list( RegexTokeniser.rule(TokenType.IDENTIFIER, "([a-zA-Z][a-zA-Z0-9\\-]*)"), RegexTokeniser.rule(TokenType.CLASS_NAME, "(\\.(?:[a-zA-Z0-9\\-]|\\\\.)+)"), |
