1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
use crateGrammarBuilder;
use classes as a;
use crateCharClass;
/// A JSON double-quoted string *contents* (no surrounding quotes).
///
/// Matches:
/// - Any byte except `"` and `\\` and ASCII LF
/// - Or a JSON escape sequence (including `\\uXXXX`)
///
/// This is designed for use inside a larger rule like:
/// `g.delimited(|g| g.byte(b'\"'), |g| json_string_contents(g), |g| g.byte(b'\"'))`.