at main 660 B view raw
1// SPDX-FileCopyrightText: 2025 The Project Pterodactyl Developers 2// 3// SPDX-License-Identifier: MPL-2.0 4 5import Foundation 6import llbuild2fx 7import PterodactylSyntax 8 9extension Keys.Blob { 10 struct Tokenise: BuildKey { 11 let blobId: LLBDataID 12 13 typealias ValueType = [Token] 14 15 static let versionDependencies: [any FXVersioning.Type] = [ReadContents.self] 16 17 func computeValue(_ ctx: BuildContext<Self>) async throws -> ValueType { 18 let code = try await ctx.request(ReadContents(blobId: blobId)) 19 var lexer = PterodactylSyntax.Lexer(input: code) 20 let flatTokens = lexer.tokenize() 21 return BlockLayoutProcessor(tokens: flatTokens).layout() 22 } 23 } 24}