Function( Function { head: Destructured( FunctionHeadDestructured { ellipsis: false, identifier: None, arguments: [ FunctionHeadDestructuredArgument { identifier: "pkgs", default: None, }, FunctionHeadDestructuredArgument { identifier: "options", default: None, }, FunctionHeadDestructuredArgument { identifier: "config", default: None, }, FunctionHeadDestructuredArgument { identifier: "version", default: None, }, FunctionHeadDestructuredArgument { identifier: "revision", default: None, }, FunctionHeadDestructuredArgument { identifier: "extraSources", default: Some( List( List { elements: [], span: Span { start: Position { line: 6, column: 18, }, end: Position { line: 6, column: 20, }, }, }, ), ), }, FunctionHeadDestructuredArgument { identifier: "baseOptionsJSON", default: Some( Identifier( Identifier { id: "null", span: Span { start: Position { line: 7, column: 21, }, end: Position { line: 7, column: 25, }, }, }, ), ), }, FunctionHeadDestructuredArgument { identifier: "warningsAreErrors", default: Some( Identifier( Identifier { id: "true", span: Span { start: Position { line: 8, column: 23, }, end: Position { line: 8, column: 27, }, }, }, ), ), }, FunctionHeadDestructuredArgument { identifier: "allowDocBook", default: Some( Identifier( Identifier { id: "true", span: Span { start: Position { line: 9, column: 18, }, end: Position { line: 9, column: 22, }, }, }, ), ), }, FunctionHeadDestructuredArgument { identifier: "prefix", default: Some( Path( Path { parts: [ Raw( PartRaw { content: "../../..", span: Span { start: Position { line: 10, column: 12, }, end: Position { line: 10, column: 20, }, }, }, ), ], span: Span { start: Position { line: 10, column: 12, }, end: Position { line: 10, column: 20, }, }, }, ), ), }, ], }, ), body: With( With { expression: Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 13, column: 6, }, end: Position { line: 13, column: 10, }, }, }, ), target: LetIn( LetIn { bindings: [ Inherit( BindingInherit { from: Some( Identifier( Identifier { id: "lib", span: Span { start: Position { line: 16, column: 12, }, end: Position { line: 16, column: 15, }, }, }, ), ), attributes: [ Raw( PartRaw { content: "hasPrefix", span: Span { start: Position { line: 16, column: 17, }, end: Position { line: 16, column: 26, }, }, }, ), Raw( PartRaw { content: "removePrefix", span: Span { start: Position { line: 16, column: 27, }, end: Position { line: 16, column: 39, }, }, }, ), ], span: Span { start: Position { line: 15, column: 4, }, end: Position { line: 16, column: 40, }, }, }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "lib", span: Span { start: Position { line: 18, column: 3, }, end: Position { line: 18, column: 6, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 18, column: 9, }, end: Position { line: 18, column: 13, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "lib", span: Span { start: Position { line: 18, column: 14, }, end: Position { line: 18, column: 17, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "docbook_xsl_ns", span: Span { start: Position { line: 20, column: 3, }, end: Position { line: 20, column: 17, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 20, column: 20, }, end: Position { line: 20, column: 24, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "docbook-xsl-ns", span: Span { start: Position { line: 20, column: 25, }, end: Position { line: 20, column: 39, }, }, }, ), Raw( PartRaw { content: "override", span: Span { start: Position { line: 20, column: 40, }, end: Position { line: 20, column: 48, }, }, }, ), ], default: None, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "withManOptDedupPatch", span: Span { start: Position { line: 21, column: 5, }, end: Position { line: 21, column: 25, }, }, }, ), ], to: Identifier( Identifier { id: "true", span: Span { start: Position { line: 21, column: 28, }, end: Position { line: 21, column: 32, }, }, }, ), }, ), ], span: Span { start: Position { line: 20, column: 49, }, end: Position { line: 22, column: 4, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "prefixesToStrip", span: Span { start: Position { line: 30, column: 3, }, end: Position { line: 30, column: 18, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "map", span: Span { start: Position { line: 30, column: 21, }, end: Position { line: 30, column: 24, }, }, }, ), arguments: [ Function( Function { head: Simple( FunctionHeadSimple { identifier: "p", }, ), body: String( String_ { parts: [ Interpolation( PartInterpolation { expression: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "toString", span: Span { start: Position { line: 30, column: 32, }, end: Position { line: 30, column: 40, }, }, }, ), arguments: [ Identifier( Identifier { id: "p", span: Span { start: Position { line: 30, column: 41, }, end: Position { line: 30, column: 42, }, }, }, ), ], }, ), }, ), Raw( PartRaw { content: "/", span: Span { start: Position { line: 30, column: 30, }, end: Position { line: 30, column: 44, }, }, }, ), ], span: Span { start: Position { line: 30, column: 29, }, end: Position { line: 30, column: 45, }, }, }, ), span: Span { start: Position { line: 30, column: 26, }, end: Position { line: 30, column: 45, }, }, }, ), BinaryOperation( BinaryOperation { left: List( List { elements: [ Identifier( Identifier { id: "prefix", span: Span { start: Position { line: 30, column: 50, }, end: Position { line: 30, column: 56, }, }, }, ), ], span: Span { start: Position { line: 30, column: 48, }, end: Position { line: 30, column: 58, }, }, }, ), operator: Concatenation, right: Identifier( Identifier { id: "extraSources", span: Span { start: Position { line: 30, column: 62, }, end: Position { line: 30, column: 74, }, }, }, ), }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "stripAnyPrefixes", span: Span { start: Position { line: 31, column: 3, }, end: Position { line: 31, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 31, column: 22, }, end: Position { line: 31, column: 25, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "flip", span: Span { start: Position { line: 31, column: 26, }, end: Position { line: 31, column: 30, }, }, }, ), ], default: None, }, ), arguments: [ FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 31, column: 32, }, end: Position { line: 31, column: 35, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "foldr", span: Span { start: Position { line: 31, column: 36, }, end: Position { line: 31, column: 41, }, }, }, ), ], default: None, }, ), arguments: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 31, column: 42, }, end: Position { line: 31, column: 45, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "removePrefix", span: Span { start: Position { line: 31, column: 46, }, end: Position { line: 31, column: 58, }, }, }, ), ], default: None, }, ), ], }, ), Identifier( Identifier { id: "prefixesToStrip", span: Span { start: Position { line: 31, column: 60, }, end: Position { line: 31, column: 75, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "optionsDoc", span: Span { start: Position { line: 33, column: 3, }, end: Position { line: 33, column: 13, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "buildPackages", span: Span { start: Position { line: 33, column: 16, }, end: Position { line: 33, column: 29, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "nixosOptionsDoc", span: Span { start: Position { line: 33, column: 30, }, end: Position { line: 33, column: 45, }, }, }, ), ], default: None, }, ), arguments: [ Map( Map { recursive: false, bindings: [ Inherit( BindingInherit { from: None, attributes: [ Raw( PartRaw { content: "options", span: Span { start: Position { line: 34, column: 13, }, end: Position { line: 34, column: 20, }, }, }, ), Raw( PartRaw { content: "revision", span: Span { start: Position { line: 34, column: 21, }, end: Position { line: 34, column: 29, }, }, }, ), Raw( PartRaw { content: "baseOptionsJSON", span: Span { start: Position { line: 34, column: 30, }, end: Position { line: 34, column: 45, }, }, }, ), Raw( PartRaw { content: "warningsAreErrors", span: Span { start: Position { line: 34, column: 46, }, end: Position { line: 34, column: 63, }, }, }, ), Raw( PartRaw { content: "allowDocBook", span: Span { start: Position { line: 34, column: 64, }, end: Position { line: 34, column: 76, }, }, }, ), ], span: Span { start: Position { line: 33, column: 47, }, end: Position { line: 34, column: 77, }, }, }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "transformOptions", span: Span { start: Position { line: 35, column: 5, }, end: Position { line: 35, column: 21, }, }, }, ), ], to: Function( Function { head: Simple( FunctionHeadSimple { identifier: "opt", }, ), body: BinaryOperation( BinaryOperation { left: Identifier( Identifier { id: "opt", span: Span { start: Position { line: 35, column: 29, }, end: Position { line: 35, column: 32, }, }, }, ), operator: Update, right: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "declarations", span: Span { start: Position { line: 37, column: 7, }, end: Position { line: 37, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "map", span: Span { start: Position { line: 37, column: 22, }, end: Position { line: 37, column: 25, }, }, }, ), arguments: [ Identifier( Identifier { id: "stripAnyPrefixes", span: Span { start: Position { line: 37, column: 26, }, end: Position { line: 37, column: 42, }, }, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "opt", span: Span { start: Position { line: 37, column: 43, }, end: Position { line: 37, column: 46, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "declarations", span: Span { start: Position { line: 37, column: 47, }, end: Position { line: 37, column: 59, }, }, }, ), ], default: None, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 35, column: 36, }, end: Position { line: 38, column: 6, }, }, }, ), }, ), span: Span { start: Position { line: 35, column: 24, }, end: Position { line: 38, column: 6, }, }, }, ), }, ), ], span: Span { start: Position { line: 33, column: 46, }, end: Position { line: 39, column: 4, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "nixos-lib", span: Span { start: Position { line: 41, column: 3, }, end: Position { line: 41, column: 12, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "import", span: Span { start: Position { line: 41, column: 15, }, end: Position { line: 41, column: 21, }, }, }, ), arguments: [ Path( Path { parts: [ Raw( PartRaw { content: "../../lib", span: Span { start: Position { line: 41, column: 22, }, end: Position { line: 41, column: 31, }, }, }, ), ], span: Span { start: Position { line: 41, column: 22, }, end: Position { line: 41, column: 31, }, }, }, ), Map( Map { recursive: false, bindings: [], span: Span { start: Position { line: 41, column: 32, }, end: Position { line: 41, column: 35, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "testOptionsDoc", span: Span { start: Position { line: 43, column: 3, }, end: Position { line: 43, column: 17, }, }, }, ), ], to: LetIn( LetIn { bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "eval", span: Span { start: Position { line: 44, column: 7, }, end: Position { line: 44, column: 11, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "nixos-lib", span: Span { start: Position { line: 44, column: 14, }, end: Position { line: 44, column: 23, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "evalTest", span: Span { start: Position { line: 44, column: 24, }, end: Position { line: 44, column: 32, }, }, }, ), ], default: None, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "config", span: Span { start: Position { line: 46, column: 9, }, end: Position { line: 46, column: 15, }, }, }, ), Raw( PartRaw { content: "node", span: Span { start: Position { line: 46, column: 16, }, end: Position { line: 46, column: 20, }, }, }, ), Raw( PartRaw { content: "type", span: Span { start: Position { line: 46, column: 21, }, end: Position { line: 46, column: 25, }, }, }, ), ], to: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 46, column: 28, }, end: Position { line: 46, column: 31, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "types", span: Span { start: Position { line: 46, column: 32, }, end: Position { line: 46, column: 37, }, }, }, ), Raw( PartRaw { content: "deferredModule", span: Span { start: Position { line: 46, column: 38, }, end: Position { line: 46, column: 52, }, }, }, ), ], default: None, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "options", span: Span { start: Position { line: 47, column: 9, }, end: Position { line: 47, column: 16, }, }, }, ), Raw( PartRaw { content: "_module", span: Span { start: Position { line: 47, column: 17, }, end: Position { line: 47, column: 24, }, }, }, ), Raw( PartRaw { content: "args", span: Span { start: Position { line: 47, column: 25, }, end: Position { line: 47, column: 29, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 47, column: 32, }, end: Position { line: 47, column: 35, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "mkOption", span: Span { start: Position { line: 47, column: 36, }, end: Position { line: 47, column: 44, }, }, }, ), ], default: None, }, ), arguments: [ Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "internal", span: Span { start: Position { line: 47, column: 47, }, end: Position { line: 47, column: 55, }, }, }, ), ], to: Identifier( Identifier { id: "true", span: Span { start: Position { line: 47, column: 58, }, end: Position { line: 47, column: 62, }, }, }, ), }, ), ], span: Span { start: Position { line: 47, column: 45, }, end: Position { line: 47, column: 65, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 44, column: 33, }, end: Position { line: 48, column: 8, }, }, }, ), ], }, ), }, ), ], target: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "buildPackages", span: Span { start: Position { line: 49, column: 8, }, end: Position { line: 49, column: 21, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "nixosOptionsDoc", span: Span { start: Position { line: 49, column: 22, }, end: Position { line: 49, column: 37, }, }, }, ), ], default: None, }, ), arguments: [ Map( Map { recursive: false, bindings: [ Inherit( BindingInherit { from: Some( Identifier( Identifier { id: "eval", span: Span { start: Position { line: 50, column: 16, }, end: Position { line: 50, column: 20, }, }, }, ), ), attributes: [ Raw( PartRaw { content: "options", span: Span { start: Position { line: 50, column: 22, }, end: Position { line: 50, column: 29, }, }, }, ), ], span: Span { start: Position { line: 49, column: 39, }, end: Position { line: 50, column: 30, }, }, }, ), Inherit( BindingInherit { from: Some( Identifier( Identifier { id: "revision", span: Span { start: Position { line: 51, column: 16, }, end: Position { line: 51, column: 24, }, }, }, ), ), attributes: [], span: Span { start: Position { line: 49, column: 39, }, end: Position { line: 51, column: 26, }, }, }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "transformOptions", span: Span { start: Position { line: 52, column: 7, }, end: Position { line: 52, column: 23, }, }, }, ), ], to: Function( Function { head: Simple( FunctionHeadSimple { identifier: "opt", }, ), body: BinaryOperation( BinaryOperation { left: Identifier( Identifier { id: "opt", span: Span { start: Position { line: 52, column: 31, }, end: Position { line: 52, column: 34, }, }, }, ), operator: Update, right: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "declarations", span: Span { start: Position { line: 54, column: 9, }, end: Position { line: 54, column: 21, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "map", span: Span { start: Position { line: 55, column: 11, }, end: Position { line: 55, column: 14, }, }, }, ), arguments: [ Function( Function { head: Simple( FunctionHeadSimple { identifier: "decl", }, ), body: IfThenElse( IfThenElse { predicate: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "hasPrefix", span: Span { start: Position { line: 57, column: 18, }, end: Position { line: 57, column: 27, }, }, }, ), arguments: [ FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "toString", span: Span { start: Position { line: 57, column: 29, }, end: Position { line: 57, column: 37, }, }, }, ), arguments: [ Path( Path { parts: [ Raw( PartRaw { content: "../../..", span: Span { start: Position { line: 57, column: 38, }, end: Position { line: 57, column: 46, }, }, }, ), ], span: Span { start: Position { line: 57, column: 38, }, end: Position { line: 57, column: 46, }, }, }, ), ], }, ), FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "toString", span: Span { start: Position { line: 57, column: 49, }, end: Position { line: 57, column: 57, }, }, }, ), arguments: [ Identifier( Identifier { id: "decl", span: Span { start: Position { line: 57, column: 58, }, end: Position { line: 57, column: 62, }, }, }, ), ], }, ), ], }, ), then: LetIn( LetIn { bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "subpath", span: Span { start: Position { line: 59, column: 21, }, end: Position { line: 59, column: 28, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "removePrefix", span: Span { start: Position { line: 59, column: 31, }, end: Position { line: 59, column: 43, }, }, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "/", span: Span { start: Position { line: 59, column: 45, }, end: Position { line: 59, column: 46, }, }, }, ), ], span: Span { start: Position { line: 59, column: 44, }, end: Position { line: 59, column: 47, }, }, }, ), FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "removePrefix", span: Span { start: Position { line: 59, column: 49, }, end: Position { line: 59, column: 61, }, }, }, ), arguments: [ FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "toString", span: Span { start: Position { line: 59, column: 63, }, end: Position { line: 59, column: 71, }, }, }, ), arguments: [ Path( Path { parts: [ Raw( PartRaw { content: "../../..", span: Span { start: Position { line: 59, column: 72, }, end: Position { line: 59, column: 80, }, }, }, ), ], span: Span { start: Position { line: 59, column: 72, }, end: Position { line: 59, column: 80, }, }, }, ), ], }, ), FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "toString", span: Span { start: Position { line: 59, column: 83, }, end: Position { line: 59, column: 91, }, }, }, ), arguments: [ Identifier( Identifier { id: "decl", span: Span { start: Position { line: 59, column: 92, }, end: Position { line: 59, column: 96, }, }, }, ), ], }, ), ], }, ), ], }, ), }, ), ], target: Map( Map { recursive: false, bindings: [ KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "url", span: Span { start: Position { line: 60, column: 22, }, end: Position { line: 60, column: 25, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "https://github.com/NixOS/nixpkgs/blob/master/", span: Span { start: Position { line: 60, column: 29, }, end: Position { line: 60, column: 84, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "subpath", span: Span { start: Position { line: 60, column: 76, }, end: Position { line: 60, column: 83, }, }, }, ), }, ), ], span: Span { start: Position { line: 60, column: 28, }, end: Position { line: 60, column: 85, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "name", span: Span { start: Position { line: 60, column: 87, }, end: Position { line: 60, column: 91, }, }, }, ), ], to: Identifier( Identifier { id: "subpath", span: Span { start: Position { line: 60, column: 94, }, end: Position { line: 60, column: 101, }, }, }, ), }, ), ], span: Span { start: Position { line: 60, column: 20, }, end: Position { line: 60, column: 104, }, }, }, ), span: Span { start: Position { line: 59, column: 17, }, end: Position { line: 60, column: 104, }, }, }, ), else_: Identifier( Identifier { id: "decl", span: Span { start: Position { line: 61, column: 20, }, end: Position { line: 61, column: 24, }, }, }, ), span: Span { start: Position { line: 57, column: 15, }, end: Position { line: 61, column: 24, }, }, }, ), span: Span { start: Position { line: 56, column: 14, }, end: Position { line: 61, column: 24, }, }, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "opt", span: Span { start: Position { line: 62, column: 13, }, end: Position { line: 62, column: 16, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "declarations", span: Span { start: Position { line: 62, column: 17, }, end: Position { line: 62, column: 29, }, }, }, ), ], default: None, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 52, column: 38, }, end: Position { line: 63, column: 8, }, }, }, ), }, ), span: Span { start: Position { line: 52, column: 26, }, end: Position { line: 63, column: 8, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "documentType", span: Span { start: Position { line: 64, column: 7, }, end: Position { line: 64, column: 19, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "none", span: Span { start: Position { line: 64, column: 23, }, end: Position { line: 64, column: 27, }, }, }, ), ], span: Span { start: Position { line: 64, column: 22, }, end: Position { line: 64, column: 28, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "variablelistId", span: Span { start: Position { line: 65, column: 7, }, end: Position { line: 65, column: 21, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "test-options-list", span: Span { start: Position { line: 65, column: 25, }, end: Position { line: 65, column: 42, }, }, }, ), ], span: Span { start: Position { line: 65, column: 24, }, end: Position { line: 65, column: 43, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "optionIdPrefix", span: Span { start: Position { line: 66, column: 7, }, end: Position { line: 66, column: 21, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "test-opt-", span: Span { start: Position { line: 66, column: 25, }, end: Position { line: 66, column: 34, }, }, }, ), ], span: Span { start: Position { line: 66, column: 24, }, end: Position { line: 66, column: 35, }, }, }, ), }, ), ], span: Span { start: Position { line: 49, column: 38, }, end: Position { line: 67, column: 6, }, }, }, ), ], }, ), span: Span { start: Position { line: 43, column: 20, }, end: Position { line: 67, column: 6, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "sources", span: Span { start: Position { line: 69, column: 3, }, end: Position { line: 69, column: 10, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 69, column: 13, }, end: Position { line: 69, column: 16, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "sourceFilesBySuffices", span: Span { start: Position { line: 69, column: 17, }, end: Position { line: 69, column: 38, }, }, }, ), ], default: None, }, ), arguments: [ Path( Path { parts: [ Raw( PartRaw { content: "./.", span: Span { start: Position { line: 69, column: 39, }, end: Position { line: 69, column: 42, }, }, }, ), ], span: Span { start: Position { line: 69, column: 39, }, end: Position { line: 69, column: 42, }, }, }, ), List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: ".xml", span: Span { start: Position { line: 69, column: 45, }, end: Position { line: 69, column: 49, }, }, }, ), ], span: Span { start: Position { line: 69, column: 44, }, end: Position { line: 69, column: 50, }, }, }, ), ], span: Span { start: Position { line: 69, column: 43, }, end: Position { line: 69, column: 51, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "modulesDoc", span: Span { start: Position { line: 71, column: 3, }, end: Position { line: 71, column: 13, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "builtins", span: Span { start: Position { line: 71, column: 16, }, end: Position { line: 71, column: 24, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "toFile", span: Span { start: Position { line: 71, column: 25, }, end: Position { line: 71, column: 31, }, }, }, ), ], default: None, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "modules.xml", span: Span { start: Position { line: 71, column: 33, }, end: Position { line: 71, column: 44, }, }, }, ), ], span: Span { start: Position { line: 71, column: 32, }, end: Position { line: 71, column: 45, }, }, }, ), IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "
\n", span: Span { start: Position { line: 72, column: 1, }, end: Position { line: 73, column: 5, }, }, }, ), Interpolation( PartInterpolation { expression: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 73, column: 8, }, end: Position { line: 73, column: 11, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "concatMapStrings", span: Span { start: Position { line: 73, column: 12, }, end: Position { line: 73, column: 28, }, }, }, ), ], default: None, }, ), arguments: [ Function( Function { head: Simple( FunctionHeadSimple { identifier: "path", }, ), body: IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "\n", span: Span { start: Position { line: 74, column: 1, }, end: Position { line: 75, column: 5, }, }, }, ), ], span: Span { start: Position { line: 73, column: 36, }, end: Position { line: 75, column: 7, }, }, }, ), span: Span { start: Position { line: 73, column: 30, }, end: Position { line: 75, column: 7, }, }, }, ), FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "lib", span: Span { start: Position { line: 75, column: 10, }, end: Position { line: 75, column: 13, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "catAttrs", span: Span { start: Position { line: 75, column: 14, }, end: Position { line: 75, column: 22, }, }, }, ), ], default: None, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "value", span: Span { start: Position { line: 75, column: 24, }, end: Position { line: 75, column: 29, }, }, }, ), ], span: Span { start: Position { line: 75, column: 23, }, end: Position { line: 75, column: 30, }, }, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "config", span: Span { start: Position { line: 75, column: 31, }, end: Position { line: 75, column: 37, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "meta", span: Span { start: Position { line: 75, column: 38, }, end: Position { line: 75, column: 42, }, }, }, ), Raw( PartRaw { content: "doc", span: Span { start: Position { line: 75, column: 43, }, end: Position { line: 75, column: 46, }, }, }, ), ], default: None, }, ), ], }, ), ], }, ), }, ), Raw( PartRaw { content: "\n
\n", span: Span { start: Position { line: 72, column: 1, }, end: Position { line: 77, column: 3, }, }, }, ), ], span: Span { start: Position { line: 71, column: 46, }, end: Position { line: 77, column: 5, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "generatedSources", span: Span { start: Position { line: 79, column: 3, }, end: Position { line: 79, column: 19, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "runCommand", span: Span { start: Position { line: 79, column: 22, }, end: Position { line: 79, column: 32, }, }, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "generated-docbook", span: Span { start: Position { line: 79, column: 34, }, end: Position { line: 79, column: 51, }, }, }, ), ], span: Span { start: Position { line: 79, column: 33, }, end: Position { line: 79, column: 52, }, }, }, ), Map( Map { recursive: false, bindings: [], span: Span { start: Position { line: 79, column: 53, }, end: Position { line: 79, column: 55, }, }, }, ), IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "mkdir $out\nln -s ", span: Span { start: Position { line: 80, column: 1, }, end: Position { line: 81, column: 11, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "modulesDoc", span: Span { start: Position { line: 81, column: 13, }, end: Position { line: 81, column: 23, }, }, }, ), }, ), Raw( PartRaw { content: " $out/modules.xml\nln -s ", span: Span { start: Position { line: 80, column: 1, }, end: Position { line: 82, column: 11, }, }, }, ), Interpolation( PartInterpolation { expression: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "optionsDoc", span: Span { start: Position { line: 82, column: 13, }, end: Position { line: 82, column: 23, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "optionsDocBook", span: Span { start: Position { line: 82, column: 24, }, end: Position { line: 82, column: 38, }, }, }, ), ], default: None, }, ), }, ), Raw( PartRaw { content: " $out/options-db.xml\nln -s ", span: Span { start: Position { line: 80, column: 1, }, end: Position { line: 83, column: 11, }, }, }, ), Interpolation( PartInterpolation { expression: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "testOptionsDoc", span: Span { start: Position { line: 83, column: 13, }, end: Position { line: 83, column: 27, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "optionsDocBook", span: Span { start: Position { line: 83, column: 28, }, end: Position { line: 83, column: 42, }, }, }, ), ], default: None, }, ), }, ), Raw( PartRaw { content: " $out/test-options-db.xml\nprintf \"%s\" \"", span: Span { start: Position { line: 80, column: 1, }, end: Position { line: 84, column: 18, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "version", span: Span { start: Position { line: 84, column: 20, }, end: Position { line: 84, column: 27, }, }, }, ), }, ), Raw( PartRaw { content: "\" > $out/version\n", span: Span { start: Position { line: 80, column: 1, }, end: Position { line: 85, column: 3, }, }, }, ), ], span: Span { start: Position { line: 79, column: 56, }, end: Position { line: 85, column: 5, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "copySources", span: Span { start: Position { line: 87, column: 3, }, end: Position { line: 87, column: 14, }, }, }, ), ], to: IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "cp -prd $sources/* . # */\nln -s ", span: Span { start: Position { line: 89, column: 1, }, end: Position { line: 90, column: 13, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "generatedSources", span: Span { start: Position { line: 90, column: 15, }, end: Position { line: 90, column: 31, }, }, }, ), }, ), Raw( PartRaw { content: " ./generated\nchmod -R u+w .\n", span: Span { start: Position { line: 89, column: 1, }, end: Position { line: 92, column: 5, }, }, }, ), ], span: Span { start: Position { line: 88, column: 5, }, end: Position { line: 92, column: 7, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "toc", span: Span { start: Position { line: 94, column: 3, }, end: Position { line: 94, column: 6, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "builtins", span: Span { start: Position { line: 94, column: 9, }, end: Position { line: 94, column: 17, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "toFile", span: Span { start: Position { line: 94, column: 18, }, end: Position { line: 94, column: 24, }, }, }, ), ], default: None, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "toc.xml", span: Span { start: Position { line: 94, column: 26, }, end: Position { line: 94, column: 33, }, }, }, ), ], span: Span { start: Position { line: 94, column: 25, }, end: Position { line: 94, column: 34, }, }, }, ), IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "\n \n \n \n \n\n", span: Span { start: Position { line: 96, column: 1, }, end: Position { line: 102, column: 5, }, }, }, ), ], span: Span { start: Position { line: 95, column: 5, }, end: Position { line: 102, column: 7, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "manualXsltprocOptions", span: Span { start: Position { line: 104, column: 3, }, end: Position { line: 104, column: 24, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "toString", span: Span { start: Position { line: 104, column: 27, }, end: Position { line: 104, column: 35, }, }, }, ), arguments: [ List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "--param section.autolabel 1", span: Span { start: Position { line: 105, column: 6, }, end: Position { line: 105, column: 33, }, }, }, ), ], span: Span { start: Position { line: 105, column: 5, }, end: Position { line: 105, column: 34, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "--param section.label.includes.component.label 1", span: Span { start: Position { line: 106, column: 6, }, end: Position { line: 106, column: 54, }, }, }, ), ], span: Span { start: Position { line: 106, column: 5, }, end: Position { line: 106, column: 55, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "--stringparam html.stylesheet 'style.css overrides.css highlightjs/mono-blue.css'", span: Span { start: Position { line: 107, column: 6, }, end: Position { line: 107, column: 87, }, }, }, ), ], span: Span { start: Position { line: 107, column: 5, }, end: Position { line: 107, column: 88, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "--stringparam html.script './highlightjs/highlight.pack.js ./highlightjs/loader.js'", span: Span { start: Position { line: 108, column: 6, }, end: Position { line: 108, column: 89, }, }, }, ), ], span: Span { start: Position { line: 108, column: 5, }, end: Position { line: 108, column: 90, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "--param xref.with.number.and.title 1", span: Span { start: Position { line: 109, column: 6, }, end: Position { line: 109, column: 42, }, }, }, ), ], span: Span { start: Position { line: 109, column: 5, }, end: Position { line: 109, column: 43, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "--param toc.section.depth 0", span: Span { start: Position { line: 110, column: 6, }, end: Position { line: 110, column: 33, }, }, }, ), ], span: Span { start: Position { line: 110, column: 5, }, end: Position { line: 110, column: 34, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "--param generate.consistent.ids 1", span: Span { start: Position { line: 111, column: 6, }, end: Position { line: 111, column: 39, }, }, }, ), ], span: Span { start: Position { line: 111, column: 5, }, end: Position { line: 111, column: 40, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "--stringparam admon.style ''", span: Span { start: Position { line: 112, column: 6, }, end: Position { line: 112, column: 34, }, }, }, ), ], span: Span { start: Position { line: 112, column: 5, }, end: Position { line: 112, column: 35, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "--stringparam callout.graphics.extension .svg", span: Span { start: Position { line: 113, column: 6, }, end: Position { line: 113, column: 51, }, }, }, ), ], span: Span { start: Position { line: 113, column: 5, }, end: Position { line: 113, column: 52, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "--stringparam current.docid manual", span: Span { start: Position { line: 114, column: 6, }, end: Position { line: 114, column: 40, }, }, }, ), ], span: Span { start: Position { line: 114, column: 5, }, end: Position { line: 114, column: 41, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "--param chunk.section.depth 0", span: Span { start: Position { line: 115, column: 6, }, end: Position { line: 115, column: 35, }, }, }, ), ], span: Span { start: Position { line: 115, column: 5, }, end: Position { line: 115, column: 36, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "--param chunk.first.sections 1", span: Span { start: Position { line: 116, column: 6, }, end: Position { line: 116, column: 36, }, }, }, ), ], span: Span { start: Position { line: 116, column: 5, }, end: Position { line: 116, column: 37, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "--param use.id.as.filename 1", span: Span { start: Position { line: 117, column: 6, }, end: Position { line: 117, column: 34, }, }, }, ), ], span: Span { start: Position { line: 117, column: 5, }, end: Position { line: 117, column: 35, }, }, }, ), String( String_ { parts: [ Raw( PartRaw { content: "--stringparam chunk.toc ", span: Span { start: Position { line: 118, column: 6, }, end: Position { line: 118, column: 36, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "toc", span: Span { start: Position { line: 118, column: 32, }, end: Position { line: 118, column: 35, }, }, }, ), }, ), ], span: Span { start: Position { line: 118, column: 5, }, end: Position { line: 118, column: 37, }, }, }, ), ], span: Span { start: Position { line: 104, column: 36, }, end: Position { line: 119, column: 4, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "manual-combined", span: Span { start: Position { line: 121, column: 3, }, end: Position { line: 121, column: 18, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "runCommand", span: Span { start: Position { line: 121, column: 21, }, end: Position { line: 121, column: 31, }, }, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "nixos-manual-combined", span: Span { start: Position { line: 121, column: 33, }, end: Position { line: 121, column: 54, }, }, }, ), ], span: Span { start: Position { line: 121, column: 32, }, end: Position { line: 121, column: 55, }, }, }, ), Map( Map { recursive: false, bindings: [ Inherit( BindingInherit { from: None, attributes: [ Raw( PartRaw { content: "sources", span: Span { start: Position { line: 122, column: 15, }, end: Position { line: 122, column: 22, }, }, }, ), ], span: Span { start: Position { line: 122, column: 6, }, end: Position { line: 122, column: 23, }, }, }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "nativeBuildInputs", span: Span { start: Position { line: 123, column: 7, }, end: Position { line: 123, column: 24, }, }, }, ), ], to: List( List { elements: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "buildPackages", span: Span { start: Position { line: 123, column: 29, }, end: Position { line: 123, column: 42, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "libxml2", span: Span { start: Position { line: 123, column: 43, }, end: Position { line: 123, column: 50, }, }, }, ), Raw( PartRaw { content: "bin", span: Span { start: Position { line: 123, column: 51, }, end: Position { line: 123, column: 54, }, }, }, ), ], default: None, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "buildPackages", span: Span { start: Position { line: 123, column: 55, }, end: Position { line: 123, column: 68, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "libxslt", span: Span { start: Position { line: 123, column: 69, }, end: Position { line: 123, column: 76, }, }, }, ), Raw( PartRaw { content: "bin", span: Span { start: Position { line: 123, column: 77, }, end: Position { line: 123, column: 80, }, }, }, ), ], default: None, }, ), ], span: Span { start: Position { line: 123, column: 27, }, end: Position { line: 123, column: 82, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "meta", span: Span { start: Position { line: 124, column: 7, }, end: Position { line: 124, column: 11, }, }, }, ), Raw( PartRaw { content: "description", span: Span { start: Position { line: 124, column: 12, }, end: Position { line: 124, column: 23, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "The NixOS manual as plain docbook XML", span: Span { start: Position { line: 124, column: 27, }, end: Position { line: 124, column: 64, }, }, }, ), ], span: Span { start: Position { line: 124, column: 26, }, end: Position { line: 124, column: 65, }, }, }, ), }, ), ], span: Span { start: Position { line: 122, column: 5, }, end: Position { line: 125, column: 6, }, }, }, ), IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "", span: Span { start: Position { line: 127, column: 1, }, end: Position { line: 127, column: 7, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "copySources", span: Span { start: Position { line: 127, column: 9, }, end: Position { line: 127, column: 20, }, }, }, ), }, ), Raw( PartRaw { content: "\n\nxmllint --xinclude --output ./manual-combined.xml ./manual.xml\nxmllint --xinclude --noxincludenode \\\n --output ./man-pages-combined.xml ./man-pages.xml\n\n# outputs the context of an xmllint error output\n# LEN lines around the failing line are printed\nfunction context {\n # length of context\n local LEN=6\n # lines to print before error line\n local BEFORE=4\n\n # xmllint output lines are:\n # file.xml:1234: there was an error on line 1234\n while IFS=':' read -r file line rest; do\n echo\n if [[ -n \"$rest\" ]]; then\n echo \"$file:$line:$rest\"\n local FROM=$(($line>$BEFORE ? $line - $BEFORE : 1))\n # number lines & filter context\n nl --body-numbering=a \"$file\" | sed -n \"$FROM,+$LEN p\"\n else\n if [[ -n \"$line\" ]]; then\n echo \"$file:$line\"\n else\n echo \"$file\"\n fi\n fi\n done\n}\n\nfunction lintrng {\n xmllint --debug --noout --nonet \\\n --relaxng ", span: Span { start: Position { line: 127, column: 1, }, end: Position { line: 162, column: 21, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "docbook5", span: Span { start: Position { line: 162, column: 23, }, end: Position { line: 162, column: 31, }, }, }, ), }, ), Raw( PartRaw { content: "/xml/rng/docbook/docbook.rng \\\n \"$1\" \\\n 2>&1 | context 1>&2\n # ^ redirect assumes xmllint doesn’t print to stdout\n}\n\nmkdir $out\ncp manual-combined.xml $out/\ncp man-pages-combined.xml $out/\n\nlintrng $out/manual-combined.xml\nlintrng $out/man-pages-combined.xml\n", span: Span { start: Position { line: 127, column: 1, }, end: Position { line: 174, column: 5, }, }, }, ), ], span: Span { start: Position { line: 126, column: 5, }, end: Position { line: 174, column: 7, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "olinkDB", span: Span { start: Position { line: 176, column: 3, }, end: Position { line: 176, column: 10, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "runCommand", span: Span { start: Position { line: 176, column: 13, }, end: Position { line: 176, column: 23, }, }, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "manual-olinkdb", span: Span { start: Position { line: 176, column: 25, }, end: Position { line: 176, column: 39, }, }, }, ), ], span: Span { start: Position { line: 176, column: 24, }, end: Position { line: 176, column: 40, }, }, }, ), Map( Map { recursive: false, bindings: [ Inherit( BindingInherit { from: None, attributes: [ Raw( PartRaw { content: "sources", span: Span { start: Position { line: 177, column: 15, }, end: Position { line: 177, column: 22, }, }, }, ), ], span: Span { start: Position { line: 177, column: 6, }, end: Position { line: 177, column: 23, }, }, }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "nativeBuildInputs", span: Span { start: Position { line: 178, column: 7, }, end: Position { line: 178, column: 24, }, }, }, ), ], to: List( List { elements: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "buildPackages", span: Span { start: Position { line: 178, column: 29, }, end: Position { line: 178, column: 42, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "libxml2", span: Span { start: Position { line: 178, column: 43, }, end: Position { line: 178, column: 50, }, }, }, ), Raw( PartRaw { content: "bin", span: Span { start: Position { line: 178, column: 51, }, end: Position { line: 178, column: 54, }, }, }, ), ], default: None, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "buildPackages", span: Span { start: Position { line: 178, column: 55, }, end: Position { line: 178, column: 68, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "libxslt", span: Span { start: Position { line: 178, column: 69, }, end: Position { line: 178, column: 76, }, }, }, ), Raw( PartRaw { content: "bin", span: Span { start: Position { line: 178, column: 77, }, end: Position { line: 178, column: 80, }, }, }, ), ], default: None, }, ), ], span: Span { start: Position { line: 178, column: 27, }, end: Position { line: 178, column: 82, }, }, }, ), }, ), ], span: Span { start: Position { line: 177, column: 5, }, end: Position { line: 179, column: 6, }, }, }, ), IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "xsltproc \\\n ", span: Span { start: Position { line: 181, column: 1, }, end: Position { line: 182, column: 9, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "manualXsltprocOptions", span: Span { start: Position { line: 182, column: 11, }, end: Position { line: 182, column: 32, }, }, }, ), }, ), Raw( PartRaw { content: " \\\n --stringparam collect.xref.targets only \\\n --stringparam targets.filename \"$out/manual.db\" \\\n --nonet \\\n ", span: Span { start: Position { line: 181, column: 1, }, end: Position { line: 186, column: 9, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "docbook_xsl_ns", span: Span { start: Position { line: 186, column: 11, }, end: Position { line: 186, column: 25, }, }, }, ), }, ), Raw( PartRaw { content: "/xml/xsl/docbook/xhtml/chunktoc.xsl \\\n ", span: Span { start: Position { line: 181, column: 1, }, end: Position { line: 187, column: 9, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "manual-combined", span: Span { start: Position { line: 187, column: 11, }, end: Position { line: 187, column: 26, }, }, }, ), }, ), Raw( PartRaw { content: "/manual-combined.xml\n\ncat > \"$out/olinkdb.xml\" <\n\n]>\n\n \n Allows for cross-referencing olinks between the manpages\n and manual.\n \n\n &manualtargets;\n\nEOF\n", span: Span { start: Position { line: 181, column: 1, }, end: Position { line: 204, column: 5, }, }, }, ), ], span: Span { start: Position { line: 180, column: 5, }, end: Position { line: 204, column: 7, }, }, }, ), ], }, ), }, ), ], target: Map( Map { recursive: true, bindings: [ Inherit( BindingInherit { from: None, attributes: [ Raw( PartRaw { content: "generatedSources", span: Span { start: Position { line: 207, column: 11, }, end: Position { line: 207, column: 27, }, }, }, ), ], span: Span { start: Position { line: 206, column: 9, }, end: Position { line: 207, column: 28, }, }, }, ), Inherit( BindingInherit { from: Some( Identifier( Identifier { id: "optionsDoc", span: Span { start: Position { line: 209, column: 12, }, end: Position { line: 209, column: 22, }, }, }, ), ), attributes: [ Raw( PartRaw { content: "optionsJSON", span: Span { start: Position { line: 209, column: 24, }, end: Position { line: 209, column: 35, }, }, }, ), Raw( PartRaw { content: "optionsNix", span: Span { start: Position { line: 209, column: 36, }, end: Position { line: 209, column: 46, }, }, }, ), Raw( PartRaw { content: "optionsDocBook", span: Span { start: Position { line: 209, column: 47, }, end: Position { line: 209, column: 61, }, }, }, ), ], span: Span { start: Position { line: 206, column: 9, }, end: Position { line: 209, column: 62, }, }, }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "manualHTML", span: Span { start: Position { line: 212, column: 3, }, end: Position { line: 212, column: 13, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "runCommand", span: Span { start: Position { line: 212, column: 16, }, end: Position { line: 212, column: 26, }, }, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "nixos-manual-html", span: Span { start: Position { line: 212, column: 28, }, end: Position { line: 212, column: 45, }, }, }, ), ], span: Span { start: Position { line: 212, column: 27, }, end: Position { line: 212, column: 46, }, }, }, ), Map( Map { recursive: false, bindings: [ Inherit( BindingInherit { from: None, attributes: [ Raw( PartRaw { content: "sources", span: Span { start: Position { line: 213, column: 15, }, end: Position { line: 213, column: 22, }, }, }, ), ], span: Span { start: Position { line: 213, column: 6, }, end: Position { line: 213, column: 23, }, }, }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "nativeBuildInputs", span: Span { start: Position { line: 214, column: 7, }, end: Position { line: 214, column: 24, }, }, }, ), ], to: List( List { elements: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "buildPackages", span: Span { start: Position { line: 214, column: 29, }, end: Position { line: 214, column: 42, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "libxml2", span: Span { start: Position { line: 214, column: 43, }, end: Position { line: 214, column: 50, }, }, }, ), Raw( PartRaw { content: "bin", span: Span { start: Position { line: 214, column: 51, }, end: Position { line: 214, column: 54, }, }, }, ), ], default: None, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "buildPackages", span: Span { start: Position { line: 214, column: 55, }, end: Position { line: 214, column: 68, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "libxslt", span: Span { start: Position { line: 214, column: 69, }, end: Position { line: 214, column: 76, }, }, }, ), Raw( PartRaw { content: "bin", span: Span { start: Position { line: 214, column: 77, }, end: Position { line: 214, column: 80, }, }, }, ), ], default: None, }, ), ], span: Span { start: Position { line: 214, column: 27, }, end: Position { line: 214, column: 82, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "meta", span: Span { start: Position { line: 215, column: 7, }, end: Position { line: 215, column: 11, }, }, }, ), Raw( PartRaw { content: "description", span: Span { start: Position { line: 215, column: 12, }, end: Position { line: 215, column: 23, }, }, }, ), ], to: String( String_ { parts: [ Raw( PartRaw { content: "The NixOS manual in HTML format", span: Span { start: Position { line: 215, column: 27, }, end: Position { line: 215, column: 58, }, }, }, ), ], span: Span { start: Position { line: 215, column: 26, }, end: Position { line: 215, column: 59, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "allowedReferences", span: Span { start: Position { line: 216, column: 7, }, end: Position { line: 216, column: 24, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "out", span: Span { start: Position { line: 216, column: 29, }, end: Position { line: 216, column: 32, }, }, }, ), ], span: Span { start: Position { line: 216, column: 28, }, end: Position { line: 216, column: 33, }, }, }, ), ], span: Span { start: Position { line: 216, column: 27, }, end: Position { line: 216, column: 34, }, }, }, ), }, ), ], span: Span { start: Position { line: 213, column: 5, }, end: Position { line: 217, column: 6, }, }, }, ), IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "# Generate the HTML manual.\ndst=$out/share/doc/nixos\nmkdir -p $dst\nxsltproc \\\n ", span: Span { start: Position { line: 219, column: 1, }, end: Position { line: 223, column: 9, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "manualXsltprocOptions", span: Span { start: Position { line: 223, column: 11, }, end: Position { line: 223, column: 32, }, }, }, ), }, ), Raw( PartRaw { content: " \\\n --stringparam target.database.document \"", span: Span { start: Position { line: 219, column: 1, }, end: Position { line: 224, column: 49, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "olinkDB", span: Span { start: Position { line: 224, column: 51, }, end: Position { line: 224, column: 58, }, }, }, ), }, ), Raw( PartRaw { content: "/olinkdb.xml\" \\\n --stringparam id.warnings \"1\" \\\n --nonet --output $dst/ \\\n ", span: Span { start: Position { line: 219, column: 1, }, end: Position { line: 227, column: 9, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "docbook_xsl_ns", span: Span { start: Position { line: 227, column: 11, }, end: Position { line: 227, column: 25, }, }, }, ), }, ), Raw( PartRaw { content: "/xml/xsl/docbook/xhtml/chunktoc.xsl \\\n ", span: Span { start: Position { line: 219, column: 1, }, end: Position { line: 228, column: 9, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "manual-combined", span: Span { start: Position { line: 228, column: 11, }, end: Position { line: 228, column: 26, }, }, }, ), }, ), Raw( PartRaw { content: "/manual-combined.xml \\\n |& tee xsltproc.out\ngrep \"^ID recommended on\" xsltproc.out &>/dev/null && echo \"error: some IDs are missing\" && false\nrm xsltproc.out\n\nmkdir -p $dst/images/callouts\ncp ", span: Span { start: Position { line: 219, column: 1, }, end: Position { line: 234, column: 10, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "docbook_xsl_ns", span: Span { start: Position { line: 234, column: 12, }, end: Position { line: 234, column: 26, }, }, }, ), }, ), Raw( PartRaw { content: "/xml/xsl/docbook/images/callouts/*.svg $dst/images/callouts/\n\ncp ", span: Span { start: Position { line: 219, column: 1, }, end: Position { line: 236, column: 10, }, }, }, ), Interpolation( PartInterpolation { expression: Path( Path { parts: [ Raw( PartRaw { content: "../../../doc/style.css", span: Span { start: Position { line: 236, column: 12, }, end: Position { line: 236, column: 34, }, }, }, ), ], span: Span { start: Position { line: 236, column: 12, }, end: Position { line: 236, column: 34, }, }, }, ), }, ), Raw( PartRaw { content: " $dst/style.css\ncp ", span: Span { start: Position { line: 219, column: 1, }, end: Position { line: 237, column: 10, }, }, }, ), Interpolation( PartInterpolation { expression: Path( Path { parts: [ Raw( PartRaw { content: "../../../doc/overrides.css", span: Span { start: Position { line: 237, column: 12, }, end: Position { line: 237, column: 38, }, }, }, ), ], span: Span { start: Position { line: 237, column: 12, }, end: Position { line: 237, column: 38, }, }, }, ), }, ), Raw( PartRaw { content: " $dst/overrides.css\ncp -r ", span: Span { start: Position { line: 219, column: 1, }, end: Position { line: 238, column: 13, }, }, }, ), Interpolation( PartInterpolation { expression: PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "pkgs", span: Span { start: Position { line: 238, column: 15, }, end: Position { line: 238, column: 19, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "documentation-highlighter", span: Span { start: Position { line: 238, column: 20, }, end: Position { line: 238, column: 45, }, }, }, ), ], default: None, }, ), }, ), Raw( PartRaw { content: " $dst/highlightjs\n\nmkdir -p $out/nix-support\necho \"nix-build out $out\" >> $out/nix-support/hydra-build-products\necho \"doc manual $dst\" >> $out/nix-support/hydra-build-products\n", span: Span { start: Position { line: 219, column: 1, }, end: Position { line: 243, column: 5, }, }, }, ), ], span: Span { start: Position { line: 218, column: 5, }, end: Position { line: 243, column: 7, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "manual", span: Span { start: Position { line: 246, column: 3, }, end: Position { line: 246, column: 9, }, }, }, ), ], to: Identifier( Identifier { id: "manualHTML", span: Span { start: Position { line: 246, column: 12, }, end: Position { line: 246, column: 22, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "manualHTMLIndex", span: Span { start: Position { line: 249, column: 3, }, end: Position { line: 249, column: 18, }, }, }, ), ], to: String( String_ { parts: [ Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "manualHTML", span: Span { start: Position { line: 249, column: 24, }, end: Position { line: 249, column: 34, }, }, }, ), }, ), Raw( PartRaw { content: "/share/doc/nixos/index.html", span: Span { start: Position { line: 249, column: 22, }, end: Position { line: 249, column: 62, }, }, }, ), ], span: Span { start: Position { line: 249, column: 21, }, end: Position { line: 249, column: 63, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "manualEpub", span: Span { start: Position { line: 251, column: 3, }, end: Position { line: 251, column: 13, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "runCommand", span: Span { start: Position { line: 251, column: 16, }, end: Position { line: 251, column: 26, }, }, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "nixos-manual-epub", span: Span { start: Position { line: 251, column: 28, }, end: Position { line: 251, column: 45, }, }, }, ), ], span: Span { start: Position { line: 251, column: 27, }, end: Position { line: 251, column: 46, }, }, }, ), Map( Map { recursive: false, bindings: [ Inherit( BindingInherit { from: None, attributes: [ Raw( PartRaw { content: "sources", span: Span { start: Position { line: 252, column: 15, }, end: Position { line: 252, column: 22, }, }, }, ), ], span: Span { start: Position { line: 252, column: 6, }, end: Position { line: 252, column: 23, }, }, }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "nativeBuildInputs", span: Span { start: Position { line: 253, column: 7, }, end: Position { line: 253, column: 24, }, }, }, ), ], to: List( List { elements: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "buildPackages", span: Span { start: Position { line: 253, column: 29, }, end: Position { line: 253, column: 42, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "libxml2", span: Span { start: Position { line: 253, column: 43, }, end: Position { line: 253, column: 50, }, }, }, ), Raw( PartRaw { content: "bin", span: Span { start: Position { line: 253, column: 51, }, end: Position { line: 253, column: 54, }, }, }, ), ], default: None, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "buildPackages", span: Span { start: Position { line: 253, column: 55, }, end: Position { line: 253, column: 68, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "libxslt", span: Span { start: Position { line: 253, column: 69, }, end: Position { line: 253, column: 76, }, }, }, ), Raw( PartRaw { content: "bin", span: Span { start: Position { line: 253, column: 77, }, end: Position { line: 253, column: 80, }, }, }, ), ], default: None, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "buildPackages", span: Span { start: Position { line: 253, column: 81, }, end: Position { line: 253, column: 94, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "zip", span: Span { start: Position { line: 253, column: 95, }, end: Position { line: 253, column: 98, }, }, }, ), ], default: None, }, ), ], span: Span { start: Position { line: 253, column: 27, }, end: Position { line: 253, column: 100, }, }, }, ), }, ), ], span: Span { start: Position { line: 252, column: 5, }, end: Position { line: 254, column: 6, }, }, }, ), IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "# Generate the epub manual.\ndst=$out/share/doc/nixos\n\nxsltproc \\\n ", span: Span { start: Position { line: 256, column: 1, }, end: Position { line: 260, column: 9, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "manualXsltprocOptions", span: Span { start: Position { line: 260, column: 11, }, end: Position { line: 260, column: 32, }, }, }, ), }, ), Raw( PartRaw { content: " \\\n --stringparam target.database.document \"", span: Span { start: Position { line: 256, column: 1, }, end: Position { line: 261, column: 49, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "olinkDB", span: Span { start: Position { line: 261, column: 51, }, end: Position { line: 261, column: 58, }, }, }, ), }, ), Raw( PartRaw { content: "/olinkdb.xml\" \\\n --nonet --xinclude --output $dst/epub/ \\\n ", span: Span { start: Position { line: 256, column: 1, }, end: Position { line: 263, column: 9, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "docbook_xsl_ns", span: Span { start: Position { line: 263, column: 11, }, end: Position { line: 263, column: 25, }, }, }, ), }, ), Raw( PartRaw { content: "/xml/xsl/docbook/epub/docbook.xsl \\\n ", span: Span { start: Position { line: 256, column: 1, }, end: Position { line: 264, column: 9, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "manual-combined", span: Span { start: Position { line: 264, column: 11, }, end: Position { line: 264, column: 26, }, }, }, ), }, ), Raw( PartRaw { content: "/manual-combined.xml\n\nmkdir -p $dst/epub/OEBPS/images/callouts\ncp -r ", span: Span { start: Position { line: 256, column: 1, }, end: Position { line: 267, column: 13, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "docbook_xsl_ns", span: Span { start: Position { line: 267, column: 15, }, end: Position { line: 267, column: 29, }, }, }, ), }, ), Raw( PartRaw { content: "/xml/xsl/docbook/images/callouts/*.svg $dst/epub/OEBPS/images/callouts # */\necho \"application/epub+zip\" > mimetype\nmanual=\"$dst/nixos-manual.epub\"\nzip -0Xq \"$manual\" mimetype\ncd $dst/epub && zip -Xr9D \"$manual\" *\n\nrm -rf $dst/epub\n\nmkdir -p $out/nix-support\necho \"doc-epub manual $manual\" >> $out/nix-support/hydra-build-products\n", span: Span { start: Position { line: 256, column: 1, }, end: Position { line: 277, column: 5, }, }, }, ), ], span: Span { start: Position { line: 255, column: 5, }, end: Position { line: 277, column: 7, }, }, }, ), ], }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "manpages", span: Span { start: Position { line: 281, column: 3, }, end: Position { line: 281, column: 11, }, }, }, ), ], to: FunctionApplication( FunctionApplication { function: Identifier( Identifier { id: "runCommand", span: Span { start: Position { line: 281, column: 14, }, end: Position { line: 281, column: 24, }, }, }, ), arguments: [ String( String_ { parts: [ Raw( PartRaw { content: "nixos-manpages", span: Span { start: Position { line: 281, column: 26, }, end: Position { line: 281, column: 40, }, }, }, ), ], span: Span { start: Position { line: 281, column: 25, }, end: Position { line: 281, column: 41, }, }, }, ), Map( Map { recursive: false, bindings: [ Inherit( BindingInherit { from: None, attributes: [ Raw( PartRaw { content: "sources", span: Span { start: Position { line: 282, column: 15, }, end: Position { line: 282, column: 22, }, }, }, ), ], span: Span { start: Position { line: 282, column: 6, }, end: Position { line: 282, column: 23, }, }, }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "nativeBuildInputs", span: Span { start: Position { line: 283, column: 7, }, end: Position { line: 283, column: 24, }, }, }, ), ], to: List( List { elements: [ PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "buildPackages", span: Span { start: Position { line: 283, column: 29, }, end: Position { line: 283, column: 42, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "libxml2", span: Span { start: Position { line: 283, column: 43, }, end: Position { line: 283, column: 50, }, }, }, ), Raw( PartRaw { content: "bin", span: Span { start: Position { line: 283, column: 51, }, end: Position { line: 283, column: 54, }, }, }, ), ], default: None, }, ), PropertyAccess( PropertyAccess { expression: Identifier( Identifier { id: "buildPackages", span: Span { start: Position { line: 283, column: 55, }, end: Position { line: 283, column: 68, }, }, }, ), attribute_path: [ Raw( PartRaw { content: "libxslt", span: Span { start: Position { line: 283, column: 69, }, end: Position { line: 283, column: 76, }, }, }, ), Raw( PartRaw { content: "bin", span: Span { start: Position { line: 283, column: 77, }, end: Position { line: 283, column: 80, }, }, }, ), ], default: None, }, ), ], span: Span { start: Position { line: 283, column: 27, }, end: Position { line: 283, column: 82, }, }, }, ), }, ), KeyValue( BindingKeyValue { from: [ Raw( PartRaw { content: "allowedReferences", span: Span { start: Position { line: 284, column: 7, }, end: Position { line: 284, column: 24, }, }, }, ), ], to: List( List { elements: [ String( String_ { parts: [ Raw( PartRaw { content: "out", span: Span { start: Position { line: 284, column: 29, }, end: Position { line: 284, column: 32, }, }, }, ), ], span: Span { start: Position { line: 284, column: 28, }, end: Position { line: 284, column: 33, }, }, }, ), ], span: Span { start: Position { line: 284, column: 27, }, end: Position { line: 284, column: 34, }, }, }, ), }, ), ], span: Span { start: Position { line: 282, column: 5, }, end: Position { line: 285, column: 6, }, }, }, ), IndentedString( IndentedString { parts: [ Raw( PartRaw { content: "# Generate manpages.\nmkdir -p $out/share/man\nxsltproc --nonet \\\n --maxdepth 6000 \\\n --param man.output.in.separate.dir 1 \\\n --param man.output.base.dir \"", span: Span { start: Position { line: 287, column: 1, }, end: Position { line: 292, column: 38, }, }, }, ), Raw( PartRaw { content: "'", span: Span { start: Position { line: 287, column: 1, }, end: Position { line: 292, column: 39, }, }, }, ), Raw( PartRaw { content: "$out/share/man/'\" \\\n --param man.endnotes.are.numbered 0 \\\n --param man.break.after.slash 1 \\\n --stringparam target.database.document \"", span: Span { start: Position { line: 287, column: 1, }, end: Position { line: 295, column: 49, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "olinkDB", span: Span { start: Position { line: 295, column: 51, }, end: Position { line: 295, column: 58, }, }, }, ), }, ), Raw( PartRaw { content: "/olinkdb.xml\" \\\n ", span: Span { start: Position { line: 287, column: 1, }, end: Position { line: 296, column: 9, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "docbook_xsl_ns", span: Span { start: Position { line: 296, column: 11, }, end: Position { line: 296, column: 25, }, }, }, ), }, ), Raw( PartRaw { content: "/xml/xsl/docbook/manpages/docbook.xsl \\\n ", span: Span { start: Position { line: 287, column: 1, }, end: Position { line: 297, column: 9, }, }, }, ), Interpolation( PartInterpolation { expression: Identifier( Identifier { id: "manual-combined", span: Span { start: Position { line: 297, column: 11, }, end: Position { line: 297, column: 26, }, }, }, ), }, ), Raw( PartRaw { content: "/man-pages-combined.xml\n", span: Span { start: Position { line: 287, column: 1, }, end: Position { line: 298, column: 5, }, }, }, ), ], span: Span { start: Position { line: 286, column: 5, }, end: Position { line: 298, column: 7, }, }, }, ), ], }, ), }, ), ], span: Span { start: Position { line: 206, column: 4, }, end: Position { line: 300, column: 2, }, }, }, ), span: Span { start: Position { line: 15, column: 1, }, end: Position { line: 300, column: 2, }, }, }, ), span: Span { start: Position { line: 13, column: 1, }, end: Position { line: 300, column: 2, }, }, }, ), span: Span { start: Position { line: 1, column: 1, }, end: Position { line: 300, column: 2, }, }, }, )