// SPDX-FileCopyrightText: 2025 The Project Pterodactyl Developers // // SPDX-License-Identifier: MPL-2.0 import Foundation import llbuild2fx import PterodactylSyntax extension Keys.Blob { struct Tokenise: BuildKey { let blobId: LLBDataID typealias ValueType = [Token] static let versionDependencies: [any FXVersioning.Type] = [ReadContents.self] func computeValue(_ ctx: BuildContext) async throws -> ValueType { let code = try await ctx.request(ReadContents(blobId: blobId)) var lexer = PterodactylSyntax.Lexer(input: code) let flatTokens = lexer.tokenize() return BlockLayoutProcessor(tokens: flatTokens).layout() } } }