AbstractCharStreamScanner implements CharStreamScanner { @Override public String readJavaStringLiteral() { return readJavaStringLiteral(false); } AbstractCharStreamScanner(); @Override int readDigit(); @Override double readDouble(); @Override float readFloat(); @Override int skipWhile(CharFilter filter); @Override char skipWhileAndPeek(CharFilter filter); @Override char skipWhileAndPeek(CharFilter filter, int max); @Override String readWhile(CharFilter filter); @Override String readUntil(CharFilter filter, boolean acceptEof, String stop); @Override String readUntil(CharFilter filter, boolean acceptEot, String stop, boolean ignoreCase); @Override boolean skipOver(String substring); @Override boolean skipOver(String substring, boolean ignoreCase); @Override String readLine(); @Override boolean expect(String expected); @Override boolean expectStrict(String expected); @Override Character readJavaCharLiteral(); @Override String readJavaStringLiteral();  }
@Test public void testReadJavaStringLiteral() { String string = "\"Hi \\\"\\176\\477\\579\\u2022\\uuuuu2211\\\"\\n\""; CharStreamScanner scanner = scanner(string); String result = scanner.readJavaStringLiteral(); assertThat(result).isEqualTo("Hi \"~'7/9•∑\"\n"); assertThat(result).isEqualTo("Hi \"\176\477\579\u2022\uuuuu2211\"\n"); assertThat(scanner.hasNext()).isFalse(); }