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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
use pest::consumes_to;
use pest::parses_to;
use super::{RstParser, Rule};
#[test]
fn plain() {
parses_to! {
parser: RstParser,
input: "line\n",
rule: Rule::paragraph,
tokens: [
paragraph(0, 5, [
line(0, 5)
])
]
};
}
#[test]
fn title() {
parses_to! {
parser: RstParser,
input: "\
Title
=====
",
rule: Rule::title,
tokens: [
title(0, 12, [
line(0, 6),
adornments(6, 11),
])
]
};
}
#[test]
fn title_overline() {
parses_to! {
parser: RstParser,
input: "\
-----
Title
-----
",
rule: Rule::title,
tokens: [
title(0, 17, [
adornments(0, 5),
line(6, 12),
])
]
};
}
#[test]
fn two_targets() {
parses_to! {
parser: RstParser,
input: "\
.. _a: http://example.com
.. _`b_`: https://example.org
",
rule: Rule::document,
tokens: [
target(0, 26, [
target_name_uq(4, 5),
link_target(7, 25),
]),
target(26, 56, [
target_name_qu(31, 33),
link_target(36, 55),
]),
]
};
}
#[test]
fn nested_lists() {
parses_to! {
parser: RstParser,
input: "\
paragraph
- item 1
- item 2
more text
more text 2
more text 3
- nested item 1
- nested item 2
- nested item 3
",
rule: Rule::document,
tokens: [
paragraph(0, 10, [ line(0, 10) ]),
bullet_list(11, 131, [
bullet_item(11, 21, [ line(14, 21) ]),
bullet_item(21, 131, [
line(24, 31),
paragraph(34, 74, [
line(34, 44),
line(47, 59),
line(62, 74),
]),
bullet_list(77, 131, [
bullet_item(77, 93, [ line(79, 93) ]),
bullet_item(96, 112, [ line(98, 112) ]),
bullet_item(115, 131, [ line(117, 131) ]),
]),
]),
]),
]
}
}
|