Skip to content

Commit 56b43ee

Browse files
committed
Support parsing empty metadata
1 parent b8e4c53 commit 56b43ee

File tree

1 file changed

+46
-41
lines changed

1 file changed

+46
-41
lines changed

Sources/LiveViewNativeStylesheet/Parsing/External/Metadata.swift

Lines changed: 46 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -7,48 +7,53 @@ public struct Metadata {
77
public let source: String
88

99
public static func parser() -> some Parser<Substring.UTF8View, Self> {
10-
Parse { (file, line, module, source) in
11-
Self(file: file, line: line, module: module, source: source)
12-
} with: {
13-
"[".utf8
14-
15-
Whitespace()
16-
"file:".utf8
17-
Whitespace()
18-
StringLiteral()
19-
Whitespace()
20-
",".utf8
21-
22-
Whitespace()
23-
24-
"line:".utf8
25-
Whitespace()
26-
Parsers.IntParser<Substring.UTF8View, Int>()
27-
Whitespace()
28-
",".utf8
29-
30-
Whitespace()
31-
32-
"module:".utf8
33-
Whitespace()
34-
Many {
35-
Identifier()
36-
} separator: {
37-
".".utf8
10+
OneOf {
11+
Parse { (file, line, module, source) in
12+
Self(file: file, line: line, module: module, source: source)
13+
} with: {
14+
"[".utf8
15+
16+
Whitespace()
17+
"file:".utf8
18+
Whitespace()
19+
StringLiteral()
20+
Whitespace()
21+
",".utf8
22+
23+
Whitespace()
24+
25+
"line:".utf8
26+
Whitespace()
27+
Parsers.IntParser<Substring.UTF8View, Int>()
28+
Whitespace()
29+
",".utf8
30+
31+
Whitespace()
32+
33+
"module:".utf8
34+
Whitespace()
35+
Many {
36+
Identifier()
37+
} separator: {
38+
".".utf8
39+
}
40+
.map({ $0.joined(separator: ".") })
41+
Whitespace()
42+
",".utf8
43+
44+
Whitespace()
45+
46+
"source:".utf8
47+
Whitespace()
48+
StringLiteral()
49+
50+
Whitespace()
51+
52+
"]".utf8
53+
}
54+
"[]".utf8.map {
55+
Self.init(file: "", line: 0, module: "", source: "")
3856
}
39-
.map({ $0.joined(separator: ".") })
40-
Whitespace()
41-
",".utf8
42-
43-
Whitespace()
44-
45-
"source:".utf8
46-
Whitespace()
47-
StringLiteral()
48-
49-
Whitespace()
50-
51-
"]".utf8
5257
}
5358
}
5459
}

0 commit comments

Comments
 (0)