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
|
pub mod token;
pub mod serialize;
#[allow(unused_imports)]
use pest::consumes_to;
#[allow(unused_imports)]
use pest::parses_to;
use pest_derive::Parser;
#[derive(Parser)]
#[grammar = "rst.pest"]
pub struct RstParser;
#[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, 18, [
adornments(0, 6),
line(6, 12),
adornments(12, 18),
])
]
};
} */
#[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) ]),
]),
]),
]),
]
}
}
|