this repo has no description
www.jonmsterling.com/01HC/
1// SPDX-FileCopyrightText: 2025 The Project Pterodactyl Developers
2//
3// SPDX-License-Identifier: MPL-2.0
4
5import Foundation
6
7enum ImportName: Grammar {
8 static let kind = SyntaxTreeKind(name: "import.name")
9 static let kinds = [kind]
10
11 static func before(_ parser: inout Parser) -> Bool {
12 parser.isAt(kind: .identifier)
13 }
14
15 static func inside(_ parser: inout Parser) -> ParseResult {
16 parser.expect(kind: .identifier, metadata: TokenMetadata(semanticTokenType: .namespace))
17 return ParseResult(kind: Self.kind)
18 }
19}
20
21enum Import: Grammar {
22 static let kind = SyntaxTreeKind(name: "import")
23 static let kinds = [kind]
24
25 static func before(_ parser: inout Parser) -> Bool {
26 parser.isAt(kind: .keyword(.import))
27 }
28
29 static func inside(_ parser: inout Parser) -> ParseResult {
30 parser.expect(kind: .keyword(.import), metadata: TokenMetadata(semanticTokenType: .keyword))
31 parser.eatTrivia()
32 ImportName.parse(&parser)
33 return ParseResult(kind: Self.kind)
34 }
35}
36
37
38extension SyntaxView<ImportName> {
39 var text: String { cursor.node.text }
40}
41
42extension SyntaxView<Import> {
43 var name: SyntaxView<ImportName>? {
44 matchingSubview()
45 }
46}