File tree 3 files changed +4134
-3898
lines changed
3 files changed +4134
-3898
lines changed Original file line number Diff line number Diff line change @@ -4,18 +4,25 @@ use lalrpop_intern::intern;
4
4
grammar;
5
5
6
6
pub Program: Program = {
7
- Item* => Program { items: <> }
7
+ Items => Program { items: <> }
8
8
};
9
9
10
- Item: Item = {
11
- StructDefn => Item::StructDefn(<>),
12
- TraitDefn => Item::TraitDefn(<>),
13
- Impl => Item::Impl(<>),
14
- KrateDefn => Item::KrateDefn(<>),
10
+ Items: Vec<Item> = {
11
+ Item* => <>.into_iter().filter_map(|v| v).collect()
15
12
};
16
13
14
+ Item: Option<Item> = {
15
+ Comment => None,
16
+ StructDefn => Some(Item::StructDefn(<>)),
17
+ TraitDefn => Some(Item::TraitDefn(<>)),
18
+ Impl => Some(Item::Impl(<>)),
19
+ KrateDefn => Some(Item::KrateDefn(<>)),
20
+ };
21
+
22
+ Comment: () = r"//.*";
23
+
17
24
KrateDefn: KrateDefn = {
18
- <name:KrateId> "{" <items:Item* > "}" => KrateDefn {
25
+ <name:KrateId> "{" <items:Items > "}" => KrateDefn {
19
26
name: name,
20
27
items: items,
21
28
},
You can’t perform that action at this time.
0 commit comments