diff --git a/Examples/card_game/code.swift b/Examples/card_game/code.swift new file mode 100644 index 0000000..4199994 --- /dev/null +++ b/Examples/card_game/code.swift @@ -0,0 +1,50 @@ +import Foundation + +// MARK: - Models +/// Represents a playing card in a standard 52-card deck +/// +/// A card has a rank (2-10, J, Q, K, A) and a suit (hearts, diamonds, clubs, spades). +/// Each card can be compared to other cards based on its rank. +struct Card: Comparable { + /// The rank of the card (2-10, J, Q, K, A) + let rank: Rank + /// The suit of the card (hearts, diamonds, clubs, spades) + let suit: Suit +} + +// MARK: - Enums +/// Represents the possible ranks of a playing card +enum Rank: Int, CaseIterable { + case two = 2 + case three + case four + case five + case six + case seven + case eight + case nine + case ten + case jack + case queen + case king + case ace + + /// Returns a string representation of the rank + var description: String { + switch self { + case .jack: return "J" + case .queen: return "Q" + case .king: return "K" + case .ace: return "A" + default: return "\(rawValue)" + } + } +} + +/// Represents the four suits in a standard deck of cards +enum Suit: String, CaseIterable { + case hearts = "♥" + case diamonds = "♦" + case clubs = "♣" + case spades = "♠" +} \ No newline at end of file diff --git a/Examples/card_game/dsl.swift b/Examples/card_game/dsl.swift new file mode 100644 index 0000000..a4cb6ad --- /dev/null +++ b/Examples/card_game/dsl.swift @@ -0,0 +1,98 @@ +import SwiftBuilder + +// Example of generating a BlackjackCard struct with a nested Suit enum +let structExample = Group { + Struct("Card") { + Variable(.let, name: "rank", type: "Rank") + .comment{ + Line(.doc, "The rank of the card (2-10, J, Q, K, A)") + } + Variable(.let, name: "suit", type: "Suit") + .comment{ + Line(.doc, "The suit of the card (hearts, diamonds, clubs, spades)") + } + } + .inherits("Comparable") + .comment{ + Line("MARK: - Models") + Line(.doc, "Represents a playing card in a standard 52-card deck") + Line(.doc) + Line(.doc, "A card has a rank (2-10, J, Q, K, A) and a suit (hearts, diamonds, clubs, spades).") + Line(.doc, "Each card can be compared to other cards based on its rank.") + } + + Enum("Rank") { + EnumCase("two").equals(2) + EnumCase("three") + EnumCase("four") + EnumCase("five") + EnumCase("six") + EnumCase("seven") + EnumCase("eight") + EnumCase("nine") + EnumCase("ten") + EnumCase("jack") + EnumCase("queen") + EnumCase("king") + EnumCase("ace") + Struct("Values") { + Variable(.let, name: "first", type: "Int") + Variable(.let, name: "second", type: "Int?") + } + ComputedProperty("description") { + Switch("self") { + SwitchCase(".jack") { + Return{ + Literal("\"J\"") + } + } + SwitchCase(".queen") { + Return{ + Literal("\"Q\"") + } + } + SwitchCase(".king") { + Return{ + Literal("\"K\"") + } + } + SwitchCase(".ace") { + Return{ + Literal("\"A\"") + } + } + Default { + Return{ + Literal("\\(rawValue)") + } + } + } + } + .comment{ + Line(.doc, "Returns a string representation of the rank") + } + } + .inherits("Int") + .inherits("CaseIterable") + .comment{ + Line("MARK: - Enums") + Line(.doc, "Represents the possible ranks of a playing card") + } + + Enum("Suit") { + EnumCase("spades").equals("♠") + EnumCase("hearts").equals("♡") + EnumCase("diamonds").equals("♢") + EnumCase("clubs").equals("♣") + } + .inherits("String") + .inherits("CaseIterable") + .comment{ + Line(.doc, "Represents the possible suits of a playing card") + } + +} + + +// Generate and print the code +print(structExample.generateCode()) \ No newline at end of file diff --git a/Examples/card_game/syntax.json b/Examples/card_game/syntax.json new file mode 100644 index 0000000..a22e085 --- /dev/null +++ b/Examples/card_game/syntax.json @@ -0,0 +1 @@ +[{"type":"other","range":{"graphemeEndColumn":2,"endRow":50,"endColumn":2,"startColumn":1,"startRow":1,"graphemeStartColumn":1},"id":0,"text":"SourceFile","structure":[{"name":"unexpectedBeforeShebang","value":{"text":"nil"}},{"name":"shebang","value":{"text":"nil"}},{"name":"unexpectedBetweenShebangAndStatements","value":{"text":"nil"}},{"name":"statements","value":{"text":"CodeBlockItemListSyntax"},"ref":"CodeBlockItemListSyntax"},{"name":"unexpectedBetweenStatementsAndEndOfFileToken","value":{"text":"nil"}},{"name":"endOfFileToken","value":{"text":"","kind":"endOfFile"}},{"name":"unexpectedAfterEndOfFileToken","value":{"text":"nil"}}]},{"parent":0,"id":1,"text":"CodeBlockItemList","range":{"startColumn":1,"endColumn":2,"graphemeEndColumn":2,"endRow":50,"graphemeStartColumn":1,"startRow":1},"type":"collection","structure":[{"name":"Element","value":{"text":"CodeBlockItemSyntax"}},{"name":"Count","value":{"text":"4"}}]},{"parent":1,"id":2,"text":"CodeBlockItem","range":{"graphemeStartColumn":1,"endColumn":18,"startRow":1,"endRow":1,"startColumn":1,"graphemeEndColumn":18},"type":"other","structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeItem"},{"value":{"text":"ImportDeclSyntax"},"name":"item","ref":"ImportDeclSyntax"},{"value":{"text":"nil"},"name":"unexpectedBetweenItemAndSemicolon"},{"value":{"text":"nil"},"name":"semicolon"},{"value":{"text":"nil"},"name":"unexpectedAfterSemicolon"}]},{"parent":2,"id":3,"text":"ImportDecl","range":{"startRow":1,"startColumn":1,"graphemeEndColumn":18,"graphemeStartColumn":1,"endRow":1,"endColumn":18},"type":"decl","structure":[{"name":"unexpectedBeforeAttributes","value":{"text":"nil"}},{"value":{"text":"AttributeListSyntax"},"ref":"AttributeListSyntax","name":"attributes"},{"value":{"text":"nil"},"name":"unexpectedBetweenAttributesAndModifiers"},{"value":{"text":"DeclModifierListSyntax"},"ref":"DeclModifierListSyntax","name":"modifiers"},{"value":{"text":"nil"},"name":"unexpectedBetweenModifiersAndImportKeyword"},{"value":{"kind":"keyword(SwiftSyntax.Keyword.import)","text":"import"},"name":"importKeyword"},{"value":{"text":"nil"},"name":"unexpectedBetweenImportKeywordAndImportKindSpecifier"},{"value":{"text":"nil"},"name":"importKindSpecifier"},{"value":{"text":"nil"},"name":"unexpectedBetweenImportKindSpecifierAndPath"},{"value":{"text":"ImportPathComponentListSyntax"},"ref":"ImportPathComponentListSyntax","name":"path"},{"value":{"text":"nil"},"name":"unexpectedAfterPath"}]},{"structure":[{"name":"Element","value":{"text":"Element"}},{"name":"Count","value":{"text":"0"}}],"type":"collection","id":4,"text":"AttributeList","parent":3,"range":{"graphemeStartColumn":1,"startColumn":1,"startRow":1,"endRow":1,"endColumn":1,"graphemeEndColumn":1}},{"structure":[{"name":"Element","value":{"text":"DeclModifierSyntax"}},{"name":"Count","value":{"text":"0"}}],"type":"collection","id":5,"text":"DeclModifierList","parent":3,"range":{"startRow":1,"graphemeStartColumn":1,"graphemeEndColumn":1,"endColumn":1,"startColumn":1,"endRow":1}},{"structure":[],"text":"import","id":6,"range":{"endColumn":7,"startRow":1,"graphemeEndColumn":7,"graphemeStartColumn":1,"startColumn":1,"endRow":1},"token":{"kind":"keyword(SwiftSyntax.Keyword.import)","trailingTrivia":"␣<\/span>","leadingTrivia":""},"parent":3,"type":"other"},{"id":7,"type":"collection","structure":[{"value":{"text":"ImportPathComponentSyntax"},"name":"Element"},{"value":{"text":"1"},"name":"Count"}],"parent":3,"text":"ImportPathComponentList","range":{"startRow":1,"startColumn":8,"graphemeEndColumn":18,"graphemeStartColumn":8,"endColumn":18,"endRow":1}},{"id":8,"type":"other","structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeName"},{"value":{"kind":"identifier("Foundation")","text":"Foundation"},"name":"name"},{"value":{"text":"nil"},"name":"unexpectedBetweenNameAndTrailingPeriod"},{"value":{"text":"nil"},"name":"trailingPeriod"},{"value":{"text":"nil"},"name":"unexpectedAfterTrailingPeriod"}],"parent":7,"text":"ImportPathComponent","range":{"endRow":1,"endColumn":18,"graphemeEndColumn":18,"startColumn":8,"graphemeStartColumn":8,"startRow":1}},{"type":"other","range":{"startColumn":8,"endRow":1,"graphemeStartColumn":8,"startRow":1,"graphemeEndColumn":18,"endColumn":18},"text":"Foundation","structure":[],"token":{"kind":"identifier("Foundation")","leadingTrivia":"","trailingTrivia":""},"id":9,"parent":8},{"id":10,"type":"other","structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeItem"},{"value":{"text":"StructDeclSyntax"},"ref":"StructDeclSyntax","name":"item"},{"value":{"text":"nil"},"name":"unexpectedBetweenItemAndSemicolon"},{"value":{"text":"nil"},"name":"semicolon"},{"value":{"text":"nil"},"name":"unexpectedAfterSemicolon"}],"parent":1,"text":"CodeBlockItem","range":{"startColumn":1,"endRow":13,"graphemeStartColumn":1,"startRow":8,"graphemeEndColumn":2,"endColumn":2}},{"id":11,"type":"decl","structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeAttributes"},{"ref":"AttributeListSyntax","value":{"text":"AttributeListSyntax"},"name":"attributes"},{"name":"unexpectedBetweenAttributesAndModifiers","value":{"text":"nil"}},{"name":"modifiers","value":{"text":"DeclModifierListSyntax"},"ref":"DeclModifierListSyntax"},{"name":"unexpectedBetweenModifiersAndStructKeyword","value":{"text":"nil"}},{"name":"structKeyword","value":{"text":"struct","kind":"keyword(SwiftSyntax.Keyword.struct)"}},{"name":"unexpectedBetweenStructKeywordAndName","value":{"text":"nil"}},{"name":"name","value":{"text":"Card","kind":"identifier("Card")"}},{"name":"unexpectedBetweenNameAndGenericParameterClause","value":{"text":"nil"}},{"name":"genericParameterClause","value":{"text":"nil"}},{"name":"unexpectedBetweenGenericParameterClauseAndInheritanceClause","value":{"text":"nil"}},{"name":"inheritanceClause","value":{"text":"InheritanceClauseSyntax"},"ref":"InheritanceClauseSyntax"},{"name":"unexpectedBetweenInheritanceClauseAndGenericWhereClause","value":{"text":"nil"}},{"name":"genericWhereClause","value":{"text":"nil"}},{"name":"unexpectedBetweenGenericWhereClauseAndMemberBlock","value":{"text":"nil"}},{"name":"memberBlock","value":{"text":"MemberBlockSyntax"},"ref":"MemberBlockSyntax"},{"name":"unexpectedAfterMemberBlock","value":{"text":"nil"}}],"parent":10,"text":"StructDecl","range":{"graphemeEndColumn":2,"graphemeStartColumn":1,"startRow":8,"endColumn":2,"startColumn":1,"endRow":13}},{"structure":[{"value":{"text":"Element"},"name":"Element"},{"value":{"text":"0"},"name":"Count"}],"type":"collection","id":12,"parent":11,"text":"AttributeList","range":{"startColumn":18,"graphemeStartColumn":18,"endRow":1,"endColumn":18,"startRow":1,"graphemeEndColumn":18}},{"parent":11,"text":"DeclModifierList","type":"collection","id":13,"range":{"startRow":1,"startColumn":18,"graphemeStartColumn":18,"endRow":1,"endColumn":18,"graphemeEndColumn":18},"structure":[{"name":"Element","value":{"text":"DeclModifierSyntax"}},{"name":"Count","value":{"text":"0"}}]},{"structure":[],"token":{"kind":"keyword(SwiftSyntax.Keyword.struct)","trailingTrivia":"␣<\/span>","leadingTrivia":"↲<\/span>↲<\/span>\/\/␣<\/span>MARK:␣<\/span>-␣<\/span>Models<\/span>↲<\/span>\/\/\/␣<\/span>Represents␣<\/span>a␣<\/span>playing␣<\/span>card␣<\/span>in␣<\/span>a␣<\/span>standard␣<\/span>52-card␣<\/span>deck<\/span>↲<\/span>\/\/\/<\/span>↲<\/span>\/\/\/␣<\/span>A␣<\/span>card␣<\/span>has␣<\/span>a␣<\/span>rank␣<\/span>(2-10,␣<\/span>J,␣<\/span>Q,␣<\/span>K,␣<\/span>A)␣<\/span>and␣<\/span>a␣<\/span>suit␣<\/span>(hearts,␣<\/span>diamonds,␣<\/span>clubs,␣<\/span>spades).<\/span>↲<\/span>\/\/\/␣<\/span>Each␣<\/span>card␣<\/span>can␣<\/span>be␣<\/span>compared␣<\/span>to␣<\/span>other␣<\/span>cards␣<\/span>based␣<\/span>on␣<\/span>its␣<\/span>rank.<\/span>↲<\/span>"},"text":"struct","parent":11,"type":"other","range":{"endColumn":7,"graphemeEndColumn":7,"startColumn":1,"startRow":8,"graphemeStartColumn":1,"endRow":8},"id":14},{"range":{"endColumn":12,"graphemeEndColumn":12,"startColumn":8,"startRow":8,"graphemeStartColumn":8,"endRow":8},"structure":[],"id":15,"token":{"kind":"identifier("Card")","trailingTrivia":"","leadingTrivia":""},"parent":11,"type":"other","text":"Card"},{"parent":11,"text":"InheritanceClause","type":"other","id":16,"range":{"endColumn":24,"graphemeEndColumn":24,"startColumn":12,"startRow":8,"graphemeStartColumn":12,"endRow":8},"structure":[{"name":"unexpectedBeforeColon","value":{"text":"nil"}},{"name":"colon","value":{"text":":","kind":"colon"}},{"name":"unexpectedBetweenColonAndInheritedTypes","value":{"text":"nil"}},{"name":"inheritedTypes","value":{"text":"InheritedTypeListSyntax"},"ref":"InheritedTypeListSyntax"},{"name":"unexpectedAfterInheritedTypes","value":{"text":"nil"}}]},{"parent":16,"type":"other","text":":","id":17,"range":{"graphemeStartColumn":12,"startRow":8,"endRow":8,"endColumn":13,"graphemeEndColumn":13,"startColumn":12},"structure":[],"token":{"leadingTrivia":"","trailingTrivia":"␣<\/span>","kind":"colon"}},{"parent":16,"text":"InheritedTypeList","type":"collection","id":18,"range":{"graphemeStartColumn":14,"startRow":8,"endRow":8,"endColumn":24,"graphemeEndColumn":24,"startColumn":14},"structure":[{"name":"Element","value":{"text":"InheritedTypeSyntax"}},{"name":"Count","value":{"text":"1"}}]},{"parent":18,"text":"InheritedType","type":"other","id":19,"range":{"graphemeStartColumn":14,"startColumn":14,"endRow":8,"endColumn":24,"startRow":8,"graphemeEndColumn":24},"structure":[{"name":"unexpectedBeforeType","value":{"text":"nil"}},{"name":"type","ref":"IdentifierTypeSyntax","value":{"text":"IdentifierTypeSyntax"}},{"value":{"text":"nil"},"name":"unexpectedBetweenTypeAndTrailingComma"},{"value":{"text":"nil"},"name":"trailingComma"},{"value":{"text":"nil"},"name":"unexpectedAfterTrailingComma"}]},{"type":"type","parent":19,"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeName"},{"value":{"kind":"identifier("Comparable")","text":"Comparable"},"name":"name"},{"value":{"text":"nil"},"name":"unexpectedBetweenNameAndGenericArgumentClause"},{"value":{"text":"nil"},"name":"genericArgumentClause"},{"value":{"text":"nil"},"name":"unexpectedAfterGenericArgumentClause"}],"id":20,"range":{"startRow":8,"graphemeStartColumn":14,"startColumn":14,"endColumn":24,"endRow":8,"graphemeEndColumn":24},"text":"IdentifierType"},{"structure":[],"text":"Comparable","parent":20,"id":21,"range":{"endRow":8,"endColumn":24,"startColumn":14,"graphemeEndColumn":24,"startRow":8,"graphemeStartColumn":14},"type":"other","token":{"kind":"identifier("Comparable")","leadingTrivia":"","trailingTrivia":"␣<\/span>"}},{"type":"other","parent":11,"structure":[{"name":"unexpectedBeforeLeftBrace","value":{"text":"nil"}},{"name":"leftBrace","value":{"kind":"leftBrace","text":"{"}},{"name":"unexpectedBetweenLeftBraceAndMembers","value":{"text":"nil"}},{"name":"members","ref":"MemberBlockItemListSyntax","value":{"text":"MemberBlockItemListSyntax"}},{"name":"unexpectedBetweenMembersAndRightBrace","value":{"text":"nil"}},{"name":"rightBrace","value":{"text":"}","kind":"rightBrace"}},{"name":"unexpectedAfterRightBrace","value":{"text":"nil"}}],"id":22,"range":{"endRow":13,"endColumn":2,"startColumn":25,"graphemeEndColumn":2,"startRow":8,"graphemeStartColumn":25},"text":"MemberBlock"},{"structure":[],"text":"{","parent":22,"id":23,"range":{"graphemeStartColumn":25,"graphemeEndColumn":26,"endColumn":26,"endRow":8,"startColumn":25,"startRow":8},"type":"other","token":{"leadingTrivia":"","kind":"leftBrace","trailingTrivia":""}},{"range":{"graphemeStartColumn":5,"graphemeEndColumn":19,"endColumn":19,"endRow":12,"startColumn":5,"startRow":10},"structure":[{"value":{"text":"MemberBlockItemSyntax"},"name":"Element"},{"value":{"text":"2"},"name":"Count"}],"parent":22,"type":"collection","id":24,"text":"MemberBlockItemList"},{"range":{"startRow":10,"startColumn":5,"graphemeStartColumn":5,"endColumn":19,"endRow":10,"graphemeEndColumn":19},"structure":[{"name":"unexpectedBeforeDecl","value":{"text":"nil"}},{"name":"decl","value":{"text":"VariableDeclSyntax"},"ref":"VariableDeclSyntax"},{"name":"unexpectedBetweenDeclAndSemicolon","value":{"text":"nil"}},{"name":"semicolon","value":{"text":"nil"}},{"name":"unexpectedAfterSemicolon","value":{"text":"nil"}}],"parent":24,"type":"other","id":25,"text":"MemberBlockItem"},{"range":{"startColumn":5,"endRow":10,"endColumn":19,"graphemeStartColumn":5,"startRow":10,"graphemeEndColumn":19},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeAttributes"},{"ref":"AttributeListSyntax","value":{"text":"AttributeListSyntax"},"name":"attributes"},{"value":{"text":"nil"},"name":"unexpectedBetweenAttributesAndModifiers"},{"ref":"DeclModifierListSyntax","value":{"text":"DeclModifierListSyntax"},"name":"modifiers"},{"value":{"text":"nil"},"name":"unexpectedBetweenModifiersAndBindingSpecifier"},{"value":{"text":"let","kind":"keyword(SwiftSyntax.Keyword.let)"},"name":"bindingSpecifier"},{"value":{"text":"nil"},"name":"unexpectedBetweenBindingSpecifierAndBindings"},{"ref":"PatternBindingListSyntax","value":{"text":"PatternBindingListSyntax"},"name":"bindings"},{"value":{"text":"nil"},"name":"unexpectedAfterBindings"}],"parent":25,"type":"decl","id":26,"text":"VariableDecl"},{"structure":[{"name":"Element","value":{"text":"Element"}},{"name":"Count","value":{"text":"0"}}],"type":"collection","range":{"graphemeEndColumn":26,"endColumn":26,"graphemeStartColumn":26,"startRow":8,"endRow":8,"startColumn":26},"id":27,"parent":26,"text":"AttributeList"},{"structure":[{"name":"Element","value":{"text":"DeclModifierSyntax"}},{"name":"Count","value":{"text":"0"}}],"type":"collection","range":{"startColumn":26,"endRow":8,"graphemeStartColumn":26,"graphemeEndColumn":26,"endColumn":26,"startRow":8},"id":28,"parent":26,"text":"DeclModifierList"},{"structure":[],"text":"let","parent":26,"id":29,"range":{"endColumn":8,"startRow":10,"graphemeEndColumn":8,"endRow":10,"graphemeStartColumn":5,"startColumn":5},"type":"other","token":{"leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>\/\/\/␣<\/span>The␣<\/span>rank␣<\/span>of␣<\/span>the␣<\/span>card␣<\/span>(2-10,␣<\/span>J,␣<\/span>Q,␣<\/span>K,␣<\/span>A)<\/span>↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>","kind":"keyword(SwiftSyntax.Keyword.let)","trailingTrivia":"␣<\/span>"}},{"structure":[{"name":"Element","value":{"text":"PatternBindingSyntax"}},{"name":"Count","value":{"text":"1"}}],"type":"collection","range":{"endColumn":19,"startRow":10,"graphemeEndColumn":19,"endRow":10,"graphemeStartColumn":9,"startColumn":9},"id":30,"parent":26,"text":"PatternBindingList"},{"structure":[{"name":"unexpectedBeforePattern","value":{"text":"nil"}},{"name":"pattern","ref":"IdentifierPatternSyntax","value":{"text":"IdentifierPatternSyntax"}},{"name":"unexpectedBetweenPatternAndTypeAnnotation","value":{"text":"nil"}},{"name":"typeAnnotation","ref":"TypeAnnotationSyntax","value":{"text":"TypeAnnotationSyntax"}},{"name":"unexpectedBetweenTypeAnnotationAndInitializer","value":{"text":"nil"}},{"value":{"text":"nil"},"name":"initializer"},{"value":{"text":"nil"},"name":"unexpectedBetweenInitializerAndAccessorBlock"},{"value":{"text":"nil"},"name":"accessorBlock"},{"value":{"text":"nil"},"name":"unexpectedBetweenAccessorBlockAndTrailingComma"},{"value":{"text":"nil"},"name":"trailingComma"},{"value":{"text":"nil"},"name":"unexpectedAfterTrailingComma"}],"type":"other","range":{"graphemeEndColumn":19,"startColumn":9,"graphemeStartColumn":9,"endRow":10,"startRow":10,"endColumn":19},"id":31,"parent":30,"text":"PatternBinding"},{"structure":[{"name":"unexpectedBeforeIdentifier","value":{"text":"nil"}},{"name":"identifier","value":{"kind":"identifier("rank")","text":"rank"}},{"name":"unexpectedAfterIdentifier","value":{"text":"nil"}}],"id":32,"parent":31,"text":"IdentifierPattern","type":"pattern","range":{"startRow":10,"endColumn":13,"endRow":10,"startColumn":9,"graphemeEndColumn":13,"graphemeStartColumn":9}},{"structure":[],"text":"rank","parent":32,"id":33,"range":{"startColumn":9,"graphemeStartColumn":9,"endColumn":13,"startRow":10,"endRow":10,"graphemeEndColumn":13},"type":"other","token":{"kind":"identifier("rank")","leadingTrivia":"","trailingTrivia":""}},{"structure":[{"name":"unexpectedBeforeColon","value":{"text":"nil"}},{"name":"colon","value":{"text":":","kind":"colon"}},{"name":"unexpectedBetweenColonAndType","value":{"text":"nil"}},{"name":"type","value":{"text":"IdentifierTypeSyntax"},"ref":"IdentifierTypeSyntax"},{"name":"unexpectedAfterType","value":{"text":"nil"}}],"id":34,"parent":31,"text":"TypeAnnotation","type":"other","range":{"startColumn":13,"graphemeStartColumn":13,"endColumn":19,"startRow":10,"endRow":10,"graphemeEndColumn":19}},{"structure":[],"text":":","parent":34,"id":35,"range":{"endColumn":14,"graphemeStartColumn":13,"startRow":10,"startColumn":13,"endRow":10,"graphemeEndColumn":14},"type":"other","token":{"leadingTrivia":"","kind":"colon","trailingTrivia":"␣<\/span>"}},{"id":36,"range":{"endRow":10,"startColumn":15,"graphemeStartColumn":15,"endColumn":19,"graphemeEndColumn":19,"startRow":10},"structure":[{"name":"unexpectedBeforeName","value":{"text":"nil"}},{"name":"name","value":{"text":"Rank","kind":"identifier("Rank")"}},{"name":"unexpectedBetweenNameAndGenericArgumentClause","value":{"text":"nil"}},{"name":"genericArgumentClause","value":{"text":"nil"}},{"name":"unexpectedAfterGenericArgumentClause","value":{"text":"nil"}}],"type":"type","text":"IdentifierType","parent":34},{"structure":[],"text":"Rank","parent":36,"id":37,"range":{"endColumn":19,"graphemeEndColumn":19,"startRow":10,"graphemeStartColumn":15,"endRow":10,"startColumn":15},"type":"other","token":{"kind":"identifier("Rank")","leadingTrivia":"","trailingTrivia":""}},{"id":38,"range":{"endColumn":19,"graphemeEndColumn":19,"startRow":12,"graphemeStartColumn":5,"endRow":12,"startColumn":5},"structure":[{"name":"unexpectedBeforeDecl","value":{"text":"nil"}},{"name":"decl","value":{"text":"VariableDeclSyntax"},"ref":"VariableDeclSyntax"},{"name":"unexpectedBetweenDeclAndSemicolon","value":{"text":"nil"}},{"name":"semicolon","value":{"text":"nil"}},{"name":"unexpectedAfterSemicolon","value":{"text":"nil"}}],"type":"other","text":"MemberBlockItem","parent":24},{"id":39,"range":{"endRow":12,"endColumn":19,"startColumn":5,"graphemeEndColumn":19,"startRow":12,"graphemeStartColumn":5},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeAttributes"},{"ref":"AttributeListSyntax","value":{"text":"AttributeListSyntax"},"name":"attributes"},{"value":{"text":"nil"},"name":"unexpectedBetweenAttributesAndModifiers"},{"ref":"DeclModifierListSyntax","value":{"text":"DeclModifierListSyntax"},"name":"modifiers"},{"value":{"text":"nil"},"name":"unexpectedBetweenModifiersAndBindingSpecifier"},{"value":{"text":"let","kind":"keyword(SwiftSyntax.Keyword.let)"},"name":"bindingSpecifier"},{"value":{"text":"nil"},"name":"unexpectedBetweenBindingSpecifierAndBindings"},{"ref":"PatternBindingListSyntax","value":{"text":"PatternBindingListSyntax"},"name":"bindings"},{"value":{"text":"nil"},"name":"unexpectedAfterBindings"}],"type":"decl","text":"VariableDecl","parent":38},{"range":{"startRow":10,"startColumn":19,"graphemeStartColumn":19,"endRow":10,"endColumn":19,"graphemeEndColumn":19},"type":"collection","structure":[{"value":{"text":"Element"},"name":"Element"},{"value":{"text":"0"},"name":"Count"}],"id":40,"parent":39,"text":"AttributeList"},{"range":{"endColumn":19,"graphemeStartColumn":19,"startColumn":19,"endRow":10,"startRow":10,"graphemeEndColumn":19},"type":"collection","structure":[{"value":{"text":"DeclModifierSyntax"},"name":"Element"},{"value":{"text":"0"},"name":"Count"}],"id":41,"parent":39,"text":"DeclModifierList"},{"structure":[],"text":"let","parent":39,"id":42,"range":{"endColumn":8,"startColumn":5,"endRow":12,"startRow":12,"graphemeStartColumn":5,"graphemeEndColumn":8},"type":"other","token":{"leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>\/\/\/␣<\/span>The␣<\/span>suit␣<\/span>of␣<\/span>the␣<\/span>card␣<\/span>(hearts,␣<\/span>diamonds,␣<\/span>clubs,␣<\/span>spades)<\/span>↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>","kind":"keyword(SwiftSyntax.Keyword.let)","trailingTrivia":"␣<\/span>"}},{"range":{"endColumn":19,"startColumn":9,"endRow":12,"startRow":12,"graphemeStartColumn":9,"graphemeEndColumn":19},"type":"collection","structure":[{"name":"Element","value":{"text":"PatternBindingSyntax"}},{"name":"Count","value":{"text":"1"}}],"id":43,"parent":39,"text":"PatternBindingList"},{"range":{"graphemeEndColumn":19,"startColumn":9,"startRow":12,"graphemeStartColumn":9,"endRow":12,"endColumn":19},"type":"other","structure":[{"name":"unexpectedBeforePattern","value":{"text":"nil"}},{"name":"pattern","value":{"text":"IdentifierPatternSyntax"},"ref":"IdentifierPatternSyntax"},{"value":{"text":"nil"},"name":"unexpectedBetweenPatternAndTypeAnnotation"},{"ref":"TypeAnnotationSyntax","value":{"text":"TypeAnnotationSyntax"},"name":"typeAnnotation"},{"value":{"text":"nil"},"name":"unexpectedBetweenTypeAnnotationAndInitializer"},{"value":{"text":"nil"},"name":"initializer"},{"value":{"text":"nil"},"name":"unexpectedBetweenInitializerAndAccessorBlock"},{"value":{"text":"nil"},"name":"accessorBlock"},{"value":{"text":"nil"},"name":"unexpectedBetweenAccessorBlockAndTrailingComma"},{"value":{"text":"nil"},"name":"trailingComma"},{"value":{"text":"nil"},"name":"unexpectedAfterTrailingComma"}],"id":44,"parent":43,"text":"PatternBinding"},{"parent":44,"range":{"startRow":12,"graphemeStartColumn":9,"endRow":12,"endColumn":13,"graphemeEndColumn":13,"startColumn":9},"type":"pattern","text":"IdentifierPattern","id":45,"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeIdentifier"},{"value":{"text":"suit","kind":"identifier("suit")"},"name":"identifier"},{"value":{"text":"nil"},"name":"unexpectedAfterIdentifier"}]},{"structure":[],"text":"suit","parent":45,"id":46,"range":{"endRow":12,"startRow":12,"startColumn":9,"endColumn":13,"graphemeEndColumn":13,"graphemeStartColumn":9},"type":"other","token":{"kind":"identifier("suit")","trailingTrivia":"","leadingTrivia":""}},{"parent":44,"range":{"endRow":12,"startRow":12,"startColumn":13,"endColumn":19,"graphemeEndColumn":19,"graphemeStartColumn":13},"type":"other","text":"TypeAnnotation","id":47,"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeColon"},{"value":{"kind":"colon","text":":"},"name":"colon"},{"value":{"text":"nil"},"name":"unexpectedBetweenColonAndType"},{"name":"type","value":{"text":"IdentifierTypeSyntax"},"ref":"IdentifierTypeSyntax"},{"name":"unexpectedAfterType","value":{"text":"nil"}}]},{"structure":[],"text":":","parent":47,"id":48,"range":{"graphemeStartColumn":13,"endColumn":14,"startRow":12,"endRow":12,"graphemeEndColumn":14,"startColumn":13},"type":"other","token":{"leadingTrivia":"","trailingTrivia":"␣<\/span>","kind":"colon"}},{"parent":47,"type":"type","range":{"graphemeStartColumn":15,"endColumn":19,"startRow":12,"endRow":12,"graphemeEndColumn":19,"startColumn":15},"id":49,"structure":[{"name":"unexpectedBeforeName","value":{"text":"nil"}},{"name":"name","value":{"text":"Suit","kind":"identifier("Suit")"}},{"name":"unexpectedBetweenNameAndGenericArgumentClause","value":{"text":"nil"}},{"name":"genericArgumentClause","value":{"text":"nil"}},{"name":"unexpectedAfterGenericArgumentClause","value":{"text":"nil"}}],"text":"IdentifierType"},{"structure":[],"text":"Suit","parent":49,"id":50,"range":{"graphemeStartColumn":15,"endRow":12,"endColumn":19,"startRow":12,"startColumn":15,"graphemeEndColumn":19},"type":"other","token":{"kind":"identifier("Suit")","leadingTrivia":"","trailingTrivia":""}},{"structure":[],"text":"}","parent":22,"id":51,"range":{"graphemeStartColumn":1,"endRow":13,"endColumn":2,"startRow":13,"startColumn":1,"graphemeEndColumn":2},"type":"other","token":{"kind":"rightBrace","leadingTrivia":"↲<\/span>","trailingTrivia":""}},{"parent":1,"type":"other","range":{"graphemeStartColumn":1,"endRow":42,"endColumn":2,"startRow":17,"startColumn":1,"graphemeEndColumn":2},"id":52,"structure":[{"name":"unexpectedBeforeItem","value":{"text":"nil"}},{"name":"item","value":{"text":"EnumDeclSyntax"},"ref":"EnumDeclSyntax"},{"name":"unexpectedBetweenItemAndSemicolon","value":{"text":"nil"}},{"name":"semicolon","value":{"text":"nil"}},{"name":"unexpectedAfterSemicolon","value":{"text":"nil"}}],"text":"CodeBlockItem"},{"parent":52,"type":"decl","range":{"startColumn":1,"startRow":17,"graphemeStartColumn":1,"endColumn":2,"endRow":42,"graphemeEndColumn":2},"id":53,"structure":[{"name":"unexpectedBeforeAttributes","value":{"text":"nil"}},{"name":"attributes","ref":"AttributeListSyntax","value":{"text":"AttributeListSyntax"}},{"name":"unexpectedBetweenAttributesAndModifiers","value":{"text":"nil"}},{"name":"modifiers","ref":"DeclModifierListSyntax","value":{"text":"DeclModifierListSyntax"}},{"name":"unexpectedBetweenModifiersAndEnumKeyword","value":{"text":"nil"}},{"name":"enumKeyword","value":{"kind":"keyword(SwiftSyntax.Keyword.enum)","text":"enum"}},{"name":"unexpectedBetweenEnumKeywordAndName","value":{"text":"nil"}},{"name":"name","value":{"kind":"identifier("Rank")","text":"Rank"}},{"name":"unexpectedBetweenNameAndGenericParameterClause","value":{"text":"nil"}},{"name":"genericParameterClause","value":{"text":"nil"}},{"name":"unexpectedBetweenGenericParameterClauseAndInheritanceClause","value":{"text":"nil"}},{"name":"inheritanceClause","ref":"InheritanceClauseSyntax","value":{"text":"InheritanceClauseSyntax"}},{"name":"unexpectedBetweenInheritanceClauseAndGenericWhereClause","value":{"text":"nil"}},{"name":"genericWhereClause","value":{"text":"nil"}},{"name":"unexpectedBetweenGenericWhereClauseAndMemberBlock","value":{"text":"nil"}},{"name":"memberBlock","ref":"MemberBlockSyntax","value":{"text":"MemberBlockSyntax"}},{"name":"unexpectedAfterMemberBlock","value":{"text":"nil"}}],"text":"EnumDecl"},{"parent":53,"type":"collection","range":{"graphemeEndColumn":2,"endRow":13,"startRow":13,"startColumn":2,"graphemeStartColumn":2,"endColumn":2},"id":54,"structure":[{"value":{"text":"Element"},"name":"Element"},{"value":{"text":"0"},"name":"Count"}],"text":"AttributeList"},{"range":{"graphemeEndColumn":2,"endRow":13,"startRow":13,"endColumn":2,"graphemeStartColumn":2,"startColumn":2},"structure":[{"value":{"text":"DeclModifierSyntax"},"name":"Element"},{"value":{"text":"0"},"name":"Count"}],"id":55,"parent":53,"type":"collection","text":"DeclModifierList"},{"structure":[],"text":"enum","parent":53,"id":56,"range":{"endRow":17,"graphemeEndColumn":5,"startRow":17,"startColumn":1,"graphemeStartColumn":1,"endColumn":5},"type":"other","token":{"kind":"keyword(SwiftSyntax.Keyword.enum)","trailingTrivia":"␣<\/span>","leadingTrivia":"↲<\/span>↲<\/span>\/\/␣<\/span>MARK:␣<\/span>-␣<\/span>Enums<\/span>↲<\/span>\/\/\/␣<\/span>Represents␣<\/span>the␣<\/span>possible␣<\/span>ranks␣<\/span>of␣<\/span>a␣<\/span>playing␣<\/span>card<\/span>↲<\/span>"}},{"structure":[],"text":"Rank","parent":53,"id":57,"range":{"endRow":17,"graphemeEndColumn":10,"startRow":17,"startColumn":6,"graphemeStartColumn":6,"endColumn":10},"type":"other","token":{"kind":"identifier("Rank")","trailingTrivia":"","leadingTrivia":""}},{"range":{"endRow":17,"graphemeEndColumn":29,"startRow":17,"startColumn":10,"graphemeStartColumn":10,"endColumn":29},"structure":[{"name":"unexpectedBeforeColon","value":{"text":"nil"}},{"name":"colon","value":{"kind":"colon","text":":"}},{"name":"unexpectedBetweenColonAndInheritedTypes","value":{"text":"nil"}},{"name":"inheritedTypes","value":{"text":"InheritedTypeListSyntax"},"ref":"InheritedTypeListSyntax"},{"name":"unexpectedAfterInheritedTypes","value":{"text":"nil"}}],"id":58,"parent":53,"type":"other","text":"InheritanceClause"},{"structure":[],"text":":","parent":58,"id":59,"range":{"startRow":17,"graphemeStartColumn":10,"endColumn":11,"startColumn":10,"graphemeEndColumn":11,"endRow":17},"type":"other","token":{"kind":"colon","leadingTrivia":"","trailingTrivia":"␣<\/span>"}},{"range":{"startRow":17,"graphemeStartColumn":12,"endColumn":29,"startColumn":12,"graphemeEndColumn":29,"endRow":17},"structure":[{"name":"Element","value":{"text":"InheritedTypeSyntax"}},{"name":"Count","value":{"text":"2"}}],"id":60,"parent":58,"type":"collection","text":"InheritedTypeList"},{"range":{"graphemeStartColumn":12,"endColumn":16,"endRow":17,"graphemeEndColumn":16,"startColumn":12,"startRow":17},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeType"},{"value":{"text":"IdentifierTypeSyntax"},"name":"type","ref":"IdentifierTypeSyntax"},{"value":{"text":"nil"},"name":"unexpectedBetweenTypeAndTrailingComma"},{"value":{"text":",","kind":"comma"},"name":"trailingComma"},{"value":{"text":"nil"},"name":"unexpectedAfterTrailingComma"}],"id":61,"parent":60,"type":"other","text":"InheritedType"},{"range":{"endRow":17,"startColumn":12,"startRow":17,"graphemeEndColumn":15,"graphemeStartColumn":12,"endColumn":15},"type":"type","structure":[{"name":"unexpectedBeforeName","value":{"text":"nil"}},{"name":"name","value":{"kind":"identifier("Int")","text":"Int"}},{"name":"unexpectedBetweenNameAndGenericArgumentClause","value":{"text":"nil"}},{"name":"genericArgumentClause","value":{"text":"nil"}},{"name":"unexpectedAfterGenericArgumentClause","value":{"text":"nil"}}],"parent":61,"text":"IdentifierType","id":62},{"structure":[],"text":"Int","parent":62,"id":63,"range":{"endRow":17,"graphemeEndColumn":15,"startRow":17,"graphemeStartColumn":12,"endColumn":15,"startColumn":12},"type":"other","token":{"trailingTrivia":"","leadingTrivia":"","kind":"identifier("Int")"}},{"structure":[],"text":",","parent":61,"id":64,"range":{"endRow":17,"graphemeEndColumn":16,"startRow":17,"graphemeStartColumn":15,"endColumn":16,"startColumn":15},"type":"other","token":{"trailingTrivia":"␣<\/span>","leadingTrivia":"","kind":"comma"}},{"range":{"endRow":17,"graphemeEndColumn":29,"startRow":17,"graphemeStartColumn":17,"endColumn":29,"startColumn":17},"type":"other","structure":[{"name":"unexpectedBeforeType","value":{"text":"nil"}},{"ref":"IdentifierTypeSyntax","name":"type","value":{"text":"IdentifierTypeSyntax"}},{"name":"unexpectedBetweenTypeAndTrailingComma","value":{"text":"nil"}},{"name":"trailingComma","value":{"text":"nil"}},{"value":{"text":"nil"},"name":"unexpectedAfterTrailingComma"}],"parent":60,"text":"InheritedType","id":65},{"range":{"endColumn":29,"graphemeEndColumn":29,"startColumn":17,"startRow":17,"graphemeStartColumn":17,"endRow":17},"parent":65,"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeName"},{"value":{"text":"CaseIterable","kind":"identifier("CaseIterable")"},"name":"name"},{"value":{"text":"nil"},"name":"unexpectedBetweenNameAndGenericArgumentClause"},{"value":{"text":"nil"},"name":"genericArgumentClause"},{"value":{"text":"nil"},"name":"unexpectedAfterGenericArgumentClause"}],"id":66,"type":"type","text":"IdentifierType"},{"structure":[],"text":"CaseIterable","parent":66,"id":67,"range":{"graphemeEndColumn":29,"startColumn":17,"endRow":17,"graphemeStartColumn":17,"endColumn":29,"startRow":17},"type":"other","token":{"kind":"identifier("CaseIterable")","trailingTrivia":"␣<\/span>","leadingTrivia":""}},{"range":{"graphemeEndColumn":2,"startColumn":30,"endRow":42,"graphemeStartColumn":30,"endColumn":2,"startRow":17},"parent":53,"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeLeftBrace"},{"value":{"kind":"leftBrace","text":"{"},"name":"leftBrace"},{"value":{"text":"nil"},"name":"unexpectedBetweenLeftBraceAndMembers"},{"value":{"text":"MemberBlockItemListSyntax"},"ref":"MemberBlockItemListSyntax","name":"members"},{"value":{"text":"nil"},"name":"unexpectedBetweenMembersAndRightBrace"},{"value":{"kind":"rightBrace","text":"}"},"name":"rightBrace"},{"value":{"text":"nil"},"name":"unexpectedAfterRightBrace"}],"id":68,"type":"other","text":"MemberBlock"},{"structure":[],"text":"{","parent":68,"id":69,"range":{"graphemeEndColumn":31,"endRow":17,"startColumn":30,"startRow":17,"graphemeStartColumn":30,"endColumn":31},"type":"other","token":{"leadingTrivia":"","kind":"leftBrace","trailingTrivia":""}},{"type":"collection","text":"MemberBlockItemList","id":70,"parent":68,"range":{"graphemeStartColumn":5,"endRow":41,"endColumn":6,"graphemeEndColumn":6,"startColumn":5,"startRow":18},"structure":[{"name":"Element","value":{"text":"MemberBlockItemSyntax"}},{"name":"Count","value":{"text":"14"}}]},{"type":"other","text":"MemberBlockItem","id":71,"parent":70,"range":{"startRow":18,"graphemeStartColumn":5,"endRow":18,"endColumn":17,"graphemeEndColumn":17,"startColumn":5},"structure":[{"name":"unexpectedBeforeDecl","value":{"text":"nil"}},{"ref":"EnumCaseDeclSyntax","name":"decl","value":{"text":"EnumCaseDeclSyntax"}},{"name":"unexpectedBetweenDeclAndSemicolon","value":{"text":"nil"}},{"name":"semicolon","value":{"text":"nil"}},{"name":"unexpectedAfterSemicolon","value":{"text":"nil"}}]},{"type":"decl","text":"EnumCaseDecl","id":72,"parent":71,"range":{"startRow":18,"startColumn":5,"endRow":18,"graphemeEndColumn":17,"graphemeStartColumn":5,"endColumn":17},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeAttributes"},{"value":{"text":"AttributeListSyntax"},"ref":"AttributeListSyntax","name":"attributes"},{"value":{"text":"nil"},"name":"unexpectedBetweenAttributesAndModifiers"},{"value":{"text":"DeclModifierListSyntax"},"ref":"DeclModifierListSyntax","name":"modifiers"},{"value":{"text":"nil"},"name":"unexpectedBetweenModifiersAndCaseKeyword"},{"value":{"kind":"keyword(SwiftSyntax.Keyword.case)","text":"case"},"name":"caseKeyword"},{"value":{"text":"nil"},"name":"unexpectedBetweenCaseKeywordAndElements"},{"value":{"text":"EnumCaseElementListSyntax"},"ref":"EnumCaseElementListSyntax","name":"elements"},{"value":{"text":"nil"},"name":"unexpectedAfterElements"}]},{"type":"collection","text":"AttributeList","id":73,"structure":[{"name":"Element","value":{"text":"Element"}},{"name":"Count","value":{"text":"0"}}],"parent":72,"range":{"graphemeEndColumn":31,"startColumn":31,"startRow":17,"graphemeStartColumn":31,"endRow":17,"endColumn":31}},{"type":"collection","text":"DeclModifierList","id":74,"structure":[{"name":"Element","value":{"text":"DeclModifierSyntax"}},{"name":"Count","value":{"text":"0"}}],"parent":72,"range":{"graphemeStartColumn":31,"startRow":17,"endRow":17,"startColumn":31,"endColumn":31,"graphemeEndColumn":31}},{"structure":[],"text":"case","parent":72,"id":75,"range":{"endRow":18,"endColumn":9,"graphemeEndColumn":9,"startColumn":5,"startRow":18,"graphemeStartColumn":5},"type":"other","token":{"leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>","trailingTrivia":"␣<\/span>","kind":"keyword(SwiftSyntax.Keyword.case)"}},{"type":"collection","text":"EnumCaseElementList","id":76,"structure":[{"value":{"text":"EnumCaseElementSyntax"},"name":"Element"},{"value":{"text":"1"},"name":"Count"}],"parent":72,"range":{"endRow":18,"endColumn":17,"graphemeEndColumn":17,"startColumn":10,"startRow":18,"graphemeStartColumn":10}},{"type":"other","text":"EnumCaseElement","id":77,"structure":[{"name":"unexpectedBeforeName","value":{"text":"nil"}},{"name":"name","value":{"kind":"identifier("two")","text":"two"}},{"name":"unexpectedBetweenNameAndParameterClause","value":{"text":"nil"}},{"name":"parameterClause","value":{"text":"nil"}},{"name":"unexpectedBetweenParameterClauseAndRawValue","value":{"text":"nil"}},{"ref":"InitializerClauseSyntax","name":"rawValue","value":{"text":"InitializerClauseSyntax"}},{"name":"unexpectedBetweenRawValueAndTrailingComma","value":{"text":"nil"}},{"value":{"text":"nil"},"name":"trailingComma"},{"value":{"text":"nil"},"name":"unexpectedAfterTrailingComma"}],"parent":76,"range":{"graphemeStartColumn":10,"startRow":18,"graphemeEndColumn":17,"startColumn":10,"endRow":18,"endColumn":17}},{"structure":[],"text":"two","parent":77,"id":78,"range":{"startRow":18,"endRow":18,"graphemeStartColumn":10,"endColumn":13,"graphemeEndColumn":13,"startColumn":10},"type":"other","token":{"leadingTrivia":"","kind":"identifier("two")","trailingTrivia":"␣<\/span>"}},{"type":"other","parent":77,"text":"InitializerClause","structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeEqual"},{"value":{"text":"=","kind":"equal"},"name":"equal"},{"value":{"text":"nil"},"name":"unexpectedBetweenEqualAndValue"},{"value":{"text":"IntegerLiteralExprSyntax"},"name":"value","ref":"IntegerLiteralExprSyntax"},{"value":{"text":"nil"},"name":"unexpectedAfterValue"}],"range":{"startRow":18,"endRow":18,"graphemeStartColumn":14,"endColumn":17,"graphemeEndColumn":17,"startColumn":14},"id":79},{"structure":[],"text":"=","parent":79,"id":80,"range":{"endRow":18,"startRow":18,"graphemeStartColumn":14,"endColumn":15,"graphemeEndColumn":15,"startColumn":14},"type":"other","token":{"trailingTrivia":"␣<\/span>","kind":"equal","leadingTrivia":""}},{"type":"expr","parent":79,"text":"IntegerLiteralExpr","structure":[{"name":"unexpectedBeforeLiteral","value":{"text":"nil"}},{"name":"literal","value":{"text":"2","kind":"integerLiteral("2")"}},{"name":"unexpectedAfterLiteral","value":{"text":"nil"}}],"range":{"endRow":18,"startRow":18,"graphemeStartColumn":16,"endColumn":17,"graphemeEndColumn":17,"startColumn":16},"id":81},{"text":"2","token":{"kind":"integerLiteral("2")","leadingTrivia":"","trailingTrivia":""},"type":"other","parent":81,"structure":[],"id":82,"range":{"startColumn":16,"graphemeStartColumn":16,"endRow":18,"endColumn":17,"startRow":18,"graphemeEndColumn":17}},{"type":"other","parent":70,"text":"MemberBlockItem","structure":[{"name":"unexpectedBeforeDecl","value":{"text":"nil"}},{"name":"decl","value":{"text":"EnumCaseDeclSyntax"},"ref":"EnumCaseDeclSyntax"},{"value":{"text":"nil"},"name":"unexpectedBetweenDeclAndSemicolon"},{"value":{"text":"nil"},"name":"semicolon"},{"value":{"text":"nil"},"name":"unexpectedAfterSemicolon"}],"range":{"startColumn":5,"graphemeStartColumn":5,"endRow":19,"endColumn":15,"startRow":19,"graphemeEndColumn":15},"id":83},{"type":"decl","text":"EnumCaseDecl","range":{"endRow":19,"startColumn":5,"endColumn":15,"graphemeEndColumn":15,"startRow":19,"graphemeStartColumn":5},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeAttributes"},{"value":{"text":"AttributeListSyntax"},"ref":"AttributeListSyntax","name":"attributes"},{"value":{"text":"nil"},"name":"unexpectedBetweenAttributesAndModifiers"},{"value":{"text":"DeclModifierListSyntax"},"ref":"DeclModifierListSyntax","name":"modifiers"},{"value":{"text":"nil"},"name":"unexpectedBetweenModifiersAndCaseKeyword"},{"value":{"text":"case","kind":"keyword(SwiftSyntax.Keyword.case)"},"name":"caseKeyword"},{"value":{"text":"nil"},"name":"unexpectedBetweenCaseKeywordAndElements"},{"value":{"text":"EnumCaseElementListSyntax"},"ref":"EnumCaseElementListSyntax","name":"elements"},{"value":{"text":"nil"},"name":"unexpectedAfterElements"}],"id":84,"parent":83},{"type":"collection","text":"AttributeList","range":{"startRow":18,"endRow":18,"startColumn":17,"graphemeStartColumn":17,"endColumn":17,"graphemeEndColumn":17},"structure":[{"name":"Element","value":{"text":"Element"}},{"name":"Count","value":{"text":"0"}}],"id":85,"parent":84},{"type":"collection","text":"DeclModifierList","range":{"endRow":18,"graphemeStartColumn":17,"endColumn":17,"graphemeEndColumn":17,"startColumn":17,"startRow":18},"structure":[{"value":{"text":"DeclModifierSyntax"},"name":"Element"},{"name":"Count","value":{"text":"0"}}],"id":86,"parent":84},{"text":"case","token":{"trailingTrivia":"␣<\/span>","kind":"keyword(SwiftSyntax.Keyword.case)","leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>"},"type":"other","parent":84,"structure":[],"id":87,"range":{"graphemeStartColumn":5,"endRow":19,"endColumn":9,"graphemeEndColumn":9,"startColumn":5,"startRow":19}},{"id":88,"text":"EnumCaseElementList","range":{"graphemeStartColumn":10,"endRow":19,"endColumn":15,"graphemeEndColumn":15,"startColumn":10,"startRow":19},"type":"collection","structure":[{"name":"Element","value":{"text":"EnumCaseElementSyntax"}},{"name":"Count","value":{"text":"1"}}],"parent":84},{"id":89,"text":"EnumCaseElement","range":{"endColumn":15,"endRow":19,"graphemeEndColumn":15,"graphemeStartColumn":10,"startRow":19,"startColumn":10},"type":"other","structure":[{"name":"unexpectedBeforeName","value":{"text":"nil"}},{"name":"name","value":{"kind":"identifier("three")","text":"three"}},{"name":"unexpectedBetweenNameAndParameterClause","value":{"text":"nil"}},{"name":"parameterClause","value":{"text":"nil"}},{"name":"unexpectedBetweenParameterClauseAndRawValue","value":{"text":"nil"}},{"name":"rawValue","value":{"text":"nil"}},{"name":"unexpectedBetweenRawValueAndTrailingComma","value":{"text":"nil"}},{"name":"trailingComma","value":{"text":"nil"}},{"name":"unexpectedAfterTrailingComma","value":{"text":"nil"}}],"parent":88},{"text":"three","token":{"leadingTrivia":"","trailingTrivia":"","kind":"identifier("three")"},"type":"other","parent":89,"structure":[],"id":90,"range":{"endColumn":15,"startRow":19,"startColumn":10,"graphemeStartColumn":10,"endRow":19,"graphemeEndColumn":15}},{"id":91,"text":"MemberBlockItem","range":{"endColumn":14,"startRow":20,"startColumn":5,"graphemeStartColumn":5,"endRow":20,"graphemeEndColumn":14},"type":"other","structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeDecl"},{"ref":"EnumCaseDeclSyntax","name":"decl","value":{"text":"EnumCaseDeclSyntax"}},{"name":"unexpectedBetweenDeclAndSemicolon","value":{"text":"nil"}},{"name":"semicolon","value":{"text":"nil"}},{"name":"unexpectedAfterSemicolon","value":{"text":"nil"}}],"parent":70},{"type":"decl","range":{"graphemeEndColumn":14,"graphemeStartColumn":5,"endRow":20,"endColumn":14,"startRow":20,"startColumn":5},"structure":[{"name":"unexpectedBeforeAttributes","value":{"text":"nil"}},{"name":"attributes","ref":"AttributeListSyntax","value":{"text":"AttributeListSyntax"}},{"name":"unexpectedBetweenAttributesAndModifiers","value":{"text":"nil"}},{"name":"modifiers","ref":"DeclModifierListSyntax","value":{"text":"DeclModifierListSyntax"}},{"name":"unexpectedBetweenModifiersAndCaseKeyword","value":{"text":"nil"}},{"name":"caseKeyword","value":{"kind":"keyword(SwiftSyntax.Keyword.case)","text":"case"}},{"name":"unexpectedBetweenCaseKeywordAndElements","value":{"text":"nil"}},{"name":"elements","ref":"EnumCaseElementListSyntax","value":{"text":"EnumCaseElementListSyntax"}},{"name":"unexpectedAfterElements","value":{"text":"nil"}}],"text":"EnumCaseDecl","id":92,"parent":91},{"type":"collection","range":{"startColumn":15,"graphemeStartColumn":15,"startRow":19,"endColumn":15,"endRow":19,"graphemeEndColumn":15},"structure":[{"value":{"text":"Element"},"name":"Element"},{"value":{"text":"0"},"name":"Count"}],"text":"AttributeList","id":93,"parent":92},{"type":"collection","range":{"startRow":19,"startColumn":15,"graphemeStartColumn":15,"endColumn":15,"graphemeEndColumn":15,"endRow":19},"structure":[{"name":"Element","value":{"text":"DeclModifierSyntax"}},{"name":"Count","value":{"text":"0"}}],"text":"DeclModifierList","id":94,"parent":92},{"text":"case","token":{"leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>","kind":"keyword(SwiftSyntax.Keyword.case)","trailingTrivia":"␣<\/span>"},"type":"other","parent":92,"structure":[],"id":95,"range":{"graphemeStartColumn":5,"endRow":20,"graphemeEndColumn":9,"endColumn":9,"startColumn":5,"startRow":20}},{"id":96,"parent":92,"structure":[{"value":{"text":"EnumCaseElementSyntax"},"name":"Element"},{"value":{"text":"1"},"name":"Count"}],"type":"collection","range":{"graphemeStartColumn":10,"endRow":20,"graphemeEndColumn":14,"endColumn":14,"startColumn":10,"startRow":20},"text":"EnumCaseElementList"},{"id":97,"parent":96,"structure":[{"name":"unexpectedBeforeName","value":{"text":"nil"}},{"name":"name","value":{"text":"four","kind":"identifier("four")"}},{"name":"unexpectedBetweenNameAndParameterClause","value":{"text":"nil"}},{"name":"parameterClause","value":{"text":"nil"}},{"name":"unexpectedBetweenParameterClauseAndRawValue","value":{"text":"nil"}},{"name":"rawValue","value":{"text":"nil"}},{"name":"unexpectedBetweenRawValueAndTrailingComma","value":{"text":"nil"}},{"name":"trailingComma","value":{"text":"nil"}},{"name":"unexpectedAfterTrailingComma","value":{"text":"nil"}}],"type":"other","range":{"graphemeEndColumn":14,"startRow":20,"startColumn":10,"endRow":20,"endColumn":14,"graphemeStartColumn":10},"text":"EnumCaseElement"},{"text":"four","token":{"trailingTrivia":"","leadingTrivia":"","kind":"identifier("four")"},"type":"other","parent":97,"structure":[],"id":98,"range":{"graphemeStartColumn":10,"startColumn":10,"graphemeEndColumn":14,"startRow":20,"endRow":20,"endColumn":14}},{"id":99,"text":"MemberBlockItem","type":"other","parent":70,"range":{"startRow":21,"graphemeEndColumn":14,"startColumn":5,"graphemeStartColumn":5,"endRow":21,"endColumn":14},"structure":[{"name":"unexpectedBeforeDecl","value":{"text":"nil"}},{"name":"decl","ref":"EnumCaseDeclSyntax","value":{"text":"EnumCaseDeclSyntax"}},{"name":"unexpectedBetweenDeclAndSemicolon","value":{"text":"nil"}},{"name":"semicolon","value":{"text":"nil"}},{"name":"unexpectedAfterSemicolon","value":{"text":"nil"}}]},{"id":100,"text":"EnumCaseDecl","type":"decl","parent":99,"range":{"graphemeEndColumn":14,"endRow":21,"graphemeStartColumn":5,"startRow":21,"startColumn":5,"endColumn":14},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeAttributes"},{"ref":"AttributeListSyntax","value":{"text":"AttributeListSyntax"},"name":"attributes"},{"value":{"text":"nil"},"name":"unexpectedBetweenAttributesAndModifiers"},{"ref":"DeclModifierListSyntax","value":{"text":"DeclModifierListSyntax"},"name":"modifiers"},{"value":{"text":"nil"},"name":"unexpectedBetweenModifiersAndCaseKeyword"},{"value":{"text":"case","kind":"keyword(SwiftSyntax.Keyword.case)"},"name":"caseKeyword"},{"value":{"text":"nil"},"name":"unexpectedBetweenCaseKeywordAndElements"},{"ref":"EnumCaseElementListSyntax","value":{"text":"EnumCaseElementListSyntax"},"name":"elements"},{"value":{"text":"nil"},"name":"unexpectedAfterElements"}]},{"id":101,"text":"AttributeList","type":"collection","parent":100,"range":{"graphemeStartColumn":14,"startRow":20,"startColumn":14,"endColumn":14,"endRow":20,"graphemeEndColumn":14},"structure":[{"value":{"text":"Element"},"name":"Element"},{"value":{"text":"0"},"name":"Count"}]},{"parent":100,"range":{"graphemeEndColumn":14,"startRow":20,"startColumn":14,"graphemeStartColumn":14,"endRow":20,"endColumn":14},"type":"collection","text":"DeclModifierList","id":102,"structure":[{"name":"Element","value":{"text":"DeclModifierSyntax"}},{"name":"Count","value":{"text":"0"}}]},{"text":"case","token":{"trailingTrivia":"␣<\/span>","kind":"keyword(SwiftSyntax.Keyword.case)","leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>"},"type":"other","parent":100,"structure":[],"id":103,"range":{"startColumn":5,"startRow":21,"graphemeEndColumn":9,"endRow":21,"graphemeStartColumn":5,"endColumn":9}},{"parent":100,"range":{"startColumn":10,"startRow":21,"graphemeEndColumn":14,"endRow":21,"graphemeStartColumn":10,"endColumn":14},"type":"collection","text":"EnumCaseElementList","id":104,"structure":[{"name":"Element","value":{"text":"EnumCaseElementSyntax"}},{"name":"Count","value":{"text":"1"}}]},{"parent":104,"range":{"endColumn":14,"endRow":21,"graphemeStartColumn":10,"startRow":21,"startColumn":10,"graphemeEndColumn":14},"type":"other","text":"EnumCaseElement","id":105,"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeName"},{"value":{"text":"five","kind":"identifier("five")"},"name":"name"},{"value":{"text":"nil"},"name":"unexpectedBetweenNameAndParameterClause"},{"value":{"text":"nil"},"name":"parameterClause"},{"value":{"text":"nil"},"name":"unexpectedBetweenParameterClauseAndRawValue"},{"value":{"text":"nil"},"name":"rawValue"},{"value":{"text":"nil"},"name":"unexpectedBetweenRawValueAndTrailingComma"},{"value":{"text":"nil"},"name":"trailingComma"},{"value":{"text":"nil"},"name":"unexpectedAfterTrailingComma"}]},{"text":"five","token":{"leadingTrivia":"","trailingTrivia":"","kind":"identifier("five")"},"type":"other","parent":105,"structure":[],"id":106,"range":{"graphemeEndColumn":14,"startRow":21,"graphemeStartColumn":10,"endColumn":14,"endRow":21,"startColumn":10}},{"range":{"startColumn":5,"endColumn":13,"graphemeEndColumn":13,"graphemeStartColumn":5,"endRow":22,"startRow":22},"structure":[{"name":"unexpectedBeforeDecl","value":{"text":"nil"}},{"name":"decl","value":{"text":"EnumCaseDeclSyntax"},"ref":"EnumCaseDeclSyntax"},{"name":"unexpectedBetweenDeclAndSemicolon","value":{"text":"nil"}},{"name":"semicolon","value":{"text":"nil"}},{"name":"unexpectedAfterSemicolon","value":{"text":"nil"}}],"id":107,"parent":70,"text":"MemberBlockItem","type":"other"},{"range":{"startColumn":5,"graphemeStartColumn":5,"startRow":22,"endRow":22,"endColumn":13,"graphemeEndColumn":13},"structure":[{"name":"unexpectedBeforeAttributes","value":{"text":"nil"}},{"name":"attributes","ref":"AttributeListSyntax","value":{"text":"AttributeListSyntax"}},{"name":"unexpectedBetweenAttributesAndModifiers","value":{"text":"nil"}},{"name":"modifiers","ref":"DeclModifierListSyntax","value":{"text":"DeclModifierListSyntax"}},{"name":"unexpectedBetweenModifiersAndCaseKeyword","value":{"text":"nil"}},{"name":"caseKeyword","value":{"text":"case","kind":"keyword(SwiftSyntax.Keyword.case)"}},{"name":"unexpectedBetweenCaseKeywordAndElements","value":{"text":"nil"}},{"name":"elements","ref":"EnumCaseElementListSyntax","value":{"text":"EnumCaseElementListSyntax"}},{"name":"unexpectedAfterElements","value":{"text":"nil"}}],"id":108,"parent":107,"text":"EnumCaseDecl","type":"decl"},{"range":{"endColumn":14,"graphemeEndColumn":14,"startRow":21,"endRow":21,"startColumn":14,"graphemeStartColumn":14},"structure":[{"name":"Element","value":{"text":"Element"}},{"name":"Count","value":{"text":"0"}}],"id":109,"parent":108,"text":"AttributeList","type":"collection"},{"id":110,"parent":108,"text":"DeclModifierList","range":{"endRow":21,"graphemeEndColumn":14,"startColumn":14,"graphemeStartColumn":14,"endColumn":14,"startRow":21},"structure":[{"value":{"text":"DeclModifierSyntax"},"name":"Element"},{"value":{"text":"0"},"name":"Count"}],"type":"collection"},{"text":"case","token":{"kind":"keyword(SwiftSyntax.Keyword.case)","leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>","trailingTrivia":"␣<\/span>"},"type":"other","parent":108,"structure":[],"id":111,"range":{"startColumn":5,"startRow":22,"endColumn":9,"graphemeEndColumn":9,"graphemeStartColumn":5,"endRow":22}},{"id":112,"parent":108,"text":"EnumCaseElementList","range":{"startColumn":10,"startRow":22,"endColumn":13,"graphemeEndColumn":13,"graphemeStartColumn":10,"endRow":22},"structure":[{"value":{"text":"EnumCaseElementSyntax"},"name":"Element"},{"value":{"text":"1"},"name":"Count"}],"type":"collection"},{"id":113,"parent":112,"text":"EnumCaseElement","range":{"endRow":22,"endColumn":13,"startColumn":10,"startRow":22,"graphemeEndColumn":13,"graphemeStartColumn":10},"structure":[{"name":"unexpectedBeforeName","value":{"text":"nil"}},{"name":"name","value":{"text":"six","kind":"identifier("six")"}},{"name":"unexpectedBetweenNameAndParameterClause","value":{"text":"nil"}},{"name":"parameterClause","value":{"text":"nil"}},{"name":"unexpectedBetweenParameterClauseAndRawValue","value":{"text":"nil"}},{"name":"rawValue","value":{"text":"nil"}},{"name":"unexpectedBetweenRawValueAndTrailingComma","value":{"text":"nil"}},{"name":"trailingComma","value":{"text":"nil"}},{"name":"unexpectedAfterTrailingComma","value":{"text":"nil"}}],"type":"other"},{"text":"six","token":{"leadingTrivia":"","trailingTrivia":"","kind":"identifier("six")"},"type":"other","parent":113,"structure":[],"id":114,"range":{"startColumn":10,"endColumn":13,"graphemeEndColumn":13,"endRow":22,"startRow":22,"graphemeStartColumn":10}},{"type":"other","range":{"startColumn":5,"endColumn":15,"graphemeEndColumn":15,"endRow":23,"startRow":23,"graphemeStartColumn":5},"id":115,"text":"MemberBlockItem","structure":[{"name":"unexpectedBeforeDecl","value":{"text":"nil"}},{"name":"decl","ref":"EnumCaseDeclSyntax","value":{"text":"EnumCaseDeclSyntax"}},{"name":"unexpectedBetweenDeclAndSemicolon","value":{"text":"nil"}},{"name":"semicolon","value":{"text":"nil"}},{"name":"unexpectedAfterSemicolon","value":{"text":"nil"}}],"parent":70},{"type":"decl","range":{"startColumn":5,"endColumn":15,"graphemeEndColumn":15,"endRow":23,"startRow":23,"graphemeStartColumn":5},"id":116,"text":"EnumCaseDecl","structure":[{"name":"unexpectedBeforeAttributes","value":{"text":"nil"}},{"name":"attributes","value":{"text":"AttributeListSyntax"},"ref":"AttributeListSyntax"},{"name":"unexpectedBetweenAttributesAndModifiers","value":{"text":"nil"}},{"name":"modifiers","value":{"text":"DeclModifierListSyntax"},"ref":"DeclModifierListSyntax"},{"name":"unexpectedBetweenModifiersAndCaseKeyword","value":{"text":"nil"}},{"name":"caseKeyword","value":{"kind":"keyword(SwiftSyntax.Keyword.case)","text":"case"}},{"name":"unexpectedBetweenCaseKeywordAndElements","value":{"text":"nil"}},{"name":"elements","value":{"text":"EnumCaseElementListSyntax"},"ref":"EnumCaseElementListSyntax"},{"name":"unexpectedAfterElements","value":{"text":"nil"}}],"parent":115},{"type":"collection","range":{"startRow":22,"startColumn":13,"graphemeStartColumn":13,"endRow":22,"graphemeEndColumn":13,"endColumn":13},"id":117,"text":"AttributeList","structure":[{"name":"Element","value":{"text":"Element"}},{"name":"Count","value":{"text":"0"}}],"parent":116},{"text":"DeclModifierList","parent":116,"range":{"graphemeEndColumn":13,"graphemeStartColumn":13,"endColumn":13,"endRow":22,"startColumn":13,"startRow":22},"structure":[{"name":"Element","value":{"text":"DeclModifierSyntax"}},{"name":"Count","value":{"text":"0"}}],"id":118,"type":"collection"},{"text":"case","token":{"leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>","trailingTrivia":"␣<\/span>","kind":"keyword(SwiftSyntax.Keyword.case)"},"type":"other","parent":116,"structure":[],"id":119,"range":{"endColumn":9,"graphemeEndColumn":9,"graphemeStartColumn":5,"startRow":23,"endRow":23,"startColumn":5}},{"text":"EnumCaseElementList","parent":116,"range":{"endColumn":15,"graphemeEndColumn":15,"graphemeStartColumn":10,"startRow":23,"endRow":23,"startColumn":10},"structure":[{"value":{"text":"EnumCaseElementSyntax"},"name":"Element"},{"value":{"text":"1"},"name":"Count"}],"id":120,"type":"collection"},{"text":"EnumCaseElement","parent":120,"range":{"graphemeStartColumn":10,"endRow":23,"endColumn":15,"startColumn":10,"startRow":23,"graphemeEndColumn":15},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeName"},{"value":{"text":"seven","kind":"identifier("seven")"},"name":"name"},{"value":{"text":"nil"},"name":"unexpectedBetweenNameAndParameterClause"},{"value":{"text":"nil"},"name":"parameterClause"},{"value":{"text":"nil"},"name":"unexpectedBetweenParameterClauseAndRawValue"},{"value":{"text":"nil"},"name":"rawValue"},{"value":{"text":"nil"},"name":"unexpectedBetweenRawValueAndTrailingComma"},{"value":{"text":"nil"},"name":"trailingComma"},{"value":{"text":"nil"},"name":"unexpectedAfterTrailingComma"}],"id":121,"type":"other"},{"text":"seven","token":{"leadingTrivia":"","kind":"identifier("seven")","trailingTrivia":""},"type":"other","parent":121,"structure":[],"id":122,"range":{"graphemeEndColumn":15,"startRow":23,"startColumn":10,"endColumn":15,"graphemeStartColumn":10,"endRow":23}},{"parent":70,"text":"MemberBlockItem","range":{"graphemeEndColumn":15,"startRow":24,"startColumn":5,"endColumn":15,"graphemeStartColumn":5,"endRow":24},"id":123,"structure":[{"name":"unexpectedBeforeDecl","value":{"text":"nil"}},{"name":"decl","value":{"text":"EnumCaseDeclSyntax"},"ref":"EnumCaseDeclSyntax"},{"name":"unexpectedBetweenDeclAndSemicolon","value":{"text":"nil"}},{"name":"semicolon","value":{"text":"nil"}},{"name":"unexpectedAfterSemicolon","value":{"text":"nil"}}],"type":"other"},{"parent":123,"text":"EnumCaseDecl","range":{"graphemeStartColumn":5,"endRow":24,"endColumn":15,"startColumn":5,"startRow":24,"graphemeEndColumn":15},"id":124,"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeAttributes"},{"value":{"text":"AttributeListSyntax"},"ref":"AttributeListSyntax","name":"attributes"},{"value":{"text":"nil"},"name":"unexpectedBetweenAttributesAndModifiers"},{"value":{"text":"DeclModifierListSyntax"},"ref":"DeclModifierListSyntax","name":"modifiers"},{"value":{"text":"nil"},"name":"unexpectedBetweenModifiersAndCaseKeyword"},{"value":{"kind":"keyword(SwiftSyntax.Keyword.case)","text":"case"},"name":"caseKeyword"},{"value":{"text":"nil"},"name":"unexpectedBetweenCaseKeywordAndElements"},{"value":{"text":"EnumCaseElementListSyntax"},"ref":"EnumCaseElementListSyntax","name":"elements"},{"value":{"text":"nil"},"name":"unexpectedAfterElements"}],"type":"decl"},{"parent":124,"structure":[{"name":"Element","value":{"text":"Element"}},{"name":"Count","value":{"text":"0"}}],"text":"AttributeList","type":"collection","id":125,"range":{"graphemeEndColumn":15,"graphemeStartColumn":15,"startRow":23,"startColumn":15,"endColumn":15,"endRow":23}},{"parent":124,"structure":[{"value":{"text":"DeclModifierSyntax"},"name":"Element"},{"value":{"text":"0"},"name":"Count"}],"text":"DeclModifierList","type":"collection","id":126,"range":{"startRow":23,"endColumn":15,"startColumn":15,"graphemeStartColumn":15,"endRow":23,"graphemeEndColumn":15}},{"text":"case","token":{"kind":"keyword(SwiftSyntax.Keyword.case)","trailingTrivia":"␣<\/span>","leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>"},"type":"other","parent":124,"structure":[],"id":127,"range":{"startRow":24,"graphemeStartColumn":5,"endColumn":9,"endRow":24,"startColumn":5,"graphemeEndColumn":9}},{"parent":124,"structure":[{"name":"Element","value":{"text":"EnumCaseElementSyntax"}},{"name":"Count","value":{"text":"1"}}],"text":"EnumCaseElementList","type":"collection","id":128,"range":{"startRow":24,"graphemeStartColumn":10,"endColumn":15,"endRow":24,"startColumn":10,"graphemeEndColumn":15}},{"parent":128,"structure":[{"name":"unexpectedBeforeName","value":{"text":"nil"}},{"name":"name","value":{"text":"eight","kind":"identifier("eight")"}},{"name":"unexpectedBetweenNameAndParameterClause","value":{"text":"nil"}},{"name":"parameterClause","value":{"text":"nil"}},{"name":"unexpectedBetweenParameterClauseAndRawValue","value":{"text":"nil"}},{"name":"rawValue","value":{"text":"nil"}},{"name":"unexpectedBetweenRawValueAndTrailingComma","value":{"text":"nil"}},{"value":{"text":"nil"},"name":"trailingComma"},{"value":{"text":"nil"},"name":"unexpectedAfterTrailingComma"}],"text":"EnumCaseElement","type":"other","id":129,"range":{"startRow":24,"endRow":24,"graphemeStartColumn":10,"graphemeEndColumn":15,"endColumn":15,"startColumn":10}},{"text":"eight","token":{"trailingTrivia":"","leadingTrivia":"","kind":"identifier("eight")"},"type":"other","parent":129,"structure":[],"id":130,"range":{"startColumn":10,"startRow":24,"graphemeStartColumn":10,"endColumn":15,"endRow":24,"graphemeEndColumn":15}},{"structure":[{"name":"unexpectedBeforeDecl","value":{"text":"nil"}},{"name":"decl","value":{"text":"EnumCaseDeclSyntax"},"ref":"EnumCaseDeclSyntax"},{"name":"unexpectedBetweenDeclAndSemicolon","value":{"text":"nil"}},{"name":"semicolon","value":{"text":"nil"}},{"name":"unexpectedAfterSemicolon","value":{"text":"nil"}}],"id":131,"parent":70,"range":{"startColumn":5,"startRow":25,"graphemeStartColumn":5,"endColumn":14,"endRow":25,"graphemeEndColumn":14},"type":"other","text":"MemberBlockItem"},{"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeAttributes"},{"value":{"text":"AttributeListSyntax"},"ref":"AttributeListSyntax","name":"attributes"},{"value":{"text":"nil"},"name":"unexpectedBetweenAttributesAndModifiers"},{"value":{"text":"DeclModifierListSyntax"},"ref":"DeclModifierListSyntax","name":"modifiers"},{"value":{"text":"nil"},"name":"unexpectedBetweenModifiersAndCaseKeyword"},{"value":{"text":"case","kind":"keyword(SwiftSyntax.Keyword.case)"},"name":"caseKeyword"},{"value":{"text":"nil"},"name":"unexpectedBetweenCaseKeywordAndElements"},{"value":{"text":"EnumCaseElementListSyntax"},"ref":"EnumCaseElementListSyntax","name":"elements"},{"name":"unexpectedAfterElements","value":{"text":"nil"}}],"id":132,"parent":131,"range":{"endColumn":14,"graphemeStartColumn":5,"endRow":25,"startColumn":5,"graphemeEndColumn":14,"startRow":25},"type":"decl","text":"EnumCaseDecl"},{"id":133,"range":{"startRow":24,"endColumn":15,"graphemeEndColumn":15,"startColumn":15,"graphemeStartColumn":15,"endRow":24},"structure":[{"name":"Element","value":{"text":"Element"}},{"name":"Count","value":{"text":"0"}}],"type":"collection","text":"AttributeList","parent":132},{"id":134,"range":{"startColumn":15,"endRow":24,"endColumn":15,"startRow":24,"graphemeStartColumn":15,"graphemeEndColumn":15},"structure":[{"value":{"text":"DeclModifierSyntax"},"name":"Element"},{"value":{"text":"0"},"name":"Count"}],"type":"collection","text":"DeclModifierList","parent":132},{"text":"case","token":{"leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>","trailingTrivia":"␣<\/span>","kind":"keyword(SwiftSyntax.Keyword.case)"},"type":"other","parent":132,"structure":[],"id":135,"range":{"startColumn":5,"graphemeStartColumn":5,"endRow":25,"endColumn":9,"graphemeEndColumn":9,"startRow":25}},{"id":136,"range":{"startColumn":10,"graphemeStartColumn":10,"endRow":25,"endColumn":14,"graphemeEndColumn":14,"startRow":25},"structure":[{"name":"Element","value":{"text":"EnumCaseElementSyntax"}},{"name":"Count","value":{"text":"1"}}],"type":"collection","text":"EnumCaseElementList","parent":132},{"id":137,"range":{"startRow":25,"startColumn":10,"graphemeStartColumn":10,"endColumn":14,"graphemeEndColumn":14,"endRow":25},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeName"},{"value":{"text":"nine","kind":"identifier("nine")"},"name":"name"},{"value":{"text":"nil"},"name":"unexpectedBetweenNameAndParameterClause"},{"value":{"text":"nil"},"name":"parameterClause"},{"value":{"text":"nil"},"name":"unexpectedBetweenParameterClauseAndRawValue"},{"value":{"text":"nil"},"name":"rawValue"},{"value":{"text":"nil"},"name":"unexpectedBetweenRawValueAndTrailingComma"},{"value":{"text":"nil"},"name":"trailingComma"},{"value":{"text":"nil"},"name":"unexpectedAfterTrailingComma"}],"type":"other","text":"EnumCaseElement","parent":136},{"text":"nine","token":{"leadingTrivia":"","kind":"identifier("nine")","trailingTrivia":""},"type":"other","parent":137,"structure":[],"id":138,"range":{"graphemeEndColumn":14,"startRow":25,"graphemeStartColumn":10,"startColumn":10,"endRow":25,"endColumn":14}},{"text":"MemberBlockItem","structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeDecl"},{"value":{"text":"EnumCaseDeclSyntax"},"name":"decl","ref":"EnumCaseDeclSyntax"},{"value":{"text":"nil"},"name":"unexpectedBetweenDeclAndSemicolon"},{"value":{"text":"nil"},"name":"semicolon"},{"value":{"text":"nil"},"name":"unexpectedAfterSemicolon"}],"type":"other","id":139,"parent":70,"range":{"graphemeEndColumn":13,"startRow":26,"graphemeStartColumn":5,"startColumn":5,"endRow":26,"endColumn":13}},{"text":"EnumCaseDecl","structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeAttributes"},{"value":{"text":"AttributeListSyntax"},"name":"attributes","ref":"AttributeListSyntax"},{"value":{"text":"nil"},"name":"unexpectedBetweenAttributesAndModifiers"},{"value":{"text":"DeclModifierListSyntax"},"name":"modifiers","ref":"DeclModifierListSyntax"},{"value":{"text":"nil"},"name":"unexpectedBetweenModifiersAndCaseKeyword"},{"value":{"kind":"keyword(SwiftSyntax.Keyword.case)","text":"case"},"name":"caseKeyword"},{"value":{"text":"nil"},"name":"unexpectedBetweenCaseKeywordAndElements"},{"name":"elements","value":{"text":"EnumCaseElementListSyntax"},"ref":"EnumCaseElementListSyntax"},{"name":"unexpectedAfterElements","value":{"text":"nil"}}],"type":"decl","id":140,"parent":139,"range":{"startRow":26,"startColumn":5,"graphemeEndColumn":13,"graphemeStartColumn":5,"endRow":26,"endColumn":13}},{"structure":[{"value":{"text":"Element"},"name":"Element"},{"value":{"text":"0"},"name":"Count"}],"text":"AttributeList","id":141,"type":"collection","range":{"endColumn":14,"graphemeStartColumn":14,"startColumn":14,"startRow":25,"endRow":25,"graphemeEndColumn":14},"parent":140},{"structure":[{"value":{"text":"DeclModifierSyntax"},"name":"Element"},{"value":{"text":"0"},"name":"Count"}],"text":"DeclModifierList","id":142,"type":"collection","range":{"startColumn":14,"endRow":25,"endColumn":14,"graphemeEndColumn":14,"graphemeStartColumn":14,"startRow":25},"parent":140},{"text":"case","token":{"kind":"keyword(SwiftSyntax.Keyword.case)","leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>","trailingTrivia":"␣<\/span>"},"type":"other","parent":140,"structure":[],"id":143,"range":{"graphemeStartColumn":5,"startRow":26,"endRow":26,"endColumn":9,"graphemeEndColumn":9,"startColumn":5}},{"structure":[{"value":{"text":"EnumCaseElementSyntax"},"name":"Element"},{"value":{"text":"1"},"name":"Count"}],"text":"EnumCaseElementList","id":144,"type":"collection","range":{"graphemeStartColumn":10,"startRow":26,"endRow":26,"endColumn":13,"graphemeEndColumn":13,"startColumn":10},"parent":140},{"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeName"},{"value":{"kind":"identifier("ten")","text":"ten"},"name":"name"},{"value":{"text":"nil"},"name":"unexpectedBetweenNameAndParameterClause"},{"value":{"text":"nil"},"name":"parameterClause"},{"value":{"text":"nil"},"name":"unexpectedBetweenParameterClauseAndRawValue"},{"name":"rawValue","value":{"text":"nil"}},{"name":"unexpectedBetweenRawValueAndTrailingComma","value":{"text":"nil"}},{"name":"trailingComma","value":{"text":"nil"}},{"name":"unexpectedAfterTrailingComma","value":{"text":"nil"}}],"text":"EnumCaseElement","id":145,"type":"other","range":{"graphemeStartColumn":10,"startColumn":10,"startRow":26,"endColumn":13,"graphemeEndColumn":13,"endRow":26},"parent":144},{"text":"ten","token":{"leadingTrivia":"","kind":"identifier("ten")","trailingTrivia":""},"type":"other","parent":145,"structure":[],"id":146,"range":{"startRow":26,"graphemeStartColumn":10,"startColumn":10,"endColumn":13,"graphemeEndColumn":13,"endRow":26}},{"structure":[{"name":"unexpectedBeforeDecl","value":{"text":"nil"}},{"name":"decl","ref":"EnumCaseDeclSyntax","value":{"text":"EnumCaseDeclSyntax"}},{"name":"unexpectedBetweenDeclAndSemicolon","value":{"text":"nil"}},{"name":"semicolon","value":{"text":"nil"}},{"name":"unexpectedAfterSemicolon","value":{"text":"nil"}}],"type":"other","text":"MemberBlockItem","parent":70,"range":{"startRow":27,"graphemeStartColumn":5,"startColumn":5,"endColumn":14,"graphemeEndColumn":14,"endRow":27},"id":147},{"structure":[{"name":"unexpectedBeforeAttributes","value":{"text":"nil"}},{"name":"attributes","value":{"text":"AttributeListSyntax"},"ref":"AttributeListSyntax"},{"name":"unexpectedBetweenAttributesAndModifiers","value":{"text":"nil"}},{"name":"modifiers","value":{"text":"DeclModifierListSyntax"},"ref":"DeclModifierListSyntax"},{"name":"unexpectedBetweenModifiersAndCaseKeyword","value":{"text":"nil"}},{"name":"caseKeyword","value":{"text":"case","kind":"keyword(SwiftSyntax.Keyword.case)"}},{"name":"unexpectedBetweenCaseKeywordAndElements","value":{"text":"nil"}},{"ref":"EnumCaseElementListSyntax","name":"elements","value":{"text":"EnumCaseElementListSyntax"}},{"name":"unexpectedAfterElements","value":{"text":"nil"}}],"type":"decl","text":"EnumCaseDecl","parent":147,"range":{"graphemeStartColumn":5,"startColumn":5,"endRow":27,"endColumn":14,"graphemeEndColumn":14,"startRow":27},"id":148},{"text":"AttributeList","id":149,"parent":148,"range":{"startColumn":13,"startRow":26,"endColumn":13,"graphemeEndColumn":13,"graphemeStartColumn":13,"endRow":26},"structure":[{"name":"Element","value":{"text":"Element"}},{"name":"Count","value":{"text":"0"}}],"type":"collection"},{"text":"DeclModifierList","id":150,"parent":148,"range":{"graphemeStartColumn":13,"graphemeEndColumn":13,"endRow":26,"endColumn":13,"startRow":26,"startColumn":13},"structure":[{"name":"Element","value":{"text":"DeclModifierSyntax"}},{"name":"Count","value":{"text":"0"}}],"type":"collection"},{"text":"case","token":{"kind":"keyword(SwiftSyntax.Keyword.case)","trailingTrivia":"␣<\/span>","leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>"},"type":"other","parent":148,"structure":[],"id":151,"range":{"startColumn":5,"startRow":27,"graphemeEndColumn":9,"endColumn":9,"endRow":27,"graphemeStartColumn":5}},{"text":"EnumCaseElementList","id":152,"parent":148,"range":{"startColumn":10,"startRow":27,"graphemeEndColumn":14,"endColumn":14,"endRow":27,"graphemeStartColumn":10},"structure":[{"name":"Element","value":{"text":"EnumCaseElementSyntax"}},{"name":"Count","value":{"text":"1"}}],"type":"collection"},{"text":"EnumCaseElement","id":153,"parent":152,"range":{"endRow":27,"endColumn":14,"graphemeEndColumn":14,"startColumn":10,"graphemeStartColumn":10,"startRow":27},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeName"},{"value":{"text":"jack","kind":"identifier("jack")"},"name":"name"},{"value":{"text":"nil"},"name":"unexpectedBetweenNameAndParameterClause"},{"value":{"text":"nil"},"name":"parameterClause"},{"name":"unexpectedBetweenParameterClauseAndRawValue","value":{"text":"nil"}},{"name":"rawValue","value":{"text":"nil"}},{"name":"unexpectedBetweenRawValueAndTrailingComma","value":{"text":"nil"}},{"name":"trailingComma","value":{"text":"nil"}},{"name":"unexpectedAfterTrailingComma","value":{"text":"nil"}}],"type":"other"},{"text":"jack","token":{"trailingTrivia":"","leadingTrivia":"","kind":"identifier("jack")"},"type":"other","parent":153,"structure":[],"id":154,"range":{"graphemeEndColumn":14,"startColumn":10,"startRow":27,"graphemeStartColumn":10,"endRow":27,"endColumn":14}},{"text":"MemberBlockItem","id":155,"range":{"graphemeEndColumn":15,"startColumn":5,"startRow":28,"graphemeStartColumn":5,"endRow":28,"endColumn":15},"structure":[{"name":"unexpectedBeforeDecl","value":{"text":"nil"}},{"name":"decl","value":{"text":"EnumCaseDeclSyntax"},"ref":"EnumCaseDeclSyntax"},{"name":"unexpectedBetweenDeclAndSemicolon","value":{"text":"nil"}},{"name":"semicolon","value":{"text":"nil"}},{"name":"unexpectedAfterSemicolon","value":{"text":"nil"}}],"type":"other","parent":70},{"text":"EnumCaseDecl","id":156,"range":{"endRow":28,"endColumn":15,"graphemeEndColumn":15,"startRow":28,"startColumn":5,"graphemeStartColumn":5},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeAttributes"},{"value":{"text":"AttributeListSyntax"},"ref":"AttributeListSyntax","name":"attributes"},{"value":{"text":"nil"},"name":"unexpectedBetweenAttributesAndModifiers"},{"value":{"text":"DeclModifierListSyntax"},"ref":"DeclModifierListSyntax","name":"modifiers"},{"value":{"text":"nil"},"name":"unexpectedBetweenModifiersAndCaseKeyword"},{"name":"caseKeyword","value":{"text":"case","kind":"keyword(SwiftSyntax.Keyword.case)"}},{"name":"unexpectedBetweenCaseKeywordAndElements","value":{"text":"nil"}},{"name":"elements","ref":"EnumCaseElementListSyntax","value":{"text":"EnumCaseElementListSyntax"}},{"name":"unexpectedAfterElements","value":{"text":"nil"}}],"type":"decl","parent":155},{"id":157,"parent":156,"range":{"startColumn":14,"graphemeStartColumn":14,"endColumn":14,"graphemeEndColumn":14,"endRow":27,"startRow":27},"structure":[{"value":{"text":"Element"},"name":"Element"},{"value":{"text":"0"},"name":"Count"}],"text":"AttributeList","type":"collection"},{"id":158,"parent":156,"range":{"startColumn":14,"startRow":27,"graphemeStartColumn":14,"endRow":27,"endColumn":14,"graphemeEndColumn":14},"structure":[{"name":"Element","value":{"text":"DeclModifierSyntax"}},{"name":"Count","value":{"text":"0"}}],"text":"DeclModifierList","type":"collection"},{"text":"case","token":{"leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>","trailingTrivia":"␣<\/span>","kind":"keyword(SwiftSyntax.Keyword.case)"},"type":"other","parent":156,"structure":[],"id":159,"range":{"startColumn":5,"startRow":28,"endColumn":9,"graphemeStartColumn":5,"endRow":28,"graphemeEndColumn":9}},{"id":160,"parent":156,"range":{"startColumn":10,"startRow":28,"endColumn":15,"graphemeStartColumn":10,"endRow":28,"graphemeEndColumn":15},"structure":[{"name":"Element","value":{"text":"EnumCaseElementSyntax"}},{"name":"Count","value":{"text":"1"}}],"text":"EnumCaseElementList","type":"collection"},{"id":161,"parent":160,"range":{"graphemeEndColumn":15,"startColumn":10,"endRow":28,"endColumn":15,"startRow":28,"graphemeStartColumn":10},"structure":[{"name":"unexpectedBeforeName","value":{"text":"nil"}},{"name":"name","value":{"text":"queen","kind":"identifier("queen")"}},{"name":"unexpectedBetweenNameAndParameterClause","value":{"text":"nil"}},{"name":"parameterClause","value":{"text":"nil"}},{"name":"unexpectedBetweenParameterClauseAndRawValue","value":{"text":"nil"}},{"name":"rawValue","value":{"text":"nil"}},{"name":"unexpectedBetweenRawValueAndTrailingComma","value":{"text":"nil"}},{"name":"trailingComma","value":{"text":"nil"}},{"name":"unexpectedAfterTrailingComma","value":{"text":"nil"}}],"text":"EnumCaseElement","type":"other"},{"text":"queen","token":{"trailingTrivia":"","kind":"identifier("queen")","leadingTrivia":""},"type":"other","parent":161,"structure":[],"id":162,"range":{"endRow":28,"startRow":28,"endColumn":15,"startColumn":10,"graphemeEndColumn":15,"graphemeStartColumn":10}},{"id":163,"parent":70,"text":"MemberBlockItem","range":{"endRow":29,"startRow":29,"endColumn":14,"startColumn":5,"graphemeEndColumn":14,"graphemeStartColumn":5},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeDecl"},{"value":{"text":"EnumCaseDeclSyntax"},"ref":"EnumCaseDeclSyntax","name":"decl"},{"value":{"text":"nil"},"name":"unexpectedBetweenDeclAndSemicolon"},{"value":{"text":"nil"},"name":"semicolon"},{"value":{"text":"nil"},"name":"unexpectedAfterSemicolon"}],"type":"other"},{"id":164,"parent":163,"text":"EnumCaseDecl","range":{"startColumn":5,"startRow":29,"graphemeStartColumn":5,"endColumn":14,"endRow":29,"graphemeEndColumn":14},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeAttributes"},{"value":{"text":"AttributeListSyntax"},"ref":"AttributeListSyntax","name":"attributes"},{"value":{"text":"nil"},"name":"unexpectedBetweenAttributesAndModifiers"},{"value":{"text":"DeclModifierListSyntax"},"ref":"DeclModifierListSyntax","name":"modifiers"},{"value":{"text":"nil"},"name":"unexpectedBetweenModifiersAndCaseKeyword"},{"value":{"text":"case","kind":"keyword(SwiftSyntax.Keyword.case)"},"name":"caseKeyword"},{"value":{"text":"nil"},"name":"unexpectedBetweenCaseKeywordAndElements"},{"value":{"text":"EnumCaseElementListSyntax"},"ref":"EnumCaseElementListSyntax","name":"elements"},{"value":{"text":"nil"},"name":"unexpectedAfterElements"}],"type":"decl"},{"range":{"startRow":28,"endColumn":15,"startColumn":15,"graphemeEndColumn":15,"graphemeStartColumn":15,"endRow":28},"text":"AttributeList","structure":[{"value":{"text":"Element"},"name":"Element"},{"value":{"text":"0"},"name":"Count"}],"id":165,"type":"collection","parent":164},{"range":{"endRow":28,"graphemeStartColumn":15,"graphemeEndColumn":15,"startRow":28,"endColumn":15,"startColumn":15},"text":"DeclModifierList","structure":[{"name":"Element","value":{"text":"DeclModifierSyntax"}},{"name":"Count","value":{"text":"0"}}],"id":166,"type":"collection","parent":164},{"text":"case","type":"other","range":{"endRow":29,"endColumn":9,"startRow":29,"startColumn":5,"graphemeStartColumn":5,"graphemeEndColumn":9},"structure":[],"parent":164,"token":{"leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>","kind":"keyword(SwiftSyntax.Keyword.case)","trailingTrivia":"␣<\/span>"},"id":167},{"range":{"endRow":29,"endColumn":14,"startRow":29,"startColumn":10,"graphemeStartColumn":10,"graphemeEndColumn":14},"text":"EnumCaseElementList","structure":[{"value":{"text":"EnumCaseElementSyntax"},"name":"Element"},{"value":{"text":"1"},"name":"Count"}],"id":168,"type":"collection","parent":164},{"range":{"endRow":29,"graphemeStartColumn":10,"startColumn":10,"startRow":29,"graphemeEndColumn":14,"endColumn":14},"text":"EnumCaseElement","structure":[{"name":"unexpectedBeforeName","value":{"text":"nil"}},{"name":"name","value":{"text":"king","kind":"identifier("king")"}},{"name":"unexpectedBetweenNameAndParameterClause","value":{"text":"nil"}},{"name":"parameterClause","value":{"text":"nil"}},{"name":"unexpectedBetweenParameterClauseAndRawValue","value":{"text":"nil"}},{"name":"rawValue","value":{"text":"nil"}},{"name":"unexpectedBetweenRawValueAndTrailingComma","value":{"text":"nil"}},{"name":"trailingComma","value":{"text":"nil"}},{"name":"unexpectedAfterTrailingComma","value":{"text":"nil"}}],"id":169,"type":"other","parent":168},{"text":"king","type":"other","range":{"graphemeEndColumn":14,"graphemeStartColumn":10,"startRow":29,"startColumn":10,"endRow":29,"endColumn":14},"structure":[],"parent":169,"token":{"leadingTrivia":"","trailingTrivia":"","kind":"identifier("king")"},"id":170},{"parent":70,"range":{"graphemeEndColumn":13,"graphemeStartColumn":5,"startRow":30,"startColumn":5,"endRow":30,"endColumn":13},"id":171,"type":"other","structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeDecl"},{"ref":"EnumCaseDeclSyntax","value":{"text":"EnumCaseDeclSyntax"},"name":"decl"},{"value":{"text":"nil"},"name":"unexpectedBetweenDeclAndSemicolon"},{"value":{"text":"nil"},"name":"semicolon"},{"value":{"text":"nil"},"name":"unexpectedAfterSemicolon"}],"text":"MemberBlockItem"},{"parent":171,"range":{"startRow":30,"endColumn":13,"graphemeEndColumn":13,"graphemeStartColumn":5,"endRow":30,"startColumn":5},"id":172,"type":"decl","structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeAttributes"},{"ref":"AttributeListSyntax","value":{"text":"AttributeListSyntax"},"name":"attributes"},{"value":{"text":"nil"},"name":"unexpectedBetweenAttributesAndModifiers"},{"name":"modifiers","value":{"text":"DeclModifierListSyntax"},"ref":"DeclModifierListSyntax"},{"name":"unexpectedBetweenModifiersAndCaseKeyword","value":{"text":"nil"}},{"name":"caseKeyword","value":{"text":"case","kind":"keyword(SwiftSyntax.Keyword.case)"}},{"name":"unexpectedBetweenCaseKeywordAndElements","value":{"text":"nil"}},{"name":"elements","value":{"text":"EnumCaseElementListSyntax"},"ref":"EnumCaseElementListSyntax"},{"name":"unexpectedAfterElements","value":{"text":"nil"}}],"text":"EnumCaseDecl"},{"structure":[{"name":"Element","value":{"text":"Element"}},{"name":"Count","value":{"text":"0"}}],"text":"AttributeList","parent":172,"range":{"graphemeStartColumn":14,"startColumn":14,"startRow":29,"endColumn":14,"endRow":29,"graphemeEndColumn":14},"type":"collection","id":173},{"structure":[{"name":"Element","value":{"text":"DeclModifierSyntax"}},{"name":"Count","value":{"text":"0"}}],"text":"DeclModifierList","parent":172,"range":{"graphemeStartColumn":14,"startRow":29,"endRow":29,"endColumn":14,"startColumn":14,"graphemeEndColumn":14},"type":"collection","id":174},{"text":"case","type":"other","structure":[],"range":{"startColumn":5,"endRow":30,"endColumn":9,"graphemeEndColumn":9,"graphemeStartColumn":5,"startRow":30},"parent":172,"token":{"kind":"keyword(SwiftSyntax.Keyword.case)","trailingTrivia":"␣<\/span>","leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>"},"id":175},{"structure":[{"value":{"text":"EnumCaseElementSyntax"},"name":"Element"},{"value":{"text":"1"},"name":"Count"}],"text":"EnumCaseElementList","parent":172,"range":{"startColumn":10,"endRow":30,"endColumn":13,"graphemeEndColumn":13,"graphemeStartColumn":10,"startRow":30},"type":"collection","id":176},{"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeName"},{"value":{"kind":"identifier("ace")","text":"ace"},"name":"name"},{"value":{"text":"nil"},"name":"unexpectedBetweenNameAndParameterClause"},{"value":{"text":"nil"},"name":"parameterClause"},{"value":{"text":"nil"},"name":"unexpectedBetweenParameterClauseAndRawValue"},{"value":{"text":"nil"},"name":"rawValue"},{"value":{"text":"nil"},"name":"unexpectedBetweenRawValueAndTrailingComma"},{"value":{"text":"nil"},"name":"trailingComma"},{"value":{"text":"nil"},"name":"unexpectedAfterTrailingComma"}],"text":"EnumCaseElement","parent":176,"range":{"graphemeStartColumn":10,"endRow":30,"endColumn":13,"graphemeEndColumn":13,"startColumn":10,"startRow":30},"type":"other","id":177},{"text":"ace","type":"other","structure":[],"range":{"startRow":30,"graphemeEndColumn":13,"startColumn":10,"graphemeStartColumn":10,"endColumn":13,"endRow":30},"parent":177,"token":{"trailingTrivia":"","kind":"identifier("ace")","leadingTrivia":""},"id":178},{"text":"MemberBlockItem","id":179,"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeDecl"},{"ref":"VariableDeclSyntax","value":{"text":"VariableDeclSyntax"},"name":"decl"},{"value":{"text":"nil"},"name":"unexpectedBetweenDeclAndSemicolon"},{"value":{"text":"nil"},"name":"semicolon"},{"value":{"text":"nil"},"name":"unexpectedAfterSemicolon"}],"type":"other","range":{"startRow":33,"graphemeEndColumn":6,"startColumn":5,"graphemeStartColumn":5,"endColumn":6,"endRow":41},"parent":70},{"text":"VariableDecl","id":180,"structure":[{"name":"unexpectedBeforeAttributes","value":{"text":"nil"}},{"ref":"AttributeListSyntax","name":"attributes","value":{"text":"AttributeListSyntax"}},{"name":"unexpectedBetweenAttributesAndModifiers","value":{"text":"nil"}},{"name":"modifiers","value":{"text":"DeclModifierListSyntax"},"ref":"DeclModifierListSyntax"},{"name":"unexpectedBetweenModifiersAndBindingSpecifier","value":{"text":"nil"}},{"name":"bindingSpecifier","value":{"text":"var","kind":"keyword(SwiftSyntax.Keyword.var)"}},{"name":"unexpectedBetweenBindingSpecifierAndBindings","value":{"text":"nil"}},{"name":"bindings","value":{"text":"PatternBindingListSyntax"},"ref":"PatternBindingListSyntax"},{"name":"unexpectedAfterBindings","value":{"text":"nil"}}],"type":"decl","range":{"graphemeEndColumn":6,"startRow":33,"startColumn":5,"endColumn":6,"graphemeStartColumn":5,"endRow":41},"parent":179},{"range":{"startColumn":13,"endRow":30,"startRow":30,"graphemeStartColumn":13,"graphemeEndColumn":13,"endColumn":13},"id":181,"type":"collection","parent":180,"text":"AttributeList","structure":[{"value":{"text":"Element"},"name":"Element"},{"value":{"text":"0"},"name":"Count"}]},{"range":{"endRow":30,"startRow":30,"startColumn":13,"graphemeStartColumn":13,"endColumn":13,"graphemeEndColumn":13},"id":182,"type":"collection","parent":180,"text":"DeclModifierList","structure":[{"name":"Element","value":{"text":"DeclModifierSyntax"}},{"name":"Count","value":{"text":"0"}}]},{"text":"var","type":"other","range":{"endColumn":8,"startColumn":5,"graphemeEndColumn":8,"graphemeStartColumn":5,"startRow":33,"endRow":33},"structure":[],"parent":180,"token":{"kind":"keyword(SwiftSyntax.Keyword.var)","leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>\/\/\/␣<\/span>Returns␣<\/span>a␣<\/span>string␣<\/span>representation␣<\/span>of␣<\/span>the␣<\/span>rank<\/span>↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>","trailingTrivia":"␣<\/span>"},"id":183},{"range":{"endColumn":6,"startColumn":9,"graphemeEndColumn":6,"graphemeStartColumn":9,"startRow":33,"endRow":41},"id":184,"type":"collection","parent":180,"text":"PatternBindingList","structure":[{"value":{"text":"PatternBindingSyntax"},"name":"Element"},{"value":{"text":"1"},"name":"Count"}]},{"range":{"graphemeStartColumn":9,"endRow":41,"graphemeEndColumn":6,"startRow":33,"startColumn":9,"endColumn":6},"id":185,"type":"other","parent":184,"text":"PatternBinding","structure":[{"value":{"text":"nil"},"name":"unexpectedBeforePattern"},{"value":{"text":"IdentifierPatternSyntax"},"ref":"IdentifierPatternSyntax","name":"pattern"},{"value":{"text":"nil"},"name":"unexpectedBetweenPatternAndTypeAnnotation"},{"value":{"text":"TypeAnnotationSyntax"},"ref":"TypeAnnotationSyntax","name":"typeAnnotation"},{"value":{"text":"nil"},"name":"unexpectedBetweenTypeAnnotationAndInitializer"},{"value":{"text":"nil"},"name":"initializer"},{"value":{"text":"nil"},"name":"unexpectedBetweenInitializerAndAccessorBlock"},{"value":{"text":"AccessorBlockSyntax"},"ref":"AccessorBlockSyntax","name":"accessorBlock"},{"value":{"text":"nil"},"name":"unexpectedBetweenAccessorBlockAndTrailingComma"},{"value":{"text":"nil"},"name":"trailingComma"},{"value":{"text":"nil"},"name":"unexpectedAfterTrailingComma"}]},{"structure":[{"name":"unexpectedBeforeIdentifier","value":{"text":"nil"}},{"name":"identifier","value":{"kind":"identifier("description")","text":"description"}},{"name":"unexpectedAfterIdentifier","value":{"text":"nil"}}],"parent":185,"id":186,"text":"IdentifierPattern","range":{"startRow":33,"endColumn":20,"graphemeEndColumn":20,"startColumn":9,"graphemeStartColumn":9,"endRow":33},"type":"pattern"},{"text":"description","type":"other","structure":[],"range":{"endColumn":20,"endRow":33,"graphemeEndColumn":20,"graphemeStartColumn":9,"startColumn":9,"startRow":33},"parent":186,"token":{"kind":"identifier("description")","trailingTrivia":"","leadingTrivia":""},"id":187},{"structure":[{"name":"unexpectedBeforeColon","value":{"text":"nil"}},{"name":"colon","value":{"text":":","kind":"colon"}},{"name":"unexpectedBetweenColonAndType","value":{"text":"nil"}},{"ref":"IdentifierTypeSyntax","name":"type","value":{"text":"IdentifierTypeSyntax"}},{"name":"unexpectedAfterType","value":{"text":"nil"}}],"parent":185,"id":188,"text":"TypeAnnotation","range":{"endColumn":28,"endRow":33,"graphemeEndColumn":28,"graphemeStartColumn":20,"startColumn":20,"startRow":33},"type":"other"},{"text":":","type":"other","range":{"endRow":33,"graphemeEndColumn":21,"startColumn":20,"graphemeStartColumn":20,"endColumn":21,"startRow":33},"structure":[],"parent":188,"token":{"kind":"colon","leadingTrivia":"","trailingTrivia":"␣<\/span>"},"id":189},{"type":"type","id":190,"range":{"endRow":33,"graphemeEndColumn":28,"startColumn":22,"graphemeStartColumn":22,"endColumn":28,"startRow":33},"parent":188,"structure":[{"name":"unexpectedBeforeName","value":{"text":"nil"}},{"name":"name","value":{"kind":"identifier("String")","text":"String"}},{"name":"unexpectedBetweenNameAndGenericArgumentClause","value":{"text":"nil"}},{"name":"genericArgumentClause","value":{"text":"nil"}},{"name":"unexpectedAfterGenericArgumentClause","value":{"text":"nil"}}],"text":"IdentifierType"},{"text":"String","type":"other","range":{"startRow":33,"startColumn":22,"graphemeStartColumn":22,"endRow":33,"endColumn":28,"graphemeEndColumn":28},"structure":[],"parent":190,"token":{"trailingTrivia":"␣<\/span>","kind":"identifier("String")","leadingTrivia":""},"id":191},{"type":"other","id":192,"range":{"startRow":33,"startColumn":29,"graphemeStartColumn":29,"endRow":41,"endColumn":6,"graphemeEndColumn":6},"parent":185,"structure":[{"name":"unexpectedBeforeLeftBrace","value":{"text":"nil"}},{"name":"leftBrace","value":{"text":"{","kind":"leftBrace"}},{"name":"unexpectedBetweenLeftBraceAndAccessors","value":{"text":"nil"}},{"name":"accessors","value":{"text":"CodeBlockItemListSyntax"},"ref":"CodeBlockItemListSyntax"},{"name":"unexpectedBetweenAccessorsAndRightBrace","value":{"text":"nil"}},{"name":"rightBrace","value":{"kind":"rightBrace","text":"}"}},{"name":"unexpectedAfterRightBrace","value":{"text":"nil"}}],"text":"AccessorBlock"},{"text":"{","type":"other","range":{"endColumn":30,"graphemeStartColumn":29,"graphemeEndColumn":30,"startRow":33,"startColumn":29,"endRow":33},"structure":[],"parent":192,"token":{"leadingTrivia":"","trailingTrivia":"","kind":"leftBrace"},"id":193},{"id":194,"parent":192,"type":"collection","range":{"endColumn":10,"graphemeStartColumn":9,"graphemeEndColumn":10,"startRow":34,"startColumn":9,"endRow":40},"text":"CodeBlockItemList","structure":[{"value":{"text":"CodeBlockItemSyntax"},"name":"Element"},{"value":{"text":"1"},"name":"Count"}]},{"id":195,"parent":194,"type":"other","range":{"startRow":34,"endRow":40,"startColumn":9,"endColumn":10,"graphemeEndColumn":10,"graphemeStartColumn":9},"text":"CodeBlockItem","structure":[{"name":"unexpectedBeforeItem","value":{"text":"nil"}},{"name":"item","ref":"ExpressionStmtSyntax","value":{"text":"ExpressionStmtSyntax"}},{"name":"unexpectedBetweenItemAndSemicolon","value":{"text":"nil"}},{"name":"semicolon","value":{"text":"nil"}},{"name":"unexpectedAfterSemicolon","value":{"text":"nil"}}]},{"id":196,"parent":195,"type":"other","range":{"graphemeEndColumn":10,"graphemeStartColumn":9,"startRow":34,"endRow":40,"endColumn":10,"startColumn":9},"text":"ExpressionStmt","structure":[{"name":"unexpectedBeforeExpression","value":{"text":"nil"}},{"name":"expression","ref":"SwitchExprSyntax","value":{"text":"SwitchExprSyntax"}},{"name":"unexpectedAfterExpression","value":{"text":"nil"}}]},{"id":197,"parent":196,"type":"expr","range":{"startColumn":9,"startRow":34,"graphemeStartColumn":9,"endColumn":10,"endRow":40,"graphemeEndColumn":10},"text":"SwitchExpr","structure":[{"name":"unexpectedBeforeSwitchKeyword","value":{"text":"nil"}},{"value":{"text":"switch","kind":"keyword(SwiftSyntax.Keyword.switch)"},"name":"switchKeyword"},{"value":{"text":"nil"},"name":"unexpectedBetweenSwitchKeywordAndSubject"},{"ref":"DeclReferenceExprSyntax","value":{"text":"DeclReferenceExprSyntax"},"name":"subject"},{"value":{"text":"nil"},"name":"unexpectedBetweenSubjectAndLeftBrace"},{"value":{"text":"{","kind":"leftBrace"},"name":"leftBrace"},{"value":{"text":"nil"},"name":"unexpectedBetweenLeftBraceAndCases"},{"ref":"SwitchCaseListSyntax","value":{"text":"SwitchCaseListSyntax"},"name":"cases"},{"value":{"text":"nil"},"name":"unexpectedBetweenCasesAndRightBrace"},{"value":{"kind":"rightBrace","text":"}"},"name":"rightBrace"},{"value":{"text":"nil"},"name":"unexpectedAfterRightBrace"}]},{"text":"switch","type":"other","range":{"startColumn":9,"endRow":34,"graphemeEndColumn":15,"graphemeStartColumn":9,"endColumn":15,"startRow":34},"structure":[],"parent":197,"token":{"trailingTrivia":"␣<\/span>","leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>","kind":"keyword(SwiftSyntax.Keyword.switch)"},"id":198},{"type":"expr","range":{"startColumn":16,"endRow":34,"graphemeEndColumn":20,"graphemeStartColumn":16,"endColumn":20,"startRow":34},"parent":197,"text":"DeclReferenceExpr","id":199,"structure":[{"name":"unexpectedBeforeBaseName","value":{"text":"nil"}},{"name":"baseName","value":{"text":"self","kind":"keyword(SwiftSyntax.Keyword.self)"}},{"name":"unexpectedBetweenBaseNameAndArgumentNames","value":{"text":"nil"}},{"name":"argumentNames","value":{"text":"nil"}},{"name":"unexpectedAfterArgumentNames","value":{"text":"nil"}}]},{"text":"self","type":"other","range":{"startColumn":16,"endRow":34,"endColumn":20,"graphemeEndColumn":20,"startRow":34,"graphemeStartColumn":16},"structure":[],"parent":199,"token":{"trailingTrivia":"␣<\/span>","kind":"keyword(SwiftSyntax.Keyword.self)","leadingTrivia":""},"id":200},{"text":"{","type":"other","structure":[],"range":{"graphemeStartColumn":21,"graphemeEndColumn":22,"startRow":34,"startColumn":21,"endRow":34,"endColumn":22},"parent":197,"token":{"kind":"leftBrace","trailingTrivia":"","leadingTrivia":""},"id":201},{"text":"SwitchCaseList","type":"collection","structure":[{"value":{"text":"Element"},"name":"Element"},{"value":{"text":"5"},"name":"Count"}],"range":{"graphemeStartColumn":9,"graphemeEndColumn":38,"startRow":35,"startColumn":9,"endRow":39,"endColumn":38},"parent":197,"id":202},{"text":"SwitchCase","type":"other","structure":[{"name":"unexpectedBeforeAttribute","value":{"text":"nil"}},{"name":"attribute","value":{"text":"nil"}},{"name":"unexpectedBetweenAttributeAndLabel","value":{"text":"nil"}},{"name":"label","value":{"text":"SwitchCaseLabelSyntax"},"ref":"SwitchCaseLabelSyntax"},{"name":"unexpectedBetweenLabelAndStatements","value":{"text":"nil"}},{"name":"statements","value":{"text":"CodeBlockItemListSyntax"},"ref":"CodeBlockItemListSyntax"},{"name":"unexpectedAfterStatements","value":{"text":"nil"}}],"range":{"graphemeStartColumn":9,"endRow":35,"startRow":35,"endColumn":31,"startColumn":9,"graphemeEndColumn":31},"parent":202,"id":203},{"text":"SwitchCaseLabel","type":"other","structure":[{"name":"unexpectedBeforeCaseKeyword","value":{"text":"nil"}},{"name":"caseKeyword","value":{"text":"case","kind":"keyword(SwiftSyntax.Keyword.case)"}},{"name":"unexpectedBetweenCaseKeywordAndCaseItems","value":{"text":"nil"}},{"ref":"SwitchCaseItemListSyntax","name":"caseItems","value":{"text":"SwitchCaseItemListSyntax"}},{"name":"unexpectedBetweenCaseItemsAndColon","value":{"text":"nil"}},{"name":"colon","value":{"text":":","kind":"colon"}},{"name":"unexpectedAfterColon","value":{"text":"nil"}}],"range":{"startRow":35,"graphemeStartColumn":9,"startColumn":9,"endRow":35,"endColumn":20,"graphemeEndColumn":20},"parent":203,"id":204},{"text":"case","type":"other","range":{"graphemeStartColumn":9,"startColumn":9,"graphemeEndColumn":13,"startRow":35,"endRow":35,"endColumn":13},"structure":[],"parent":204,"token":{"trailingTrivia":"␣<\/span>","kind":"keyword(SwiftSyntax.Keyword.case)","leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>"},"id":205},{"range":{"graphemeStartColumn":14,"startColumn":14,"graphemeEndColumn":19,"startRow":35,"endRow":35,"endColumn":19},"structure":[{"name":"Element","value":{"text":"SwitchCaseItemSyntax"}},{"name":"Count","value":{"text":"1"}}],"text":"SwitchCaseItemList","id":206,"parent":204,"type":"collection"},{"range":{"graphemeEndColumn":19,"startColumn":14,"graphemeStartColumn":14,"startRow":35,"endColumn":19,"endRow":35},"structure":[{"name":"unexpectedBeforePattern","value":{"text":"nil"}},{"ref":"ExpressionPatternSyntax","name":"pattern","value":{"text":"ExpressionPatternSyntax"}},{"name":"unexpectedBetweenPatternAndWhereClause","value":{"text":"nil"}},{"name":"whereClause","value":{"text":"nil"}},{"name":"unexpectedBetweenWhereClauseAndTrailingComma","value":{"text":"nil"}},{"name":"trailingComma","value":{"text":"nil"}},{"name":"unexpectedAfterTrailingComma","value":{"text":"nil"}}],"text":"SwitchCaseItem","id":207,"parent":206,"type":"other"},{"range":{"endRow":35,"startColumn":14,"graphemeStartColumn":14,"startRow":35,"endColumn":19,"graphemeEndColumn":19},"structure":[{"name":"unexpectedBeforeExpression","value":{"text":"nil"}},{"name":"expression","ref":"MemberAccessExprSyntax","value":{"text":"MemberAccessExprSyntax"}},{"name":"unexpectedAfterExpression","value":{"text":"nil"}}],"text":"ExpressionPattern","id":208,"parent":207,"type":"pattern"},{"range":{"graphemeStartColumn":14,"graphemeEndColumn":19,"endColumn":19,"startRow":35,"endRow":35,"startColumn":14},"text":"MemberAccessExpr","structure":[{"name":"unexpectedBeforeBase","value":{"text":"nil"}},{"name":"base","value":{"text":"nil"}},{"name":"unexpectedBetweenBaseAndPeriod","value":{"text":"nil"}},{"name":"period","value":{"kind":"period","text":"."}},{"name":"unexpectedBetweenPeriodAndDeclName","value":{"text":"nil"}},{"name":"declName","value":{"text":"DeclReferenceExprSyntax"},"ref":"DeclReferenceExprSyntax"},{"name":"unexpectedAfterDeclName","value":{"text":"nil"}}],"type":"expr","parent":208,"id":209},{"text":".","type":"other","range":{"startRow":35,"startColumn":14,"graphemeStartColumn":14,"graphemeEndColumn":15,"endRow":35,"endColumn":15},"structure":[],"parent":209,"token":{"trailingTrivia":"","leadingTrivia":"","kind":"period"},"id":210},{"range":{"startRow":35,"startColumn":15,"graphemeStartColumn":15,"graphemeEndColumn":19,"endRow":35,"endColumn":19},"text":"DeclReferenceExpr","structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeBaseName"},{"value":{"kind":"identifier("jack")","text":"jack"},"name":"baseName"},{"value":{"text":"nil"},"name":"unexpectedBetweenBaseNameAndArgumentNames"},{"value":{"text":"nil"},"name":"argumentNames"},{"value":{"text":"nil"},"name":"unexpectedAfterArgumentNames"}],"type":"expr","parent":209,"id":211},{"text":"jack","type":"other","range":{"startRow":35,"startColumn":15,"endColumn":19,"graphemeEndColumn":19,"graphemeStartColumn":15,"endRow":35},"structure":[],"parent":211,"token":{"leadingTrivia":"","trailingTrivia":"","kind":"identifier("jack")"},"id":212},{"text":":","type":"other","range":{"endRow":35,"startRow":35,"startColumn":19,"graphemeStartColumn":19,"endColumn":20,"graphemeEndColumn":20},"structure":[],"parent":204,"token":{"trailingTrivia":"␣<\/span>","kind":"colon","leadingTrivia":""},"id":213},{"structure":[{"name":"Element","value":{"text":"CodeBlockItemSyntax"}},{"name":"Count","value":{"text":"1"}}],"type":"collection","text":"CodeBlockItemList","id":214,"range":{"startColumn":21,"graphemeStartColumn":21,"endColumn":31,"startRow":35,"graphemeEndColumn":31,"endRow":35},"parent":203},{"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeItem"},{"value":{"text":"ReturnStmtSyntax"},"name":"item","ref":"ReturnStmtSyntax"},{"value":{"text":"nil"},"name":"unexpectedBetweenItemAndSemicolon"},{"value":{"text":"nil"},"name":"semicolon"},{"value":{"text":"nil"},"name":"unexpectedAfterSemicolon"}],"type":"other","text":"CodeBlockItem","id":215,"range":{"endRow":35,"endColumn":31,"graphemeEndColumn":31,"startColumn":21,"graphemeStartColumn":21,"startRow":35},"parent":214},{"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeReturnKeyword"},{"value":{"text":"return","kind":"keyword(SwiftSyntax.Keyword.return)"},"name":"returnKeyword"},{"value":{"text":"nil"},"name":"unexpectedBetweenReturnKeywordAndExpression"},{"value":{"text":"StringLiteralExprSyntax"},"ref":"StringLiteralExprSyntax","name":"expression"},{"value":{"text":"nil"},"name":"unexpectedAfterExpression"}],"type":"other","text":"ReturnStmt","id":216,"range":{"graphemeStartColumn":21,"endRow":35,"endColumn":31,"startColumn":21,"graphemeEndColumn":31,"startRow":35},"parent":215},{"text":"return","type":"other","structure":[],"range":{"graphemeEndColumn":27,"startRow":35,"endRow":35,"endColumn":27,"startColumn":21,"graphemeStartColumn":21},"parent":216,"token":{"leadingTrivia":"","kind":"keyword(SwiftSyntax.Keyword.return)","trailingTrivia":"␣<\/span>"},"id":217},{"structure":[{"name":"unexpectedBeforeOpeningPounds","value":{"text":"nil"}},{"name":"openingPounds","value":{"text":"nil"}},{"name":"unexpectedBetweenOpeningPoundsAndOpeningQuote","value":{"text":"nil"}},{"name":"openingQuote","value":{"text":""","kind":"stringQuote"}},{"name":"unexpectedBetweenOpeningQuoteAndSegments","value":{"text":"nil"}},{"name":"segments","ref":"StringLiteralSegmentListSyntax","value":{"text":"StringLiteralSegmentListSyntax"}},{"name":"unexpectedBetweenSegmentsAndClosingQuote","value":{"text":"nil"}},{"name":"closingQuote","value":{"kind":"stringQuote","text":"""}},{"name":"unexpectedBetweenClosingQuoteAndClosingPounds","value":{"text":"nil"}},{"name":"closingPounds","value":{"text":"nil"}},{"name":"unexpectedAfterClosingPounds","value":{"text":"nil"}}],"type":"expr","text":"StringLiteralExpr","id":218,"range":{"graphemeEndColumn":31,"startRow":35,"endRow":35,"endColumn":31,"startColumn":28,"graphemeStartColumn":28},"parent":216},{"text":""","type":"other","range":{"endRow":35,"startRow":35,"graphemeStartColumn":28,"endColumn":29,"startColumn":28,"graphemeEndColumn":29},"structure":[],"parent":218,"token":{"trailingTrivia":"","leadingTrivia":"","kind":"stringQuote"},"id":219},{"type":"collection","text":"StringLiteralSegmentList","id":220,"parent":218,"range":{"endRow":35,"startRow":35,"graphemeStartColumn":29,"endColumn":30,"startColumn":29,"graphemeEndColumn":30},"structure":[{"name":"Element","value":{"text":"Element"}},{"name":"Count","value":{"text":"1"}}]},{"type":"other","text":"StringSegment","id":221,"parent":220,"range":{"graphemeStartColumn":29,"graphemeEndColumn":30,"startRow":35,"endRow":35,"endColumn":30,"startColumn":29},"structure":[{"name":"unexpectedBeforeContent","value":{"text":"nil"}},{"name":"content","value":{"text":"J","kind":"stringSegment("J")"}},{"name":"unexpectedAfterContent","value":{"text":"nil"}}]},{"text":"J","type":"other","range":{"startRow":35,"startColumn":29,"graphemeStartColumn":29,"endRow":35,"endColumn":30,"graphemeEndColumn":30},"structure":[],"parent":221,"token":{"leadingTrivia":"","trailingTrivia":"","kind":"stringSegment("J")"},"id":222},{"text":""","type":"other","range":{"startColumn":30,"graphemeStartColumn":30,"graphemeEndColumn":31,"startRow":35,"endRow":35,"endColumn":31},"structure":[],"parent":218,"token":{"leadingTrivia":"","kind":"stringQuote","trailingTrivia":""},"id":223},{"range":{"startColumn":9,"graphemeStartColumn":9,"graphemeEndColumn":32,"startRow":36,"endRow":36,"endColumn":32},"structure":[{"name":"unexpectedBeforeAttribute","value":{"text":"nil"}},{"name":"attribute","value":{"text":"nil"}},{"name":"unexpectedBetweenAttributeAndLabel","value":{"text":"nil"}},{"ref":"SwitchCaseLabelSyntax","name":"label","value":{"text":"SwitchCaseLabelSyntax"}},{"name":"unexpectedBetweenLabelAndStatements","value":{"text":"nil"}},{"ref":"CodeBlockItemListSyntax","name":"statements","value":{"text":"CodeBlockItemListSyntax"}},{"name":"unexpectedAfterStatements","value":{"text":"nil"}}],"text":"SwitchCase","type":"other","id":224,"parent":202},{"range":{"graphemeEndColumn":21,"endRow":36,"endColumn":21,"startRow":36,"startColumn":9,"graphemeStartColumn":9},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeCaseKeyword"},{"value":{"kind":"keyword(SwiftSyntax.Keyword.case)","text":"case"},"name":"caseKeyword"},{"value":{"text":"nil"},"name":"unexpectedBetweenCaseKeywordAndCaseItems"},{"ref":"SwitchCaseItemListSyntax","value":{"text":"SwitchCaseItemListSyntax"},"name":"caseItems"},{"value":{"text":"nil"},"name":"unexpectedBetweenCaseItemsAndColon"},{"value":{"kind":"colon","text":":"},"name":"colon"},{"value":{"text":"nil"},"name":"unexpectedAfterColon"}],"text":"SwitchCaseLabel","type":"other","id":225,"parent":224},{"text":"case","type":"other","range":{"graphemeStartColumn":9,"startRow":36,"startColumn":9,"endColumn":13,"graphemeEndColumn":13,"endRow":36},"structure":[],"parent":225,"token":{"leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>","kind":"keyword(SwiftSyntax.Keyword.case)","trailingTrivia":"␣<\/span>"},"id":226},{"parent":225,"text":"SwitchCaseItemList","range":{"startColumn":14,"graphemeStartColumn":14,"endRow":36,"endColumn":20,"graphemeEndColumn":20,"startRow":36},"structure":[{"name":"Element","value":{"text":"SwitchCaseItemSyntax"}},{"name":"Count","value":{"text":"1"}}],"type":"collection","id":227},{"parent":227,"text":"SwitchCaseItem","range":{"startRow":36,"endColumn":20,"startColumn":14,"graphemeStartColumn":14,"graphemeEndColumn":20,"endRow":36},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforePattern"},{"value":{"text":"ExpressionPatternSyntax"},"ref":"ExpressionPatternSyntax","name":"pattern"},{"value":{"text":"nil"},"name":"unexpectedBetweenPatternAndWhereClause"},{"value":{"text":"nil"},"name":"whereClause"},{"value":{"text":"nil"},"name":"unexpectedBetweenWhereClauseAndTrailingComma"},{"value":{"text":"nil"},"name":"trailingComma"},{"value":{"text":"nil"},"name":"unexpectedAfterTrailingComma"}],"type":"other","id":228},{"parent":228,"text":"ExpressionPattern","range":{"endColumn":20,"startColumn":14,"graphemeStartColumn":14,"startRow":36,"graphemeEndColumn":20,"endRow":36},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeExpression"},{"ref":"MemberAccessExprSyntax","value":{"text":"MemberAccessExprSyntax"},"name":"expression"},{"value":{"text":"nil"},"name":"unexpectedAfterExpression"}],"type":"pattern","id":229},{"parent":229,"text":"MemberAccessExpr","range":{"graphemeEndColumn":20,"graphemeStartColumn":14,"startRow":36,"startColumn":14,"endRow":36,"endColumn":20},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeBase"},{"value":{"text":"nil"},"name":"base"},{"value":{"text":"nil"},"name":"unexpectedBetweenBaseAndPeriod"},{"value":{"kind":"period","text":"."},"name":"period"},{"value":{"text":"nil"},"name":"unexpectedBetweenPeriodAndDeclName"},{"value":{"text":"DeclReferenceExprSyntax"},"ref":"DeclReferenceExprSyntax","name":"declName"},{"value":{"text":"nil"},"name":"unexpectedAfterDeclName"}],"type":"expr","id":230},{"token":{"leadingTrivia":"","kind":"period","trailingTrivia":""},"range":{"startColumn":14,"graphemeStartColumn":14,"startRow":36,"endRow":36,"graphemeEndColumn":15,"endColumn":15},"structure":[],"id":231,"text":".","type":"other","parent":230},{"id":232,"range":{"startColumn":15,"graphemeStartColumn":15,"startRow":36,"endRow":36,"graphemeEndColumn":20,"endColumn":20},"structure":[{"name":"unexpectedBeforeBaseName","value":{"text":"nil"}},{"name":"baseName","value":{"kind":"identifier("queen")","text":"queen"}},{"name":"unexpectedBetweenBaseNameAndArgumentNames","value":{"text":"nil"}},{"name":"argumentNames","value":{"text":"nil"}},{"name":"unexpectedAfterArgumentNames","value":{"text":"nil"}}],"text":"DeclReferenceExpr","type":"expr","parent":230},{"token":{"kind":"identifier("queen")","leadingTrivia":"","trailingTrivia":""},"range":{"graphemeEndColumn":20,"endColumn":20,"startRow":36,"startColumn":15,"graphemeStartColumn":15,"endRow":36},"structure":[],"id":233,"text":"queen","type":"other","parent":232},{"token":{"kind":"colon","leadingTrivia":"","trailingTrivia":"␣<\/span>"},"range":{"graphemeEndColumn":21,"endColumn":21,"startRow":36,"startColumn":20,"graphemeStartColumn":20,"endRow":36},"structure":[],"id":234,"text":":","type":"other","parent":225},{"id":235,"range":{"graphemeEndColumn":32,"endColumn":32,"startRow":36,"startColumn":22,"graphemeStartColumn":22,"endRow":36},"structure":[{"value":{"text":"CodeBlockItemSyntax"},"name":"Element"},{"value":{"text":"1"},"name":"Count"}],"text":"CodeBlockItemList","type":"collection","parent":224},{"id":236,"range":{"startRow":36,"endColumn":32,"graphemeEndColumn":32,"startColumn":22,"graphemeStartColumn":22,"endRow":36},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeItem"},{"value":{"text":"ReturnStmtSyntax"},"name":"item","ref":"ReturnStmtSyntax"},{"value":{"text":"nil"},"name":"unexpectedBetweenItemAndSemicolon"},{"value":{"text":"nil"},"name":"semicolon"},{"value":{"text":"nil"},"name":"unexpectedAfterSemicolon"}],"text":"CodeBlockItem","type":"other","parent":235},{"structure":[{"name":"unexpectedBeforeReturnKeyword","value":{"text":"nil"}},{"name":"returnKeyword","value":{"text":"return","kind":"keyword(SwiftSyntax.Keyword.return)"}},{"name":"unexpectedBetweenReturnKeywordAndExpression","value":{"text":"nil"}},{"name":"expression","value":{"text":"StringLiteralExprSyntax"},"ref":"StringLiteralExprSyntax"},{"name":"unexpectedAfterExpression","value":{"text":"nil"}}],"id":237,"range":{"endRow":36,"endColumn":32,"graphemeEndColumn":32,"startColumn":22,"graphemeStartColumn":22,"startRow":36},"type":"other","parent":236,"text":"ReturnStmt"},{"token":{"trailingTrivia":"␣<\/span>","leadingTrivia":"","kind":"keyword(SwiftSyntax.Keyword.return)"},"range":{"startRow":36,"endRow":36,"endColumn":28,"graphemeEndColumn":28,"startColumn":22,"graphemeStartColumn":22},"structure":[],"id":238,"text":"return","type":"other","parent":237},{"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeOpeningPounds"},{"value":{"text":"nil"},"name":"openingPounds"},{"value":{"text":"nil"},"name":"unexpectedBetweenOpeningPoundsAndOpeningQuote"},{"value":{"text":""","kind":"stringQuote"},"name":"openingQuote"},{"value":{"text":"nil"},"name":"unexpectedBetweenOpeningQuoteAndSegments"},{"value":{"text":"StringLiteralSegmentListSyntax"},"name":"segments","ref":"StringLiteralSegmentListSyntax"},{"value":{"text":"nil"},"name":"unexpectedBetweenSegmentsAndClosingQuote"},{"value":{"text":""","kind":"stringQuote"},"name":"closingQuote"},{"value":{"text":"nil"},"name":"unexpectedBetweenClosingQuoteAndClosingPounds"},{"value":{"text":"nil"},"name":"closingPounds"},{"value":{"text":"nil"},"name":"unexpectedAfterClosingPounds"}],"id":239,"range":{"startRow":36,"endRow":36,"endColumn":32,"graphemeEndColumn":32,"startColumn":29,"graphemeStartColumn":29},"type":"expr","parent":237,"text":"StringLiteralExpr"},{"token":{"kind":"stringQuote","leadingTrivia":"","trailingTrivia":""},"range":{"graphemeEndColumn":30,"startColumn":29,"endRow":36,"graphemeStartColumn":29,"startRow":36,"endColumn":30},"structure":[],"id":240,"text":""","parent":239,"type":"other"},{"id":241,"parent":239,"structure":[{"name":"Element","value":{"text":"Element"}},{"name":"Count","value":{"text":"1"}}],"range":{"graphemeEndColumn":31,"startColumn":30,"endRow":36,"graphemeStartColumn":30,"startRow":36,"endColumn":31},"type":"collection","text":"StringLiteralSegmentList"},{"id":242,"parent":241,"structure":[{"name":"unexpectedBeforeContent","value":{"text":"nil"}},{"name":"content","value":{"kind":"stringSegment("Q")","text":"Q"}},{"name":"unexpectedAfterContent","value":{"text":"nil"}}],"range":{"graphemeStartColumn":30,"endRow":36,"startColumn":30,"graphemeEndColumn":31,"startRow":36,"endColumn":31},"type":"other","text":"StringSegment"},{"token":{"kind":"stringSegment("Q")","leadingTrivia":"","trailingTrivia":""},"range":{"graphemeEndColumn":31,"graphemeStartColumn":30,"startRow":36,"startColumn":30,"endRow":36,"endColumn":31},"structure":[],"id":243,"text":"Q","parent":242,"type":"other"},{"token":{"kind":"stringQuote","leadingTrivia":"","trailingTrivia":""},"range":{"graphemeEndColumn":32,"graphemeStartColumn":31,"startRow":36,"startColumn":31,"endRow":36,"endColumn":32},"structure":[],"id":244,"text":""","parent":239,"type":"other"},{"id":245,"parent":202,"range":{"endColumn":31,"graphemeStartColumn":9,"startRow":37,"startColumn":9,"endRow":37,"graphemeEndColumn":31},"type":"other","text":"SwitchCase","structure":[{"name":"unexpectedBeforeAttribute","value":{"text":"nil"}},{"name":"attribute","value":{"text":"nil"}},{"name":"unexpectedBetweenAttributeAndLabel","value":{"text":"nil"}},{"ref":"SwitchCaseLabelSyntax","name":"label","value":{"text":"SwitchCaseLabelSyntax"}},{"name":"unexpectedBetweenLabelAndStatements","value":{"text":"nil"}},{"ref":"CodeBlockItemListSyntax","name":"statements","value":{"text":"CodeBlockItemListSyntax"}},{"name":"unexpectedAfterStatements","value":{"text":"nil"}}]},{"type":"other","range":{"graphemeStartColumn":9,"endColumn":20,"graphemeEndColumn":20,"endRow":37,"startRow":37,"startColumn":9},"parent":245,"id":246,"text":"SwitchCaseLabel","structure":[{"name":"unexpectedBeforeCaseKeyword","value":{"text":"nil"}},{"name":"caseKeyword","value":{"text":"case","kind":"keyword(SwiftSyntax.Keyword.case)"}},{"name":"unexpectedBetweenCaseKeywordAndCaseItems","value":{"text":"nil"}},{"name":"caseItems","ref":"SwitchCaseItemListSyntax","value":{"text":"SwitchCaseItemListSyntax"}},{"name":"unexpectedBetweenCaseItemsAndColon","value":{"text":"nil"}},{"name":"colon","value":{"text":":","kind":"colon"}},{"name":"unexpectedAfterColon","value":{"text":"nil"}}]},{"token":{"kind":"keyword(SwiftSyntax.Keyword.case)","leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>","trailingTrivia":"␣<\/span>"},"range":{"endColumn":13,"endRow":37,"startColumn":9,"startRow":37,"graphemeStartColumn":9,"graphemeEndColumn":13},"structure":[],"id":247,"text":"case","type":"other","parent":246},{"type":"collection","range":{"endColumn":19,"endRow":37,"startColumn":14,"startRow":37,"graphemeStartColumn":14,"graphemeEndColumn":19},"parent":246,"id":248,"text":"SwitchCaseItemList","structure":[{"value":{"text":"SwitchCaseItemSyntax"},"name":"Element"},{"value":{"text":"1"},"name":"Count"}]},{"id":249,"parent":248,"range":{"graphemeEndColumn":19,"startColumn":14,"graphemeStartColumn":14,"endRow":37,"endColumn":19,"startRow":37},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforePattern"},{"value":{"text":"ExpressionPatternSyntax"},"ref":"ExpressionPatternSyntax","name":"pattern"},{"value":{"text":"nil"},"name":"unexpectedBetweenPatternAndWhereClause"},{"value":{"text":"nil"},"name":"whereClause"},{"value":{"text":"nil"},"name":"unexpectedBetweenWhereClauseAndTrailingComma"},{"value":{"text":"nil"},"name":"trailingComma"},{"value":{"text":"nil"},"name":"unexpectedAfterTrailingComma"}],"text":"SwitchCaseItem","type":"other"},{"id":250,"parent":249,"range":{"startRow":37,"startColumn":14,"graphemeStartColumn":14,"endRow":37,"endColumn":19,"graphemeEndColumn":19},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeExpression"},{"value":{"text":"MemberAccessExprSyntax"},"name":"expression","ref":"MemberAccessExprSyntax"},{"value":{"text":"nil"},"name":"unexpectedAfterExpression"}],"text":"ExpressionPattern","type":"pattern"},{"id":251,"parent":250,"range":{"startColumn":14,"graphemeStartColumn":14,"endRow":37,"startRow":37,"endColumn":19,"graphemeEndColumn":19},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeBase"},{"value":{"text":"nil"},"name":"base"},{"value":{"text":"nil"},"name":"unexpectedBetweenBaseAndPeriod"},{"value":{"text":".","kind":"period"},"name":"period"},{"value":{"text":"nil"},"name":"unexpectedBetweenPeriodAndDeclName"},{"value":{"text":"DeclReferenceExprSyntax"},"ref":"DeclReferenceExprSyntax","name":"declName"},{"value":{"text":"nil"},"name":"unexpectedAfterDeclName"}],"text":"MemberAccessExpr","type":"expr"},{"token":{"trailingTrivia":"","leadingTrivia":"","kind":"period"},"range":{"endRow":37,"endColumn":15,"graphemeEndColumn":15,"graphemeStartColumn":14,"startColumn":14,"startRow":37},"structure":[],"id":252,"text":".","parent":251,"type":"other"},{"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeBaseName"},{"value":{"text":"king","kind":"identifier("king")"},"name":"baseName"},{"value":{"text":"nil"},"name":"unexpectedBetweenBaseNameAndArgumentNames"},{"value":{"text":"nil"},"name":"argumentNames"},{"value":{"text":"nil"},"name":"unexpectedAfterArgumentNames"}],"parent":251,"text":"DeclReferenceExpr","type":"expr","range":{"endRow":37,"endColumn":19,"graphemeEndColumn":19,"graphemeStartColumn":15,"startColumn":15,"startRow":37},"id":253},{"token":{"leadingTrivia":"","kind":"identifier("king")","trailingTrivia":""},"range":{"startRow":37,"graphemeStartColumn":15,"endRow":37,"graphemeEndColumn":19,"startColumn":15,"endColumn":19},"structure":[],"id":254,"text":"king","parent":253,"type":"other"},{"token":{"leadingTrivia":"","kind":"colon","trailingTrivia":"␣<\/span>"},"range":{"startRow":37,"graphemeStartColumn":19,"endRow":37,"graphemeEndColumn":20,"startColumn":19,"endColumn":20},"structure":[],"id":255,"text":":","parent":246,"type":"other"},{"structure":[{"name":"Element","value":{"text":"CodeBlockItemSyntax"}},{"name":"Count","value":{"text":"1"}}],"parent":245,"text":"CodeBlockItemList","type":"collection","range":{"startRow":37,"graphemeStartColumn":21,"endRow":37,"graphemeEndColumn":31,"startColumn":21,"endColumn":31},"id":256},{"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeItem"},{"value":{"text":"ReturnStmtSyntax"},"ref":"ReturnStmtSyntax","name":"item"},{"value":{"text":"nil"},"name":"unexpectedBetweenItemAndSemicolon"},{"value":{"text":"nil"},"name":"semicolon"},{"value":{"text":"nil"},"name":"unexpectedAfterSemicolon"}],"parent":256,"text":"CodeBlockItem","type":"other","range":{"startColumn":21,"endRow":37,"graphemeEndColumn":31,"graphemeStartColumn":21,"endColumn":31,"startRow":37},"id":257},{"range":{"graphemeStartColumn":21,"graphemeEndColumn":31,"endRow":37,"endColumn":31,"startColumn":21,"startRow":37},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeReturnKeyword"},{"value":{"text":"return","kind":"keyword(SwiftSyntax.Keyword.return)"},"name":"returnKeyword"},{"value":{"text":"nil"},"name":"unexpectedBetweenReturnKeywordAndExpression"},{"value":{"text":"StringLiteralExprSyntax"},"name":"expression","ref":"StringLiteralExprSyntax"},{"value":{"text":"nil"},"name":"unexpectedAfterExpression"}],"parent":257,"type":"other","text":"ReturnStmt","id":258},{"token":{"kind":"keyword(SwiftSyntax.Keyword.return)","leadingTrivia":"","trailingTrivia":"␣<\/span>"},"range":{"endColumn":27,"startColumn":21,"graphemeEndColumn":27,"endRow":37,"startRow":37,"graphemeStartColumn":21},"structure":[],"id":259,"text":"return","parent":258,"type":"other"},{"range":{"endColumn":31,"startColumn":28,"graphemeEndColumn":31,"endRow":37,"startRow":37,"graphemeStartColumn":28},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeOpeningPounds"},{"value":{"text":"nil"},"name":"openingPounds"},{"value":{"text":"nil"},"name":"unexpectedBetweenOpeningPoundsAndOpeningQuote"},{"value":{"text":""","kind":"stringQuote"},"name":"openingQuote"},{"value":{"text":"nil"},"name":"unexpectedBetweenOpeningQuoteAndSegments"},{"ref":"StringLiteralSegmentListSyntax","value":{"text":"StringLiteralSegmentListSyntax"},"name":"segments"},{"value":{"text":"nil"},"name":"unexpectedBetweenSegmentsAndClosingQuote"},{"value":{"kind":"stringQuote","text":"""},"name":"closingQuote"},{"name":"unexpectedBetweenClosingQuoteAndClosingPounds","value":{"text":"nil"}},{"name":"closingPounds","value":{"text":"nil"}},{"name":"unexpectedAfterClosingPounds","value":{"text":"nil"}}],"parent":258,"type":"expr","text":"StringLiteralExpr","id":260},{"token":{"leadingTrivia":"","kind":"stringQuote","trailingTrivia":""},"range":{"graphemeStartColumn":28,"startRow":37,"endRow":37,"endColumn":29,"graphemeEndColumn":29,"startColumn":28},"structure":[],"id":261,"text":""","type":"other","parent":260},{"structure":[{"value":{"text":"Element"},"name":"Element"},{"value":{"text":"1"},"name":"Count"}],"range":{"graphemeStartColumn":29,"startRow":37,"endRow":37,"endColumn":30,"graphemeEndColumn":30,"startColumn":29},"type":"collection","text":"StringLiteralSegmentList","id":262,"parent":260},{"structure":[{"name":"unexpectedBeforeContent","value":{"text":"nil"}},{"name":"content","value":{"text":"K","kind":"stringSegment("K")"}},{"name":"unexpectedAfterContent","value":{"text":"nil"}}],"range":{"startRow":37,"startColumn":29,"graphemeStartColumn":29,"endRow":37,"endColumn":30,"graphemeEndColumn":30},"type":"other","text":"StringSegment","id":263,"parent":262},{"token":{"kind":"stringSegment("K")","leadingTrivia":"","trailingTrivia":""},"range":{"graphemeStartColumn":29,"endRow":37,"endColumn":30,"startRow":37,"graphemeEndColumn":30,"startColumn":29},"structure":[],"id":264,"text":"K","type":"other","parent":263},{"token":{"kind":"stringQuote","leadingTrivia":"","trailingTrivia":""},"range":{"graphemeStartColumn":30,"endRow":37,"endColumn":31,"startRow":37,"graphemeEndColumn":31,"startColumn":30},"structure":[],"id":265,"text":""","type":"other","parent":260},{"structure":[{"name":"unexpectedBeforeAttribute","value":{"text":"nil"}},{"name":"attribute","value":{"text":"nil"}},{"name":"unexpectedBetweenAttributeAndLabel","value":{"text":"nil"}},{"name":"label","ref":"SwitchCaseLabelSyntax","value":{"text":"SwitchCaseLabelSyntax"}},{"value":{"text":"nil"},"name":"unexpectedBetweenLabelAndStatements"},{"value":{"text":"CodeBlockItemListSyntax"},"name":"statements","ref":"CodeBlockItemListSyntax"},{"value":{"text":"nil"},"name":"unexpectedAfterStatements"}],"range":{"graphemeStartColumn":9,"endRow":38,"endColumn":30,"startRow":38,"graphemeEndColumn":30,"startColumn":9},"type":"other","text":"SwitchCase","id":266,"parent":202},{"text":"SwitchCaseLabel","type":"other","id":267,"range":{"graphemeEndColumn":19,"startRow":38,"startColumn":9,"graphemeStartColumn":9,"endColumn":19,"endRow":38},"structure":[{"name":"unexpectedBeforeCaseKeyword","value":{"text":"nil"}},{"name":"caseKeyword","value":{"kind":"keyword(SwiftSyntax.Keyword.case)","text":"case"}},{"name":"unexpectedBetweenCaseKeywordAndCaseItems","value":{"text":"nil"}},{"name":"caseItems","ref":"SwitchCaseItemListSyntax","value":{"text":"SwitchCaseItemListSyntax"}},{"name":"unexpectedBetweenCaseItemsAndColon","value":{"text":"nil"}},{"name":"colon","value":{"kind":"colon","text":":"}},{"name":"unexpectedAfterColon","value":{"text":"nil"}}],"parent":266},{"token":{"leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>","trailingTrivia":"␣<\/span>","kind":"keyword(SwiftSyntax.Keyword.case)"},"range":{"startRow":38,"endRow":38,"startColumn":9,"endColumn":13,"graphemeStartColumn":9,"graphemeEndColumn":13},"structure":[],"id":268,"text":"case","type":"other","parent":267},{"text":"SwitchCaseItemList","type":"collection","id":269,"range":{"startRow":38,"endRow":38,"startColumn":14,"endColumn":18,"graphemeStartColumn":14,"graphemeEndColumn":18},"structure":[{"name":"Element","value":{"text":"SwitchCaseItemSyntax"}},{"name":"Count","value":{"text":"1"}}],"parent":267},{"text":"SwitchCaseItem","type":"other","id":270,"range":{"graphemeStartColumn":14,"endColumn":18,"graphemeEndColumn":18,"endRow":38,"startColumn":14,"startRow":38},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforePattern"},{"value":{"text":"ExpressionPatternSyntax"},"ref":"ExpressionPatternSyntax","name":"pattern"},{"value":{"text":"nil"},"name":"unexpectedBetweenPatternAndWhereClause"},{"value":{"text":"nil"},"name":"whereClause"},{"value":{"text":"nil"},"name":"unexpectedBetweenWhereClauseAndTrailingComma"},{"value":{"text":"nil"},"name":"trailingComma"},{"value":{"text":"nil"},"name":"unexpectedAfterTrailingComma"}],"parent":269},{"structure":[{"name":"unexpectedBeforeExpression","value":{"text":"nil"}},{"name":"expression","ref":"MemberAccessExprSyntax","value":{"text":"MemberAccessExprSyntax"}},{"name":"unexpectedAfterExpression","value":{"text":"nil"}}],"type":"pattern","id":271,"range":{"endColumn":18,"graphemeStartColumn":14,"startColumn":14,"startRow":38,"graphemeEndColumn":18,"endRow":38},"parent":270,"text":"ExpressionPattern"},{"structure":[{"name":"unexpectedBeforeBase","value":{"text":"nil"}},{"name":"base","value":{"text":"nil"}},{"name":"unexpectedBetweenBaseAndPeriod","value":{"text":"nil"}},{"name":"period","value":{"text":".","kind":"period"}},{"name":"unexpectedBetweenPeriodAndDeclName","value":{"text":"nil"}},{"ref":"DeclReferenceExprSyntax","name":"declName","value":{"text":"DeclReferenceExprSyntax"}},{"name":"unexpectedAfterDeclName","value":{"text":"nil"}}],"type":"expr","id":272,"range":{"graphemeStartColumn":14,"graphemeEndColumn":18,"endRow":38,"endColumn":18,"startColumn":14,"startRow":38},"parent":271,"text":"MemberAccessExpr"},{"token":{"kind":"period","leadingTrivia":"","trailingTrivia":""},"range":{"endRow":38,"graphemeStartColumn":14,"startColumn":14,"startRow":38,"graphemeEndColumn":15,"endColumn":15},"structure":[],"id":273,"text":".","type":"other","parent":272},{"id":274,"parent":272,"range":{"graphemeEndColumn":18,"endColumn":18,"startColumn":15,"graphemeStartColumn":15,"startRow":38,"endRow":38},"text":"DeclReferenceExpr","type":"expr","structure":[{"name":"unexpectedBeforeBaseName","value":{"text":"nil"}},{"name":"baseName","value":{"text":"ace","kind":"identifier("ace")"}},{"name":"unexpectedBetweenBaseNameAndArgumentNames","value":{"text":"nil"}},{"name":"argumentNames","value":{"text":"nil"}},{"name":"unexpectedAfterArgumentNames","value":{"text":"nil"}}]},{"token":{"kind":"identifier("ace")","leadingTrivia":"","trailingTrivia":""},"range":{"endRow":38,"endColumn":18,"graphemeEndColumn":18,"startRow":38,"startColumn":15,"graphemeStartColumn":15},"structure":[],"id":275,"text":"ace","parent":274,"type":"other"},{"token":{"kind":"colon","leadingTrivia":"","trailingTrivia":"␣<\/span>"},"range":{"endRow":38,"endColumn":19,"graphemeEndColumn":19,"startRow":38,"startColumn":18,"graphemeStartColumn":18},"structure":[],"id":276,"text":":","parent":267,"type":"other"},{"id":277,"parent":266,"range":{"endRow":38,"endColumn":30,"graphemeEndColumn":30,"startRow":38,"startColumn":20,"graphemeStartColumn":20},"text":"CodeBlockItemList","type":"collection","structure":[{"name":"Element","value":{"text":"CodeBlockItemSyntax"}},{"name":"Count","value":{"text":"1"}}]},{"id":278,"parent":277,"range":{"graphemeStartColumn":20,"startColumn":20,"endColumn":30,"endRow":38,"graphemeEndColumn":30,"startRow":38},"text":"CodeBlockItem","type":"other","structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeItem"},{"value":{"text":"ReturnStmtSyntax"},"name":"item","ref":"ReturnStmtSyntax"},{"value":{"text":"nil"},"name":"unexpectedBetweenItemAndSemicolon"},{"value":{"text":"nil"},"name":"semicolon"},{"value":{"text":"nil"},"name":"unexpectedAfterSemicolon"}]},{"id":279,"parent":278,"range":{"startRow":38,"graphemeStartColumn":20,"endRow":38,"graphemeEndColumn":30,"startColumn":20,"endColumn":30},"text":"ReturnStmt","type":"other","structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeReturnKeyword"},{"value":{"kind":"keyword(SwiftSyntax.Keyword.return)","text":"return"},"name":"returnKeyword"},{"value":{"text":"nil"},"name":"unexpectedBetweenReturnKeywordAndExpression"},{"value":{"text":"StringLiteralExprSyntax"},"ref":"StringLiteralExprSyntax","name":"expression"},{"value":{"text":"nil"},"name":"unexpectedAfterExpression"}]},{"token":{"kind":"keyword(SwiftSyntax.Keyword.return)","trailingTrivia":"␣<\/span>","leadingTrivia":""},"range":{"endRow":38,"startColumn":20,"startRow":38,"graphemeEndColumn":26,"graphemeStartColumn":20,"endColumn":26},"structure":[],"id":280,"text":"return","parent":279,"type":"other"},{"id":281,"text":"StringLiteralExpr","parent":279,"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeOpeningPounds"},{"value":{"text":"nil"},"name":"openingPounds"},{"value":{"text":"nil"},"name":"unexpectedBetweenOpeningPoundsAndOpeningQuote"},{"value":{"kind":"stringQuote","text":"""},"name":"openingQuote"},{"value":{"text":"nil"},"name":"unexpectedBetweenOpeningQuoteAndSegments"},{"value":{"text":"StringLiteralSegmentListSyntax"},"ref":"StringLiteralSegmentListSyntax","name":"segments"},{"value":{"text":"nil"},"name":"unexpectedBetweenSegmentsAndClosingQuote"},{"value":{"text":""","kind":"stringQuote"},"name":"closingQuote"},{"value":{"text":"nil"},"name":"unexpectedBetweenClosingQuoteAndClosingPounds"},{"value":{"text":"nil"},"name":"closingPounds"},{"value":{"text":"nil"},"name":"unexpectedAfterClosingPounds"}],"type":"expr","range":{"endRow":38,"startColumn":27,"startRow":38,"graphemeEndColumn":30,"graphemeStartColumn":27,"endColumn":30}},{"token":{"trailingTrivia":"","leadingTrivia":"","kind":"stringQuote"},"range":{"startRow":38,"graphemeStartColumn":27,"endColumn":28,"startColumn":27,"endRow":38,"graphemeEndColumn":28},"structure":[],"id":282,"text":""","type":"other","parent":281},{"text":"StringLiteralSegmentList","range":{"startRow":38,"graphemeStartColumn":28,"endColumn":29,"startColumn":28,"endRow":38,"graphemeEndColumn":29},"structure":[{"value":{"text":"Element"},"name":"Element"},{"value":{"text":"1"},"name":"Count"}],"id":283,"type":"collection","parent":281},{"text":"StringSegment","range":{"endRow":38,"startColumn":28,"endColumn":29,"startRow":38,"graphemeEndColumn":29,"graphemeStartColumn":28},"structure":[{"name":"unexpectedBeforeContent","value":{"text":"nil"}},{"name":"content","value":{"kind":"stringSegment("A")","text":"A"}},{"name":"unexpectedAfterContent","value":{"text":"nil"}}],"id":284,"type":"other","parent":283},{"token":{"leadingTrivia":"","trailingTrivia":"","kind":"stringSegment("A")"},"id":285,"parent":284,"structure":[],"type":"other","text":"A","range":{"endColumn":29,"startRow":38,"startColumn":28,"graphemeStartColumn":28,"endRow":38,"graphemeEndColumn":29}},{"token":{"leadingTrivia":"","trailingTrivia":"","kind":"stringQuote"},"id":286,"parent":281,"structure":[],"type":"other","text":""","range":{"endColumn":30,"startRow":38,"startColumn":29,"graphemeStartColumn":29,"endRow":38,"graphemeEndColumn":30}},{"text":"SwitchCase","range":{"endColumn":38,"startRow":39,"startColumn":9,"graphemeStartColumn":9,"endRow":39,"graphemeEndColumn":38},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeAttribute"},{"value":{"text":"nil"},"name":"attribute"},{"value":{"text":"nil"},"name":"unexpectedBetweenAttributeAndLabel"},{"value":{"text":"SwitchDefaultLabelSyntax"},"name":"label","ref":"SwitchDefaultLabelSyntax"},{"value":{"text":"nil"},"name":"unexpectedBetweenLabelAndStatements"},{"value":{"text":"CodeBlockItemListSyntax"},"name":"statements","ref":"CodeBlockItemListSyntax"},{"value":{"text":"nil"},"name":"unexpectedAfterStatements"}],"id":287,"type":"other","parent":202},{"id":288,"text":"SwitchDefaultLabel","parent":287,"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeDefaultKeyword"},{"value":{"text":"default","kind":"keyword(SwiftSyntax.Keyword.default)"},"name":"defaultKeyword"},{"value":{"text":"nil"},"name":"unexpectedBetweenDefaultKeywordAndColon"},{"value":{"kind":"colon","text":":"},"name":"colon"},{"value":{"text":"nil"},"name":"unexpectedAfterColon"}],"type":"other","range":{"endColumn":17,"startRow":39,"startColumn":9,"endRow":39,"graphemeStartColumn":9,"graphemeEndColumn":17}},{"token":{"leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>","kind":"keyword(SwiftSyntax.Keyword.default)","trailingTrivia":""},"id":289,"parent":288,"structure":[],"type":"other","text":"default","range":{"endRow":39,"endColumn":16,"graphemeStartColumn":9,"graphemeEndColumn":16,"startColumn":9,"startRow":39}},{"token":{"leadingTrivia":"","kind":"colon","trailingTrivia":"␣<\/span>"},"id":290,"parent":288,"structure":[],"type":"other","text":":","range":{"endRow":39,"endColumn":17,"graphemeStartColumn":16,"graphemeEndColumn":17,"startColumn":16,"startRow":39}},{"id":291,"text":"CodeBlockItemList","parent":287,"structure":[{"name":"Element","value":{"text":"CodeBlockItemSyntax"}},{"name":"Count","value":{"text":"1"}}],"type":"collection","range":{"endRow":39,"endColumn":38,"graphemeStartColumn":18,"graphemeEndColumn":38,"startColumn":18,"startRow":39}},{"id":292,"text":"CodeBlockItem","parent":291,"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeItem"},{"value":{"text":"ReturnStmtSyntax"},"ref":"ReturnStmtSyntax","name":"item"},{"value":{"text":"nil"},"name":"unexpectedBetweenItemAndSemicolon"},{"value":{"text":"nil"},"name":"semicolon"},{"value":{"text":"nil"},"name":"unexpectedAfterSemicolon"}],"type":"other","range":{"graphemeEndColumn":38,"startRow":39,"graphemeStartColumn":18,"startColumn":18,"endRow":39,"endColumn":38}},{"id":293,"text":"ReturnStmt","parent":292,"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeReturnKeyword"},{"value":{"text":"return","kind":"keyword(SwiftSyntax.Keyword.return)"},"name":"returnKeyword"},{"value":{"text":"nil"},"name":"unexpectedBetweenReturnKeywordAndExpression"},{"value":{"text":"StringLiteralExprSyntax"},"name":"expression","ref":"StringLiteralExprSyntax"},{"value":{"text":"nil"},"name":"unexpectedAfterExpression"}],"type":"other","range":{"startRow":39,"graphemeStartColumn":18,"endRow":39,"endColumn":38,"startColumn":18,"graphemeEndColumn":38}},{"token":{"leadingTrivia":"","trailingTrivia":"␣<\/span>","kind":"keyword(SwiftSyntax.Keyword.return)"},"id":294,"parent":293,"structure":[],"type":"other","range":{"graphemeStartColumn":18,"startRow":39,"graphemeEndColumn":24,"startColumn":18,"endRow":39,"endColumn":24},"text":"return"},{"parent":293,"id":295,"range":{"graphemeStartColumn":25,"startRow":39,"graphemeEndColumn":38,"startColumn":25,"endRow":39,"endColumn":38},"type":"expr","text":"StringLiteralExpr","structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeOpeningPounds"},{"value":{"text":"nil"},"name":"openingPounds"},{"value":{"text":"nil"},"name":"unexpectedBetweenOpeningPoundsAndOpeningQuote"},{"value":{"text":""","kind":"stringQuote"},"name":"openingQuote"},{"value":{"text":"nil"},"name":"unexpectedBetweenOpeningQuoteAndSegments"},{"value":{"text":"StringLiteralSegmentListSyntax"},"ref":"StringLiteralSegmentListSyntax","name":"segments"},{"value":{"text":"nil"},"name":"unexpectedBetweenSegmentsAndClosingQuote"},{"value":{"text":""","kind":"stringQuote"},"name":"closingQuote"},{"value":{"text":"nil"},"name":"unexpectedBetweenClosingQuoteAndClosingPounds"},{"value":{"text":"nil"},"name":"closingPounds"},{"value":{"text":"nil"},"name":"unexpectedAfterClosingPounds"}]},{"token":{"trailingTrivia":"","leadingTrivia":"","kind":"stringQuote"},"id":296,"parent":295,"structure":[],"type":"other","range":{"graphemeEndColumn":26,"startRow":39,"graphemeStartColumn":25,"startColumn":25,"endRow":39,"endColumn":26},"text":"""},{"parent":295,"id":297,"type":"collection","range":{"graphemeEndColumn":37,"startRow":39,"graphemeStartColumn":26,"startColumn":26,"endRow":39,"endColumn":37},"text":"StringLiteralSegmentList","structure":[{"value":{"text":"Element"},"name":"Element"},{"value":{"text":"3"},"name":"Count"}]},{"parent":297,"id":298,"type":"other","range":{"endColumn":26,"startRow":39,"endRow":39,"graphemeEndColumn":26,"startColumn":26,"graphemeStartColumn":26},"text":"StringSegment","structure":[{"name":"unexpectedBeforeContent","value":{"text":"nil"}},{"name":"content","value":{"text":"","kind":"stringSegment("")"}},{"name":"unexpectedAfterContent","value":{"text":"nil"}}]},{"token":{"kind":"stringSegment("")","leadingTrivia":"","trailingTrivia":""},"id":299,"parent":298,"structure":[],"type":"other","range":{"graphemeStartColumn":26,"startRow":39,"endColumn":26,"startColumn":26,"endRow":39,"graphemeEndColumn":26},"text":""},{"parent":297,"id":300,"type":"other","range":{"graphemeStartColumn":26,"startRow":39,"endColumn":37,"startColumn":26,"endRow":39,"graphemeEndColumn":37},"text":"ExpressionSegment","structure":[{"name":"unexpectedBeforeBackslash","value":{"text":"nil"}},{"name":"backslash","value":{"text":"\\","kind":"backslash"}},{"name":"unexpectedBetweenBackslashAndPounds","value":{"text":"nil"}},{"name":"pounds","value":{"text":"nil"}},{"name":"unexpectedBetweenPoundsAndLeftParen","value":{"text":"nil"}},{"name":"leftParen","value":{"kind":"leftParen","text":"("}},{"name":"unexpectedBetweenLeftParenAndExpressions","value":{"text":"nil"}},{"name":"expressions","value":{"text":"LabeledExprListSyntax"},"ref":"LabeledExprListSyntax"},{"name":"unexpectedBetweenExpressionsAndRightParen","value":{"text":"nil"}},{"name":"rightParen","value":{"kind":"rightParen","text":")"}},{"name":"unexpectedAfterRightParen","value":{"text":"nil"}}]},{"token":{"trailingTrivia":"","kind":"backslash","leadingTrivia":""},"id":301,"parent":300,"structure":[],"type":"other","range":{"graphemeStartColumn":26,"startRow":39,"startColumn":26,"graphemeEndColumn":27,"endRow":39,"endColumn":27},"text":"\\"},{"token":{"trailingTrivia":"","kind":"leftParen","leadingTrivia":""},"id":302,"parent":300,"structure":[],"type":"other","range":{"graphemeStartColumn":27,"startRow":39,"startColumn":27,"graphemeEndColumn":28,"endRow":39,"endColumn":28},"text":"("},{"range":{"graphemeStartColumn":28,"startRow":39,"startColumn":28,"graphemeEndColumn":36,"endRow":39,"endColumn":36},"type":"collection","parent":300,"structure":[{"value":{"text":"LabeledExprSyntax"},"name":"Element"},{"value":{"text":"1"},"name":"Count"}],"id":303,"text":"LabeledExprList"},{"range":{"startRow":39,"startColumn":28,"graphemeStartColumn":28,"endRow":39,"endColumn":36,"graphemeEndColumn":36},"type":"other","parent":303,"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeLabel"},{"value":{"text":"nil"},"name":"label"},{"value":{"text":"nil"},"name":"unexpectedBetweenLabelAndColon"},{"value":{"text":"nil"},"name":"colon"},{"value":{"text":"nil"},"name":"unexpectedBetweenColonAndExpression"},{"value":{"text":"DeclReferenceExprSyntax"},"name":"expression","ref":"DeclReferenceExprSyntax"},{"value":{"text":"nil"},"name":"unexpectedBetweenExpressionAndTrailingComma"},{"value":{"text":"nil"},"name":"trailingComma"},{"value":{"text":"nil"},"name":"unexpectedAfterTrailingComma"}],"id":304,"text":"LabeledExpr"},{"parent":304,"text":"DeclReferenceExpr","range":{"startRow":39,"graphemeStartColumn":28,"endColumn":36,"graphemeEndColumn":36,"startColumn":28,"endRow":39},"type":"expr","structure":[{"name":"unexpectedBeforeBaseName","value":{"text":"nil"}},{"name":"baseName","value":{"kind":"identifier("rawValue")","text":"rawValue"}},{"name":"unexpectedBetweenBaseNameAndArgumentNames","value":{"text":"nil"}},{"name":"argumentNames","value":{"text":"nil"}},{"name":"unexpectedAfterArgumentNames","value":{"text":"nil"}}],"id":305},{"token":{"leadingTrivia":"","trailingTrivia":"","kind":"identifier("rawValue")"},"id":306,"parent":305,"structure":[],"type":"other","text":"rawValue","range":{"endColumn":36,"graphemeStartColumn":28,"startRow":39,"endRow":39,"startColumn":28,"graphemeEndColumn":36}},{"token":{"leadingTrivia":"","trailingTrivia":"","kind":"rightParen"},"id":307,"parent":300,"structure":[],"type":"other","text":")","range":{"endColumn":37,"graphemeStartColumn":36,"startRow":39,"endRow":39,"startColumn":36,"graphemeEndColumn":37}},{"parent":297,"text":"StringSegment","range":{"endColumn":37,"graphemeStartColumn":37,"startRow":39,"endRow":39,"startColumn":37,"graphemeEndColumn":37},"type":"other","structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeContent"},{"value":{"text":"","kind":"stringSegment("")"},"name":"content"},{"value":{"text":"nil"},"name":"unexpectedAfterContent"}],"id":308},{"token":{"leadingTrivia":"","trailingTrivia":"","kind":"stringSegment("")"},"id":309,"parent":308,"structure":[],"type":"other","text":"","range":{"endColumn":37,"startColumn":37,"graphemeStartColumn":37,"graphemeEndColumn":37,"endRow":39,"startRow":39}},{"token":{"leadingTrivia":"","trailingTrivia":"","kind":"stringQuote"},"id":310,"parent":295,"structure":[],"type":"other","text":""","range":{"endColumn":38,"startColumn":37,"graphemeStartColumn":37,"graphemeEndColumn":38,"endRow":39,"startRow":39}},{"token":{"leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>","trailingTrivia":"","kind":"rightBrace"},"id":311,"parent":197,"structure":[],"type":"other","text":"}","range":{"endColumn":10,"startColumn":9,"graphemeStartColumn":9,"graphemeEndColumn":10,"endRow":40,"startRow":40}},{"token":{"leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>","trailingTrivia":"","kind":"rightBrace"},"id":312,"parent":192,"structure":[],"type":"other","text":"}","range":{"endColumn":6,"startColumn":5,"graphemeStartColumn":5,"graphemeEndColumn":6,"endRow":41,"startRow":41}},{"token":{"trailingTrivia":"","leadingTrivia":"↲<\/span>","kind":"rightBrace"},"id":313,"parent":68,"structure":[],"type":"other","text":"}","range":{"startColumn":1,"graphemeStartColumn":1,"graphemeEndColumn":2,"endRow":42,"endColumn":2,"startRow":42}},{"type":"other","text":"CodeBlockItem","parent":1,"id":314,"range":{"graphemeStartColumn":1,"startColumn":1,"startRow":45,"endRow":50,"endColumn":2,"graphemeEndColumn":2},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeItem"},{"value":{"text":"EnumDeclSyntax"},"ref":"EnumDeclSyntax","name":"item"},{"value":{"text":"nil"},"name":"unexpectedBetweenItemAndSemicolon"},{"value":{"text":"nil"},"name":"semicolon"},{"value":{"text":"nil"},"name":"unexpectedAfterSemicolon"}]},{"type":"decl","text":"EnumDecl","parent":314,"id":315,"range":{"startRow":45,"startColumn":1,"endColumn":2,"graphemeStartColumn":1,"endRow":50,"graphemeEndColumn":2},"structure":[{"name":"unexpectedBeforeAttributes","value":{"text":"nil"}},{"name":"attributes","value":{"text":"AttributeListSyntax"},"ref":"AttributeListSyntax"},{"name":"unexpectedBetweenAttributesAndModifiers","value":{"text":"nil"}},{"name":"modifiers","value":{"text":"DeclModifierListSyntax"},"ref":"DeclModifierListSyntax"},{"name":"unexpectedBetweenModifiersAndEnumKeyword","value":{"text":"nil"}},{"name":"enumKeyword","value":{"kind":"keyword(SwiftSyntax.Keyword.enum)","text":"enum"}},{"name":"unexpectedBetweenEnumKeywordAndName","value":{"text":"nil"}},{"name":"name","value":{"kind":"identifier("Suit")","text":"Suit"}},{"name":"unexpectedBetweenNameAndGenericParameterClause","value":{"text":"nil"}},{"name":"genericParameterClause","value":{"text":"nil"}},{"name":"unexpectedBetweenGenericParameterClauseAndInheritanceClause","value":{"text":"nil"}},{"name":"inheritanceClause","value":{"text":"InheritanceClauseSyntax"},"ref":"InheritanceClauseSyntax"},{"name":"unexpectedBetweenInheritanceClauseAndGenericWhereClause","value":{"text":"nil"}},{"name":"genericWhereClause","value":{"text":"nil"}},{"name":"unexpectedBetweenGenericWhereClauseAndMemberBlock","value":{"text":"nil"}},{"ref":"MemberBlockSyntax","name":"memberBlock","value":{"text":"MemberBlockSyntax"}},{"name":"unexpectedAfterMemberBlock","value":{"text":"nil"}}]},{"type":"collection","structure":[{"value":{"text":"Element"},"name":"Element"},{"value":{"text":"0"},"name":"Count"}],"range":{"startColumn":2,"startRow":42,"graphemeEndColumn":2,"endRow":42,"endColumn":2,"graphemeStartColumn":2},"parent":315,"text":"AttributeList","id":316},{"type":"collection","structure":[{"name":"Element","value":{"text":"DeclModifierSyntax"}},{"name":"Count","value":{"text":"0"}}],"range":{"endColumn":2,"graphemeEndColumn":2,"startRow":42,"startColumn":2,"graphemeStartColumn":2,"endRow":42},"parent":315,"text":"DeclModifierList","id":317},{"token":{"leadingTrivia":"↲<\/span>↲<\/span>\/\/\/␣<\/span>Represents␣<\/span>the␣<\/span>four␣<\/span>suits␣<\/span>in␣<\/span>a␣<\/span>standard␣<\/span>deck␣<\/span>of␣<\/span>cards<\/span>↲<\/span>","kind":"keyword(SwiftSyntax.Keyword.enum)","trailingTrivia":"␣<\/span>"},"id":318,"parent":315,"structure":[],"type":"other","range":{"startColumn":1,"endColumn":5,"graphemeEndColumn":5,"graphemeStartColumn":1,"startRow":45,"endRow":45},"text":"enum"},{"token":{"leadingTrivia":"","kind":"identifier("Suit")","trailingTrivia":""},"id":319,"parent":315,"structure":[],"type":"other","range":{"startColumn":6,"endColumn":10,"graphemeEndColumn":10,"graphemeStartColumn":6,"startRow":45,"endRow":45},"text":"Suit"},{"type":"other","structure":[{"name":"unexpectedBeforeColon","value":{"text":"nil"}},{"name":"colon","value":{"kind":"colon","text":":"}},{"name":"unexpectedBetweenColonAndInheritedTypes","value":{"text":"nil"}},{"ref":"InheritedTypeListSyntax","name":"inheritedTypes","value":{"text":"InheritedTypeListSyntax"}},{"name":"unexpectedAfterInheritedTypes","value":{"text":"nil"}}],"range":{"startColumn":10,"endColumn":32,"graphemeEndColumn":32,"graphemeStartColumn":10,"startRow":45,"endRow":45},"parent":315,"text":"InheritanceClause","id":320},{"token":{"kind":"colon","trailingTrivia":"␣<\/span>","leadingTrivia":""},"id":321,"parent":320,"structure":[],"type":"other","range":{"startRow":45,"startColumn":10,"graphemeStartColumn":10,"endColumn":11,"graphemeEndColumn":11,"endRow":45},"text":":"},{"id":322,"range":{"startRow":45,"startColumn":12,"graphemeStartColumn":12,"endColumn":32,"graphemeEndColumn":32,"endRow":45},"type":"collection","text":"InheritedTypeList","structure":[{"name":"Element","value":{"text":"InheritedTypeSyntax"}},{"name":"Count","value":{"text":"2"}}],"parent":320},{"id":323,"range":{"endColumn":19,"startRow":45,"startColumn":12,"graphemeStartColumn":12,"graphemeEndColumn":19,"endRow":45},"type":"other","text":"InheritedType","structure":[{"name":"unexpectedBeforeType","value":{"text":"nil"}},{"name":"type","ref":"IdentifierTypeSyntax","value":{"text":"IdentifierTypeSyntax"}},{"name":"unexpectedBetweenTypeAndTrailingComma","value":{"text":"nil"}},{"name":"trailingComma","value":{"kind":"comma","text":","}},{"name":"unexpectedAfterTrailingComma","value":{"text":"nil"}}],"parent":322},{"id":324,"range":{"graphemeEndColumn":18,"endRow":45,"graphemeStartColumn":12,"startRow":45,"endColumn":18,"startColumn":12},"type":"type","text":"IdentifierType","structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeName"},{"value":{"kind":"identifier("String")","text":"String"},"name":"name"},{"value":{"text":"nil"},"name":"unexpectedBetweenNameAndGenericArgumentClause"},{"value":{"text":"nil"},"name":"genericArgumentClause"},{"value":{"text":"nil"},"name":"unexpectedAfterGenericArgumentClause"}],"parent":323},{"token":{"kind":"identifier("String")","trailingTrivia":"","leadingTrivia":""},"id":325,"parent":324,"structure":[],"type":"other","range":{"endColumn":18,"endRow":45,"graphemeStartColumn":12,"startRow":45,"startColumn":12,"graphemeEndColumn":18},"text":"String"},{"token":{"trailingTrivia":"␣<\/span>","kind":"comma","leadingTrivia":""},"id":326,"parent":323,"structure":[],"type":"other","text":",","range":{"endRow":45,"graphemeEndColumn":19,"startRow":45,"startColumn":18,"graphemeStartColumn":18,"endColumn":19}},{"type":"other","structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeType"},{"value":{"text":"IdentifierTypeSyntax"},"name":"type","ref":"IdentifierTypeSyntax"},{"value":{"text":"nil"},"name":"unexpectedBetweenTypeAndTrailingComma"},{"value":{"text":"nil"},"name":"trailingComma"},{"value":{"text":"nil"},"name":"unexpectedAfterTrailingComma"}],"parent":322,"text":"InheritedType","id":327,"range":{"endRow":45,"graphemeEndColumn":32,"startRow":45,"startColumn":20,"graphemeStartColumn":20,"endColumn":32}},{"type":"type","structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeName"},{"value":{"text":"CaseIterable","kind":"identifier("CaseIterable")"},"name":"name"},{"value":{"text":"nil"},"name":"unexpectedBetweenNameAndGenericArgumentClause"},{"value":{"text":"nil"},"name":"genericArgumentClause"},{"value":{"text":"nil"},"name":"unexpectedAfterGenericArgumentClause"}],"parent":327,"text":"IdentifierType","id":328,"range":{"endRow":45,"endColumn":32,"startRow":45,"startColumn":20,"graphemeStartColumn":20,"graphemeEndColumn":32}},{"structure":[],"text":"CaseIterable","parent":328,"id":329,"range":{"startColumn":20,"graphemeEndColumn":32,"graphemeStartColumn":20,"endRow":45,"startRow":45,"endColumn":32},"token":{"leadingTrivia":"","kind":"identifier("CaseIterable")","trailingTrivia":"␣<\/span>"},"type":"other"},{"type":"other","structure":[{"name":"unexpectedBeforeLeftBrace","value":{"text":"nil"}},{"name":"leftBrace","value":{"text":"{","kind":"leftBrace"}},{"name":"unexpectedBetweenLeftBraceAndMembers","value":{"text":"nil"}},{"value":{"text":"MemberBlockItemListSyntax"},"name":"members","ref":"MemberBlockItemListSyntax"},{"value":{"text":"nil"},"name":"unexpectedBetweenMembersAndRightBrace"},{"value":{"text":"}","kind":"rightBrace"},"name":"rightBrace"},{"value":{"text":"nil"},"name":"unexpectedAfterRightBrace"}],"parent":315,"text":"MemberBlock","id":330,"range":{"startColumn":33,"graphemeEndColumn":2,"graphemeStartColumn":33,"endRow":50,"startRow":45,"endColumn":2}},{"type":"other","text":"{","parent":330,"range":{"startRow":45,"graphemeStartColumn":33,"endColumn":34,"endRow":45,"graphemeEndColumn":34,"startColumn":33},"id":331,"token":{"kind":"leftBrace","leadingTrivia":"","trailingTrivia":""},"structure":[]},{"text":"MemberBlockItemList","range":{"startRow":46,"graphemeStartColumn":5,"endColumn":24,"endRow":49,"graphemeEndColumn":22,"startColumn":5},"parent":330,"structure":[{"value":{"text":"MemberBlockItemSyntax"},"name":"Element"},{"value":{"text":"4"},"name":"Count"}],"type":"collection","id":332},{"text":"MemberBlockItem","range":{"startRow":46,"endColumn":24,"startColumn":5,"graphemeStartColumn":5,"endRow":46,"graphemeEndColumn":22},"parent":332,"structure":[{"name":"unexpectedBeforeDecl","value":{"text":"nil"}},{"name":"decl","value":{"text":"EnumCaseDeclSyntax"},"ref":"EnumCaseDeclSyntax"},{"name":"unexpectedBetweenDeclAndSemicolon","value":{"text":"nil"}},{"name":"semicolon","value":{"text":"nil"}},{"name":"unexpectedAfterSemicolon","value":{"text":"nil"}}],"type":"other","id":333},{"text":"EnumCaseDecl","range":{"graphemeEndColumn":22,"endRow":46,"startColumn":5,"graphemeStartColumn":5,"startRow":46,"endColumn":24},"parent":333,"structure":[{"name":"unexpectedBeforeAttributes","value":{"text":"nil"}},{"name":"attributes","value":{"text":"AttributeListSyntax"},"ref":"AttributeListSyntax"},{"name":"unexpectedBetweenAttributesAndModifiers","value":{"text":"nil"}},{"ref":"DeclModifierListSyntax","name":"modifiers","value":{"text":"DeclModifierListSyntax"}},{"name":"unexpectedBetweenModifiersAndCaseKeyword","value":{"text":"nil"}},{"name":"caseKeyword","value":{"text":"case","kind":"keyword(SwiftSyntax.Keyword.case)"}},{"name":"unexpectedBetweenCaseKeywordAndElements","value":{"text":"nil"}},{"ref":"EnumCaseElementListSyntax","name":"elements","value":{"text":"EnumCaseElementListSyntax"}},{"name":"unexpectedAfterElements","value":{"text":"nil"}}],"type":"decl","id":334},{"parent":334,"text":"AttributeList","range":{"startColumn":34,"startRow":45,"endRow":45,"endColumn":34,"graphemeEndColumn":34,"graphemeStartColumn":34},"id":335,"structure":[{"value":{"text":"Element"},"name":"Element"},{"value":{"text":"0"},"name":"Count"}],"type":"collection"},{"parent":334,"text":"DeclModifierList","range":{"startColumn":34,"endColumn":34,"endRow":45,"startRow":45,"graphemeStartColumn":34,"graphemeEndColumn":34},"id":336,"structure":[{"value":{"text":"DeclModifierSyntax"},"name":"Element"},{"value":{"text":"0"},"name":"Count"}],"type":"collection"},{"type":"other","text":"case","parent":334,"range":{"graphemeEndColumn":9,"graphemeStartColumn":5,"endColumn":9,"startColumn":5,"endRow":46,"startRow":46},"id":337,"token":{"leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>","kind":"keyword(SwiftSyntax.Keyword.case)","trailingTrivia":"␣<\/span>"},"structure":[]},{"parent":334,"text":"EnumCaseElementList","range":{"graphemeEndColumn":22,"graphemeStartColumn":10,"endColumn":24,"startColumn":10,"endRow":46,"startRow":46},"id":338,"structure":[{"name":"Element","value":{"text":"EnumCaseElementSyntax"}},{"name":"Count","value":{"text":"1"}}],"type":"collection"},{"parent":338,"text":"EnumCaseElement","range":{"graphemeEndColumn":22,"startRow":46,"endColumn":24,"graphemeStartColumn":10,"startColumn":10,"endRow":46},"id":339,"structure":[{"name":"unexpectedBeforeName","value":{"text":"nil"}},{"name":"name","value":{"kind":"identifier("hearts")","text":"hearts"}},{"name":"unexpectedBetweenNameAndParameterClause","value":{"text":"nil"}},{"name":"parameterClause","value":{"text":"nil"}},{"name":"unexpectedBetweenParameterClauseAndRawValue","value":{"text":"nil"}},{"name":"rawValue","ref":"InitializerClauseSyntax","value":{"text":"InitializerClauseSyntax"}},{"name":"unexpectedBetweenRawValueAndTrailingComma","value":{"text":"nil"}},{"name":"trailingComma","value":{"text":"nil"}},{"name":"unexpectedAfterTrailingComma","value":{"text":"nil"}}],"type":"other"},{"type":"other","text":"hearts","parent":339,"range":{"endRow":46,"endColumn":16,"graphemeStartColumn":10,"startColumn":10,"startRow":46,"graphemeEndColumn":16},"id":340,"token":{"kind":"identifier("hearts")","leadingTrivia":"","trailingTrivia":"␣<\/span>"},"structure":[]},{"range":{"endRow":46,"endColumn":24,"graphemeStartColumn":17,"startColumn":17,"startRow":46,"graphemeEndColumn":22},"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeEqual"},{"value":{"kind":"equal","text":"="},"name":"equal"},{"value":{"text":"nil"},"name":"unexpectedBetweenEqualAndValue"},{"value":{"text":"StringLiteralExprSyntax"},"name":"value","ref":"StringLiteralExprSyntax"},{"value":{"text":"nil"},"name":"unexpectedAfterValue"}],"parent":339,"type":"other","id":341,"text":"InitializerClause"},{"type":"other","text":"=","parent":341,"range":{"startRow":46,"startColumn":17,"graphemeStartColumn":17,"graphemeEndColumn":18,"endColumn":18,"endRow":46},"id":342,"token":{"leadingTrivia":"","kind":"equal","trailingTrivia":"␣<\/span>"},"structure":[]},{"range":{"startRow":46,"startColumn":19,"graphemeStartColumn":19,"graphemeEndColumn":22,"endColumn":24,"endRow":46},"structure":[{"name":"unexpectedBeforeOpeningPounds","value":{"text":"nil"}},{"value":{"text":"nil"},"name":"openingPounds"},{"value":{"text":"nil"},"name":"unexpectedBetweenOpeningPoundsAndOpeningQuote"},{"value":{"kind":"stringQuote","text":"""},"name":"openingQuote"},{"value":{"text":"nil"},"name":"unexpectedBetweenOpeningQuoteAndSegments"},{"value":{"text":"StringLiteralSegmentListSyntax"},"ref":"StringLiteralSegmentListSyntax","name":"segments"},{"value":{"text":"nil"},"name":"unexpectedBetweenSegmentsAndClosingQuote"},{"value":{"kind":"stringQuote","text":"""},"name":"closingQuote"},{"value":{"text":"nil"},"name":"unexpectedBetweenClosingQuoteAndClosingPounds"},{"value":{"text":"nil"},"name":"closingPounds"},{"value":{"text":"nil"},"name":"unexpectedAfterClosingPounds"}],"parent":341,"type":"expr","id":343,"text":"StringLiteralExpr"},{"structure":[],"text":""","parent":343,"range":{"startRow":46,"startColumn":19,"graphemeStartColumn":19,"graphemeEndColumn":20,"endRow":46,"endColumn":20},"id":344,"token":{"leadingTrivia":"","trailingTrivia":"","kind":"stringQuote"},"type":"other"},{"range":{"startRow":46,"startColumn":20,"graphemeStartColumn":20,"graphemeEndColumn":21,"endRow":46,"endColumn":23},"parent":343,"id":345,"text":"StringLiteralSegmentList","type":"collection","structure":[{"name":"Element","value":{"text":"Element"}},{"name":"Count","value":{"text":"1"}}]},{"range":{"graphemeStartColumn":20,"graphemeEndColumn":21,"endRow":46,"startColumn":20,"endColumn":23,"startRow":46},"parent":345,"id":346,"text":"StringSegment","type":"other","structure":[{"name":"unexpectedBeforeContent","value":{"text":"nil"}},{"name":"content","value":{"kind":"stringSegment("♥")","text":"♥"}},{"name":"unexpectedAfterContent","value":{"text":"nil"}}]},{"type":"other","text":"♥","parent":346,"id":347,"range":{"startRow":46,"startColumn":20,"endColumn":23,"graphemeEndColumn":21,"graphemeStartColumn":20,"endRow":46},"token":{"leadingTrivia":"","kind":"stringSegment("♥")","trailingTrivia":""},"structure":[]},{"type":"other","text":""","parent":343,"id":348,"range":{"startRow":46,"startColumn":23,"endColumn":24,"graphemeEndColumn":22,"graphemeStartColumn":21,"endRow":46},"token":{"leadingTrivia":"","kind":"stringQuote","trailingTrivia":""},"structure":[]},{"id":349,"range":{"startRow":47,"startColumn":5,"endColumn":26,"graphemeEndColumn":24,"graphemeStartColumn":5,"endRow":47},"structure":[{"name":"unexpectedBeforeDecl","value":{"text":"nil"}},{"ref":"EnumCaseDeclSyntax","name":"decl","value":{"text":"EnumCaseDeclSyntax"}},{"name":"unexpectedBetweenDeclAndSemicolon","value":{"text":"nil"}},{"name":"semicolon","value":{"text":"nil"}},{"name":"unexpectedAfterSemicolon","value":{"text":"nil"}}],"type":"other","parent":332,"text":"MemberBlockItem"},{"id":350,"range":{"endColumn":26,"startRow":47,"graphemeStartColumn":5,"endRow":47,"graphemeEndColumn":24,"startColumn":5},"structure":[{"name":"unexpectedBeforeAttributes","value":{"text":"nil"}},{"ref":"AttributeListSyntax","name":"attributes","value":{"text":"AttributeListSyntax"}},{"name":"unexpectedBetweenAttributesAndModifiers","value":{"text":"nil"}},{"ref":"DeclModifierListSyntax","name":"modifiers","value":{"text":"DeclModifierListSyntax"}},{"name":"unexpectedBetweenModifiersAndCaseKeyword","value":{"text":"nil"}},{"name":"caseKeyword","value":{"kind":"keyword(SwiftSyntax.Keyword.case)","text":"case"}},{"name":"unexpectedBetweenCaseKeywordAndElements","value":{"text":"nil"}},{"ref":"EnumCaseElementListSyntax","name":"elements","value":{"text":"EnumCaseElementListSyntax"}},{"name":"unexpectedAfterElements","value":{"text":"nil"}}],"type":"decl","parent":349,"text":"EnumCaseDecl"},{"range":{"graphemeStartColumn":22,"graphemeEndColumn":22,"endRow":46,"endColumn":24,"startRow":46,"startColumn":24},"text":"AttributeList","parent":350,"type":"collection","structure":[{"value":{"text":"Element"},"name":"Element"},{"value":{"text":"0"},"name":"Count"}],"id":351},{"range":{"endRow":46,"startRow":46,"startColumn":24,"graphemeStartColumn":22,"endColumn":24,"graphemeEndColumn":22},"text":"DeclModifierList","parent":350,"type":"collection","structure":[{"name":"Element","value":{"text":"DeclModifierSyntax"}},{"name":"Count","value":{"text":"0"}}],"id":352},{"structure":[],"text":"case","parent":350,"range":{"graphemeStartColumn":5,"startColumn":5,"startRow":47,"endRow":47,"endColumn":9,"graphemeEndColumn":9},"id":353,"token":{"leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>","kind":"keyword(SwiftSyntax.Keyword.case)","trailingTrivia":"␣<\/span>"},"type":"other"},{"range":{"graphemeStartColumn":10,"startColumn":10,"startRow":47,"endRow":47,"endColumn":26,"graphemeEndColumn":24},"text":"EnumCaseElementList","parent":350,"type":"collection","structure":[{"value":{"text":"EnumCaseElementSyntax"},"name":"Element"},{"value":{"text":"1"},"name":"Count"}],"id":354},{"range":{"startRow":47,"startColumn":10,"graphemeEndColumn":24,"endRow":47,"graphemeStartColumn":10,"endColumn":26},"text":"EnumCaseElement","parent":354,"type":"other","structure":[{"name":"unexpectedBeforeName","value":{"text":"nil"}},{"name":"name","value":{"kind":"identifier("diamonds")","text":"diamonds"}},{"name":"unexpectedBetweenNameAndParameterClause","value":{"text":"nil"}},{"name":"parameterClause","value":{"text":"nil"}},{"name":"unexpectedBetweenParameterClauseAndRawValue","value":{"text":"nil"}},{"ref":"InitializerClauseSyntax","name":"rawValue","value":{"text":"InitializerClauseSyntax"}},{"name":"unexpectedBetweenRawValueAndTrailingComma","value":{"text":"nil"}},{"name":"trailingComma","value":{"text":"nil"}},{"name":"unexpectedAfterTrailingComma","value":{"text":"nil"}}],"id":355},{"type":"other","text":"diamonds","parent":355,"id":356,"range":{"startColumn":10,"endRow":47,"graphemeEndColumn":18,"graphemeStartColumn":10,"endColumn":18,"startRow":47},"token":{"kind":"identifier("diamonds")","trailingTrivia":"␣<\/span>","leadingTrivia":""},"structure":[]},{"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeEqual"},{"value":{"text":"=","kind":"equal"},"name":"equal"},{"value":{"text":"nil"},"name":"unexpectedBetweenEqualAndValue"},{"ref":"StringLiteralExprSyntax","value":{"text":"StringLiteralExprSyntax"},"name":"value"},{"value":{"text":"nil"},"name":"unexpectedAfterValue"}],"parent":355,"text":"InitializerClause","type":"other","id":357,"range":{"startColumn":19,"endRow":47,"graphemeEndColumn":24,"graphemeStartColumn":19,"endColumn":26,"startRow":47}},{"type":"other","text":"=","parent":357,"id":358,"range":{"endRow":47,"startRow":47,"startColumn":19,"endColumn":20,"graphemeEndColumn":20,"graphemeStartColumn":19},"token":{"kind":"equal","leadingTrivia":"","trailingTrivia":"␣<\/span>"},"structure":[]},{"structure":[{"name":"unexpectedBeforeOpeningPounds","value":{"text":"nil"}},{"name":"openingPounds","value":{"text":"nil"}},{"name":"unexpectedBetweenOpeningPoundsAndOpeningQuote","value":{"text":"nil"}},{"name":"openingQuote","value":{"text":""","kind":"stringQuote"}},{"name":"unexpectedBetweenOpeningQuoteAndSegments","value":{"text":"nil"}},{"ref":"StringLiteralSegmentListSyntax","name":"segments","value":{"text":"StringLiteralSegmentListSyntax"}},{"name":"unexpectedBetweenSegmentsAndClosingQuote","value":{"text":"nil"}},{"value":{"text":""","kind":"stringQuote"},"name":"closingQuote"},{"value":{"text":"nil"},"name":"unexpectedBetweenClosingQuoteAndClosingPounds"},{"value":{"text":"nil"},"name":"closingPounds"},{"value":{"text":"nil"},"name":"unexpectedAfterClosingPounds"}],"parent":357,"text":"StringLiteralExpr","type":"expr","id":359,"range":{"endRow":47,"startRow":47,"startColumn":21,"endColumn":26,"graphemeEndColumn":24,"graphemeStartColumn":21}},{"type":"other","text":""","parent":359,"range":{"startColumn":21,"startRow":47,"graphemeEndColumn":22,"graphemeStartColumn":21,"endRow":47,"endColumn":22},"id":360,"token":{"kind":"stringQuote","leadingTrivia":"","trailingTrivia":""},"structure":[]},{"range":{"startColumn":22,"startRow":47,"graphemeEndColumn":23,"graphemeStartColumn":22,"endRow":47,"endColumn":25},"structure":[{"name":"Element","value":{"text":"Element"}},{"name":"Count","value":{"text":"1"}}],"text":"StringLiteralSegmentList","parent":359,"type":"collection","id":361},{"range":{"endColumn":25,"startRow":47,"startColumn":22,"graphemeStartColumn":22,"graphemeEndColumn":23,"endRow":47},"structure":[{"name":"unexpectedBeforeContent","value":{"text":"nil"}},{"name":"content","value":{"kind":"stringSegment("♦")","text":"♦"}},{"name":"unexpectedAfterContent","value":{"text":"nil"}}],"text":"StringSegment","parent":361,"type":"other","id":362},{"type":"other","text":"♦","parent":362,"range":{"endRow":47,"graphemeEndColumn":23,"startRow":47,"endColumn":25,"startColumn":22,"graphemeStartColumn":22},"id":363,"token":{"kind":"stringSegment("♦")","leadingTrivia":"","trailingTrivia":""},"structure":[]},{"type":"other","text":""","parent":359,"range":{"endRow":47,"graphemeEndColumn":24,"startRow":47,"endColumn":26,"startColumn":25,"graphemeStartColumn":23},"id":364,"token":{"kind":"stringQuote","leadingTrivia":"","trailingTrivia":""},"structure":[]},{"range":{"endRow":48,"graphemeEndColumn":21,"startRow":48,"endColumn":23,"startColumn":5,"graphemeStartColumn":5},"structure":[{"name":"unexpectedBeforeDecl","value":{"text":"nil"}},{"ref":"EnumCaseDeclSyntax","name":"decl","value":{"text":"EnumCaseDeclSyntax"}},{"name":"unexpectedBetweenDeclAndSemicolon","value":{"text":"nil"}},{"name":"semicolon","value":{"text":"nil"}},{"name":"unexpectedAfterSemicolon","value":{"text":"nil"}}],"text":"MemberBlockItem","parent":332,"type":"other","id":365},{"type":"decl","parent":365,"range":{"startColumn":5,"startRow":48,"endRow":48,"graphemeStartColumn":5,"endColumn":23,"graphemeEndColumn":21},"id":366,"text":"EnumCaseDecl","structure":[{"name":"unexpectedBeforeAttributes","value":{"text":"nil"}},{"name":"attributes","value":{"text":"AttributeListSyntax"},"ref":"AttributeListSyntax"},{"name":"unexpectedBetweenAttributesAndModifiers","value":{"text":"nil"}},{"name":"modifiers","value":{"text":"DeclModifierListSyntax"},"ref":"DeclModifierListSyntax"},{"name":"unexpectedBetweenModifiersAndCaseKeyword","value":{"text":"nil"}},{"name":"caseKeyword","value":{"kind":"keyword(SwiftSyntax.Keyword.case)","text":"case"}},{"name":"unexpectedBetweenCaseKeywordAndElements","value":{"text":"nil"}},{"name":"elements","value":{"text":"EnumCaseElementListSyntax"},"ref":"EnumCaseElementListSyntax"},{"name":"unexpectedAfterElements","value":{"text":"nil"}}]},{"type":"collection","parent":366,"range":{"startRow":47,"graphemeStartColumn":24,"graphemeEndColumn":24,"startColumn":26,"endRow":47,"endColumn":26},"id":367,"text":"AttributeList","structure":[{"value":{"text":"Element"},"name":"Element"},{"value":{"text":"0"},"name":"Count"}]},{"type":"collection","parent":366,"range":{"startRow":47,"endColumn":26,"graphemeEndColumn":24,"endRow":47,"graphemeStartColumn":24,"startColumn":26},"id":368,"text":"DeclModifierList","structure":[{"value":{"text":"DeclModifierSyntax"},"name":"Element"},{"value":{"text":"0"},"name":"Count"}]},{"structure":[],"text":"case","parent":366,"range":{"endRow":48,"endColumn":9,"graphemeStartColumn":5,"graphemeEndColumn":9,"startColumn":5,"startRow":48},"id":369,"token":{"trailingTrivia":"␣<\/span>","leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>","kind":"keyword(SwiftSyntax.Keyword.case)"},"type":"other"},{"text":"EnumCaseElementList","parent":366,"range":{"endRow":48,"endColumn":23,"graphemeStartColumn":10,"graphemeEndColumn":21,"startColumn":10,"startRow":48},"type":"collection","id":370,"structure":[{"name":"Element","value":{"text":"EnumCaseElementSyntax"}},{"name":"Count","value":{"text":"1"}}]},{"text":"EnumCaseElement","parent":370,"range":{"startRow":48,"graphemeStartColumn":10,"startColumn":10,"endRow":48,"graphemeEndColumn":21,"endColumn":23},"type":"other","id":371,"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeName"},{"value":{"text":"clubs","kind":"identifier("clubs")"},"name":"name"},{"value":{"text":"nil"},"name":"unexpectedBetweenNameAndParameterClause"},{"value":{"text":"nil"},"name":"parameterClause"},{"value":{"text":"nil"},"name":"unexpectedBetweenParameterClauseAndRawValue"},{"ref":"InitializerClauseSyntax","value":{"text":"InitializerClauseSyntax"},"name":"rawValue"},{"value":{"text":"nil"},"name":"unexpectedBetweenRawValueAndTrailingComma"},{"value":{"text":"nil"},"name":"trailingComma"},{"value":{"text":"nil"},"name":"unexpectedAfterTrailingComma"}]},{"structure":[],"text":"clubs","parent":371,"range":{"startRow":48,"startColumn":10,"endRow":48,"graphemeEndColumn":15,"graphemeStartColumn":10,"endColumn":15},"id":372,"token":{"trailingTrivia":"␣<\/span>","leadingTrivia":"","kind":"identifier("clubs")"},"type":"other"},{"text":"InitializerClause","parent":371,"range":{"startRow":48,"startColumn":16,"endRow":48,"graphemeEndColumn":21,"graphemeStartColumn":16,"endColumn":23},"type":"other","id":373,"structure":[{"name":"unexpectedBeforeEqual","value":{"text":"nil"}},{"name":"equal","value":{"text":"=","kind":"equal"}},{"name":"unexpectedBetweenEqualAndValue","value":{"text":"nil"}},{"name":"value","value":{"text":"StringLiteralExprSyntax"},"ref":"StringLiteralExprSyntax"},{"name":"unexpectedAfterValue","value":{"text":"nil"}}]},{"type":"other","text":"=","parent":373,"id":374,"range":{"endRow":48,"startRow":48,"endColumn":17,"graphemeEndColumn":17,"graphemeStartColumn":16,"startColumn":16},"token":{"kind":"equal","leadingTrivia":"","trailingTrivia":"␣<\/span>"},"structure":[]},{"id":375,"parent":373,"structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeOpeningPounds"},{"value":{"text":"nil"},"name":"openingPounds"},{"value":{"text":"nil"},"name":"unexpectedBetweenOpeningPoundsAndOpeningQuote"},{"value":{"kind":"stringQuote","text":"""},"name":"openingQuote"},{"value":{"text":"nil"},"name":"unexpectedBetweenOpeningQuoteAndSegments"},{"value":{"text":"StringLiteralSegmentListSyntax"},"ref":"StringLiteralSegmentListSyntax","name":"segments"},{"value":{"text":"nil"},"name":"unexpectedBetweenSegmentsAndClosingQuote"},{"value":{"text":""","kind":"stringQuote"},"name":"closingQuote"},{"value":{"text":"nil"},"name":"unexpectedBetweenClosingQuoteAndClosingPounds"},{"value":{"text":"nil"},"name":"closingPounds"},{"value":{"text":"nil"},"name":"unexpectedAfterClosingPounds"}],"type":"expr","text":"StringLiteralExpr","range":{"endRow":48,"startRow":48,"endColumn":23,"graphemeEndColumn":21,"graphemeStartColumn":18,"startColumn":18}},{"type":"other","text":""","parent":375,"id":376,"range":{"endColumn":19,"startRow":48,"endRow":48,"startColumn":18,"graphemeEndColumn":19,"graphemeStartColumn":18},"token":{"trailingTrivia":"","leadingTrivia":"","kind":"stringQuote"},"structure":[]},{"parent":375,"id":377,"type":"collection","text":"StringLiteralSegmentList","structure":[{"value":{"text":"Element"},"name":"Element"},{"value":{"text":"1"},"name":"Count"}],"range":{"startRow":48,"startColumn":19,"endRow":48,"graphemeEndColumn":20,"graphemeStartColumn":19,"endColumn":22}},{"parent":377,"id":378,"type":"other","text":"StringSegment","structure":[{"name":"unexpectedBeforeContent","value":{"text":"nil"}},{"name":"content","value":{"kind":"stringSegment("♣")","text":"♣"}},{"name":"unexpectedAfterContent","value":{"text":"nil"}}],"range":{"graphemeEndColumn":20,"graphemeStartColumn":19,"startColumn":19,"endColumn":22,"endRow":48,"startRow":48}},{"structure":[],"text":"♣","parent":378,"id":379,"range":{"graphemeEndColumn":20,"startRow":48,"startColumn":19,"graphemeStartColumn":19,"endColumn":22,"endRow":48},"token":{"kind":"stringSegment("♣")","leadingTrivia":"","trailingTrivia":""},"type":"other"},{"structure":[],"text":""","parent":375,"id":380,"range":{"graphemeEndColumn":21,"startRow":48,"startColumn":22,"graphemeStartColumn":20,"endColumn":23,"endRow":48},"token":{"kind":"stringQuote","leadingTrivia":"","trailingTrivia":""},"type":"other"},{"parent":332,"id":381,"type":"other","text":"MemberBlockItem","structure":[{"name":"unexpectedBeforeDecl","value":{"text":"nil"}},{"ref":"EnumCaseDeclSyntax","name":"decl","value":{"text":"EnumCaseDeclSyntax"}},{"name":"unexpectedBetweenDeclAndSemicolon","value":{"text":"nil"}},{"name":"semicolon","value":{"text":"nil"}},{"name":"unexpectedAfterSemicolon","value":{"text":"nil"}}],"range":{"graphemeEndColumn":22,"startRow":49,"startColumn":5,"graphemeStartColumn":5,"endColumn":24,"endRow":49}},{"parent":381,"id":382,"type":"decl","text":"EnumCaseDecl","structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeAttributes"},{"ref":"AttributeListSyntax","value":{"text":"AttributeListSyntax"},"name":"attributes"},{"value":{"text":"nil"},"name":"unexpectedBetweenAttributesAndModifiers"},{"name":"modifiers","value":{"text":"DeclModifierListSyntax"},"ref":"DeclModifierListSyntax"},{"name":"unexpectedBetweenModifiersAndCaseKeyword","value":{"text":"nil"}},{"name":"caseKeyword","value":{"text":"case","kind":"keyword(SwiftSyntax.Keyword.case)"}},{"name":"unexpectedBetweenCaseKeywordAndElements","value":{"text":"nil"}},{"name":"elements","value":{"text":"EnumCaseElementListSyntax"},"ref":"EnumCaseElementListSyntax"},{"name":"unexpectedAfterElements","value":{"text":"nil"}}],"range":{"startRow":49,"endColumn":24,"graphemeStartColumn":5,"startColumn":5,"endRow":49,"graphemeEndColumn":22}},{"parent":382,"structure":[{"name":"Element","value":{"text":"Element"}},{"name":"Count","value":{"text":"0"}}],"id":383,"range":{"graphemeEndColumn":21,"endRow":48,"endColumn":23,"startRow":48,"graphemeStartColumn":21,"startColumn":23},"text":"AttributeList","type":"collection"},{"parent":382,"structure":[{"name":"Element","value":{"text":"DeclModifierSyntax"}},{"name":"Count","value":{"text":"0"}}],"id":384,"range":{"graphemeEndColumn":21,"endRow":48,"startRow":48,"endColumn":23,"startColumn":23,"graphemeStartColumn":21},"text":"DeclModifierList","type":"collection"},{"type":"other","text":"case","parent":382,"id":385,"range":{"endRow":49,"startRow":49,"graphemeEndColumn":9,"graphemeStartColumn":5,"startColumn":5,"endColumn":9},"token":{"kind":"keyword(SwiftSyntax.Keyword.case)","trailingTrivia":"␣<\/span>","leadingTrivia":"↲<\/span>␣<\/span>␣<\/span>␣<\/span>␣<\/span>"},"structure":[]},{"parent":382,"structure":[{"value":{"text":"EnumCaseElementSyntax"},"name":"Element"},{"value":{"text":"1"},"name":"Count"}],"id":386,"range":{"endRow":49,"startRow":49,"graphemeEndColumn":22,"graphemeStartColumn":10,"startColumn":10,"endColumn":24},"text":"EnumCaseElementList","type":"collection"},{"parent":386,"structure":[{"name":"unexpectedBeforeName","value":{"text":"nil"}},{"value":{"kind":"identifier("spades")","text":"spades"},"name":"name"},{"value":{"text":"nil"},"name":"unexpectedBetweenNameAndParameterClause"},{"value":{"text":"nil"},"name":"parameterClause"},{"value":{"text":"nil"},"name":"unexpectedBetweenParameterClauseAndRawValue"},{"value":{"text":"InitializerClauseSyntax"},"name":"rawValue","ref":"InitializerClauseSyntax"},{"value":{"text":"nil"},"name":"unexpectedBetweenRawValueAndTrailingComma"},{"value":{"text":"nil"},"name":"trailingComma"},{"value":{"text":"nil"},"name":"unexpectedAfterTrailingComma"}],"id":387,"range":{"graphemeEndColumn":22,"endRow":49,"graphemeStartColumn":10,"startRow":49,"startColumn":10,"endColumn":24},"text":"EnumCaseElement","type":"other"},{"type":"other","id":388,"range":{"graphemeEndColumn":16,"endRow":49,"startColumn":10,"graphemeStartColumn":10,"startRow":49,"endColumn":16},"text":"spades","structure":[],"token":{"leadingTrivia":"","kind":"identifier("spades")","trailingTrivia":"␣<\/span>"},"parent":387},{"structure":[{"name":"unexpectedBeforeEqual","value":{"text":"nil"}},{"name":"equal","value":{"kind":"equal","text":"="}},{"name":"unexpectedBetweenEqualAndValue","value":{"text":"nil"}},{"name":"value","ref":"StringLiteralExprSyntax","value":{"text":"StringLiteralExprSyntax"}},{"name":"unexpectedAfterValue","value":{"text":"nil"}}],"parent":387,"range":{"graphemeEndColumn":22,"endRow":49,"startColumn":17,"graphemeStartColumn":17,"startRow":49,"endColumn":24},"text":"InitializerClause","type":"other","id":389},{"type":"other","id":390,"range":{"endRow":49,"graphemeEndColumn":18,"startColumn":17,"startRow":49,"graphemeStartColumn":17,"endColumn":18},"text":"=","structure":[],"token":{"kind":"equal","leadingTrivia":"","trailingTrivia":"␣<\/span>"},"parent":389},{"structure":[{"name":"unexpectedBeforeOpeningPounds","value":{"text":"nil"}},{"value":{"text":"nil"},"name":"openingPounds"},{"value":{"text":"nil"},"name":"unexpectedBetweenOpeningPoundsAndOpeningQuote"},{"value":{"text":""","kind":"stringQuote"},"name":"openingQuote"},{"value":{"text":"nil"},"name":"unexpectedBetweenOpeningQuoteAndSegments"},{"value":{"text":"StringLiteralSegmentListSyntax"},"ref":"StringLiteralSegmentListSyntax","name":"segments"},{"value":{"text":"nil"},"name":"unexpectedBetweenSegmentsAndClosingQuote"},{"value":{"text":""","kind":"stringQuote"},"name":"closingQuote"},{"value":{"text":"nil"},"name":"unexpectedBetweenClosingQuoteAndClosingPounds"},{"value":{"text":"nil"},"name":"closingPounds"},{"value":{"text":"nil"},"name":"unexpectedAfterClosingPounds"}],"parent":389,"range":{"endRow":49,"graphemeEndColumn":22,"startColumn":19,"startRow":49,"graphemeStartColumn":19,"endColumn":24},"text":"StringLiteralExpr","type":"expr","id":391},{"type":"other","id":392,"range":{"graphemeEndColumn":20,"graphemeStartColumn":19,"startColumn":19,"endRow":49,"startRow":49,"endColumn":20},"text":""","structure":[],"token":{"kind":"stringQuote","leadingTrivia":"","trailingTrivia":""},"parent":391},{"type":"collection","structure":[{"name":"Element","value":{"text":"Element"}},{"name":"Count","value":{"text":"1"}}],"range":{"graphemeEndColumn":21,"graphemeStartColumn":20,"startColumn":20,"endRow":49,"startRow":49,"endColumn":23},"parent":391,"id":393,"text":"StringLiteralSegmentList"},{"type":"other","structure":[{"value":{"text":"nil"},"name":"unexpectedBeforeContent"},{"value":{"kind":"stringSegment("♠")","text":"♠"},"name":"content"},{"value":{"text":"nil"},"name":"unexpectedAfterContent"}],"range":{"endRow":49,"endColumn":23,"graphemeEndColumn":21,"graphemeStartColumn":20,"startRow":49,"startColumn":20},"parent":393,"id":394,"text":"StringSegment"},{"type":"other","id":395,"range":{"graphemeEndColumn":21,"startColumn":20,"graphemeStartColumn":20,"endRow":49,"startRow":49,"endColumn":23},"text":"♠","structure":[],"token":{"trailingTrivia":"","kind":"stringSegment("♠")","leadingTrivia":""},"parent":394},{"type":"other","id":396,"range":{"graphemeEndColumn":22,"startColumn":23,"graphemeStartColumn":21,"endRow":49,"startRow":49,"endColumn":24},"text":""","structure":[],"token":{"trailingTrivia":"","kind":"stringQuote","leadingTrivia":""},"parent":391},{"type":"other","id":397,"range":{"graphemeEndColumn":2,"startColumn":1,"graphemeStartColumn":1,"endRow":50,"startRow":50,"endColumn":2},"text":"}","structure":[],"token":{"trailingTrivia":"","kind":"rightBrace","leadingTrivia":"↲<\/span>"},"parent":330},{"type":"other","id":398,"range":{"graphemeEndColumn":2,"startColumn":2,"graphemeStartColumn":2,"endRow":50,"startRow":50,"endColumn":2},"text":"","structure":[],"token":{"trailingTrivia":"","kind":"endOfFile","leadingTrivia":""},"parent":0}] diff --git a/Examples/comments/code.swift b/Examples/comments/code.swift new file mode 100644 index 0000000..dff37cb --- /dev/null +++ b/Examples/comments/code.swift @@ -0,0 +1,120 @@ +import Foundation + +// MARK: - Single Line Comments +// This is a basic single-line comment +// You can use it for quick notes or explanations + +// MARK: - Multi-line Comments +/* + This is a multi-line comment + It can span multiple lines + Useful for longer explanations + */ + +// MARK: - Documentation Comments +/// A simple calculator that performs basic arithmetic operations +/// +/// This class provides methods for addition, subtraction, multiplication, +/// and division. It also includes error handling for division by zero. +/// +/// Example usage: +/// ```swift +/// let calc = Calculator() +/// let sum = calc.add(5, 3) // Returns 8 +/// ``` +class Calculator { + /// Adds two numbers together + /// - Parameters: + /// - a: The first number + /// - b: The second number + /// - Returns: The sum of the two numbers + func add(_ a: Int, _ b: Int) -> Int { + return a + b + } + + /// Subtracts the second number from the first + /// - Parameters: + /// - a: The number to subtract from + /// - b: The number to subtract + /// - Returns: The difference between the two numbers + func subtract(_ a: Int, _ b: Int) -> Int { + return a - b + } + + /// Multiplies two numbers + /// - Parameters: + /// - a: The first number + /// - b: The second number + /// - Returns: The product of the two numbers + func multiply(_ a: Int, _ b: Int) -> Int { + return a * b + } + + /// Divides the first number by the second + /// - Parameters: + /// - a: The dividend + /// - b: The divisor + /// - Returns: The quotient of the division + /// - Throws: `CalculatorError.divisionByZero` if the divisor is zero + func divide(_ a: Int, _ b: Int) throws -> Double { + guard b != 0 else { + throw CalculatorError.divisionByZero + } + return Double(a) / Double(b) + } +} + +// MARK: - Error Types +/// Errors that can occur during calculator operations +enum CalculatorError: Error { + /// Thrown when attempting to divide by zero + case divisionByZero +} + +// MARK: - TODO Comments +// TODO: Add support for decimal numbers +// TODO: Implement square root function +// TODO: Add unit tests + +// MARK: - FIXME Comments +// FIXME: Handle negative numbers in division +// FIXME: Add input validation + +// MARK: - MARK Comments +// MARK: - Properties +// MARK: - Initialization +// MARK: - Public Methods +// MARK: - Private Methods + +// MARK: - Section Comments +// ====================== +// Section: Configuration +// ====================== + +// MARK: - Code Organization Comments +// Group: Math Operations +// Category: Arithmetic +// Module: Calculator + +// MARK: - Usage Example +let calculator = Calculator() + +// Example of using documented functions +do { + let sum = calculator.add(10, 5) + print("Sum: \(sum)") // Prints: Sum: 15 + + let difference = calculator.subtract(10, 5) + print("Difference: \(difference)") // Prints: Difference: 5 + + let product = calculator.multiply(10, 5) + print("Product: \(product)") // Prints: Product: 50 + + let quotient = try calculator.divide(10, 5) + print("Quotient: \(quotient)") // Prints: Quotient: 2.0 + + // This will throw an error + let error = try calculator.divide(10, 0) +} catch CalculatorError.divisionByZero { + print("Error: Division by zero is not allowed") +} \ No newline at end of file diff --git a/Examples/concurrency/code.swift b/Examples/concurrency/code.swift new file mode 100644 index 0000000..3c1c73d --- /dev/null +++ b/Examples/concurrency/code.swift @@ -0,0 +1,88 @@ +import Foundation + +// MARK: - Async Functions +func fetchUserData(id: Int) async throws -> String { + // Simulate network delay + try await Task.sleep(nanoseconds: 1_000_000_000) // 1 second + return "User data for ID: \(id)" +} + +func fetchUserPosts(id: Int) async throws -> [String] { + // Simulate network delay + try await Task.sleep(nanoseconds: 2_000_000_000) // 2 seconds + return ["Post 1", "Post 2", "Post 3"] +} + +// MARK: - Async Sequence +struct Countdown: AsyncSequence { + let start: Int + + struct AsyncIterator: AsyncIteratorProtocol { + var count: Int + + mutating func next() async -> Int? { + guard count > 0 else { return nil } + try? await Task.sleep(nanoseconds: 500_000_000) // 0.5 seconds + let current = count + count -= 1 + return current + } + } + + func makeAsyncIterator() -> AsyncIterator { + AsyncIterator(count: start) + } +} + +// MARK: - Task Groups +func fetchMultipleUsers(ids: [Int]) async throws -> [String] { + try await withThrowingTaskGroup(of: String.self) { group in + for id in ids { + group.addTask { + try await fetchUserData(id: id) + } + } + + var results: [String] = [] + for try await result in group { + results.append(result) + } + return results + } +} + +// MARK: - Usage Example +@main +struct ConcurrencyExample { + static func main() async { + do { + // Demonstrate basic async/await + print("Fetching user data...") + let userData = try await fetchUserData(id: 1) + print(userData) + + // Demonstrate concurrent tasks + print("\nFetching user data and posts concurrently...") + async let data = fetchUserData(id: 1) + async let posts = fetchUserPosts(id: 1) + let (fetchedData, fetchedPosts) = try await (data, posts) + print("Data: \(fetchedData)") + print("Posts: \(fetchedPosts)") + + // Demonstrate async sequence + print("\nStarting countdown:") + for await number in Countdown(start: 3) { + print(number) + } + print("Liftoff!") + + // Demonstrate task groups + print("\nFetching multiple users:") + let users = try await fetchMultipleUsers(ids: [1, 2, 3]) + print(users) + + } catch { + print("Error: \(error)") + } + } +} \ No newline at end of file diff --git a/Examples/protocols/code.swift b/Examples/protocols/code.swift new file mode 100644 index 0000000..a7eadfc --- /dev/null +++ b/Examples/protocols/code.swift @@ -0,0 +1,73 @@ +import Foundation + +// MARK: - Protocol Definition +protocol Vehicle { + var numberOfWheels: Int { get } + var brand: String { get } + func start() + func stop() +} + +// MARK: - Protocol Extension +extension Vehicle { + func start() { + print("Starting \(brand) vehicle...") + } + + func stop() { + print("Stopping \(brand) vehicle...") + } +} + +// MARK: - Protocol Composition +protocol Electric { + var batteryLevel: Double { get set } + func charge() +} + +// MARK: - Concrete Types +struct Car: Vehicle { + let numberOfWheels: Int = 4 + let brand: String + + func start() { + print("Starting \(brand) car engine...") + } +} + +struct ElectricCar: Vehicle, Electric { + let numberOfWheels: Int = 4 + let brand: String + var batteryLevel: Double + + func charge() { + print("Charging \(brand) electric car...") + batteryLevel = 100.0 + } +} + +// MARK: - Usage Example +let tesla = ElectricCar(brand: "Tesla", batteryLevel: 75.0) +let toyota = Car(brand: "Toyota") + +// Demonstrate protocol usage +func demonstrateVehicle(_ vehicle: Vehicle) { + print("Vehicle brand: \(vehicle.brand)") + print("Number of wheels: \(vehicle.numberOfWheels)") + vehicle.start() + vehicle.stop() +} + +// Demonstrate protocol composition +func demonstrateElectricVehicle(_ vehicle: Vehicle & Electric) { + demonstrateVehicle(vehicle) + print("Battery level: \(vehicle.batteryLevel)%") + vehicle.charge() +} + +// Test the implementations +print("Testing regular car:") +demonstrateVehicle(toyota) + +print("\nTesting electric car:") +demonstrateElectricVehicle(tesla) \ No newline at end of file diff --git a/Examples/swiftui/code.swift b/Examples/swiftui/code.swift new file mode 100644 index 0000000..2039911 --- /dev/null +++ b/Examples/swiftui/code.swift @@ -0,0 +1,103 @@ +import SwiftUI + +// MARK: - Models +struct TodoItem: Identifiable { + let id = UUID() + var title: String + var isCompleted: Bool +} + +// MARK: - View Models +class TodoListViewModel: ObservableObject { + @Published var items: [TodoItem] = [] + @Published var newItemTitle: String = "" + + func addItem() { + guard !newItemTitle.isEmpty else { return } + items.append(TodoItem(title: newItemTitle, isCompleted: false)) + newItemTitle = "" + } + + func toggleItem(_ item: TodoItem) { + if let index = items.firstIndex(where: { $0.id == item.id }) { + items[index].isCompleted.toggle() + } + } + + func deleteItem(_ item: TodoItem) { + items.removeAll { $0.id == item.id } + } +} + +// MARK: - Views +struct TodoListView: View { + @StateObject private var viewModel = TodoListViewModel() + + var body: some View { + NavigationView { + VStack { + // Add new item + HStack { + TextField("New todo item", text: $viewModel.newItemTitle) + .textFieldStyle(RoundedBorderTextFieldStyle()) + + Button(action: viewModel.addItem) { + Image(systemName: "plus.circle.fill") + .foregroundColor(.blue) + } + } + .padding() + + // List of items + List { + ForEach(viewModel.items) { item in + TodoItemRow(item: item) { + viewModel.toggleItem(item) + } + } + .onDelete { indexSet in + indexSet.forEach { index in + viewModel.deleteItem(viewModel.items[index]) + } + } + } + } + .navigationTitle("Todo List") + } + } +} + +struct TodoItemRow: View { + let item: TodoItem + let onToggle: () -> Void + + var body: some View { + HStack { + Button(action: onToggle) { + Image(systemName: item.isCompleted ? "checkmark.circle.fill" : "circle") + .foregroundColor(item.isCompleted ? .green : .gray) + } + + Text(item.title) + .strikethrough(item.isCompleted) + .foregroundColor(item.isCompleted ? .gray : .primary) + } + } +} + +// MARK: - Preview +struct TodoListView_Previews: PreviewProvider { + static var previews: some View { + TodoListView() + } +} + +// MARK: - App Entry Point +@main +struct TodoApp: App { + var body: some Scene { + WindowGroup { + TodoListView() + } + } +} \ No newline at end of file diff --git a/Sources/SwiftBuilder/Assignment.swift b/Sources/SwiftBuilder/Assignment.swift index c5fcf2f..c5152aa 100644 --- a/Sources/SwiftBuilder/Assignment.swift +++ b/Sources/SwiftBuilder/Assignment.swift @@ -33,19 +33,12 @@ public struct Assignment: CodeBlock { right = ExprSyntax(DeclReferenceExprSyntax(baseName: .identifier(value))) } let assign = ExprSyntax(AssignmentExprSyntax(equal: .equalToken(leadingTrivia: .space, trailingTrivia: .space))) - return CodeBlockItemSyntax( - item: .expr( - ExprSyntax( - SequenceExprSyntax( - elements: ExprListSyntax([ - left, - assign, - right - ]) - ) - ) - ), - trailingTrivia: .newline + return SequenceExprSyntax( + elements: ExprListSyntax([ + left, + assign, + right + ]) ) } } diff --git a/Sources/SwiftBuilder/CodeBlock+Generate.swift b/Sources/SwiftBuilder/CodeBlock+Generate.swift index 6792c58..46af657 100644 --- a/Sources/SwiftBuilder/CodeBlock+Generate.swift +++ b/Sources/SwiftBuilder/CodeBlock+Generate.swift @@ -3,26 +3,24 @@ import SwiftSyntax public extension CodeBlock { func generateCode() -> String { - guard let decl = syntax as? DeclSyntaxProtocol else { - fatalError("Only declaration syntax is supported at the top level.") + let statements: CodeBlockItemListSyntax + if let list = self.syntax.as(CodeBlockItemListSyntax.self) { + statements = list + } else { + let item: CodeBlockItemSyntax.Item + if let decl = self.syntax.as(DeclSyntax.self) { + item = .decl(decl) + } else if let stmt = self.syntax.as(StmtSyntax.self) { + item = .stmt(stmt) + } else if let expr = self.syntax.as(ExprSyntax.self) { + item = .expr(expr) + } else { + fatalError("Unsupported syntax type at top level: \(type(of: self.syntax)) generating from \(self)") + } + statements = CodeBlockItemListSyntax([CodeBlockItemSyntax(item: item, trailingTrivia: .newline)]) } - let sourceFile = SourceFileSyntax( - statements: CodeBlockItemListSyntax([ - CodeBlockItemSyntax(item: .decl(DeclSyntax(decl))) - ]) - ) - return sourceFile.description - } -} - -public extension Array where Element == CodeBlock { - func generateCode() -> String { - let decls = compactMap { $0.syntax as? DeclSyntaxProtocol } - let sourceFile = SourceFileSyntax( - statements: CodeBlockItemListSyntax(decls.map { decl in - CodeBlockItemSyntax(item: .decl(DeclSyntax(decl))) - }) - ) - return sourceFile.description + + let sourceFile = SourceFileSyntax(statements: statements) + return sourceFile.description.trimmingCharacters(in: .whitespacesAndNewlines) } } \ No newline at end of file diff --git a/Sources/SwiftBuilder/Comment.swift b/Sources/SwiftBuilder/Comment.swift new file mode 100644 index 0000000..b62ad44 --- /dev/null +++ b/Sources/SwiftBuilder/Comment.swift @@ -0,0 +1,117 @@ +import SwiftSyntax +import Foundation + +/// Represents a single comment line that can be attached to a syntax node when using `.comment { ... }` in the DSL. +public struct Line { + public enum Kind { + /// Regular line comment that starts with `//`. + case line + /// Documentation line comment that starts with `///`. + case doc + } + + public let kind: Kind + public let text: String? + + /// Convenience initializer for a regular line comment without specifying the kind explicitly. + public init(_ text: String) { + self.kind = .line + self.text = text + } + + /// Convenience initialiser. Passing only `kind` will create an empty comment line of that kind. + /// + /// Examples: + /// ```swift + /// Line("MARK: - Models") // defaults to `.line` kind + /// Line(.doc, "Represents a model") // documentation comment + /// Line(.doc) // empty `///` line + /// ``` + public init(_ kind: Kind = .line, _ text: String? = nil) { + self.kind = kind + self.text = text + } +} + +// MARK: - Internal helpers + +private extension Line { + /// Convert the `Line` to a SwiftSyntax `TriviaPiece`. + var triviaPiece: TriviaPiece { + switch kind { + case .line: + return .lineComment("// " + (text ?? "")) + case .doc: + // Empty doc line should still contain the comment marker so we keep a single `/` if no text. + if let text = text, !text.isEmpty { + return .docLineComment("/// " + text) + } else { + return .docLineComment("///") + } + } + } +} + +// MARK: - Result builder used in trailing closure form + +@resultBuilder +public enum CommentBuilderResult { + public static func buildBlock(_ components: Line...) -> [Line] { components } +} + +// MARK: - Wrapper `CodeBlock` that injects leading trivia + +private struct CommentedCodeBlock: CodeBlock { + let base: CodeBlock + let lines: [Line] + + var syntax: SyntaxProtocol { + // Shortcut if there are no comment lines + guard !lines.isEmpty else { return base.syntax } + + let commentTrivia = Trivia(pieces: lines.flatMap { [$0.triviaPiece, TriviaPiece.newlines(1)] }) + + // Re-write the first token of the underlying syntax node to prepend the trivia. + final class FirstTokenRewriter: SyntaxRewriter { + let newToken: TokenSyntax + private var replaced = false + init(newToken: TokenSyntax) { self.newToken = newToken } + override func visit(_ token: TokenSyntax) -> TokenSyntax { + if !replaced { + replaced = true + return newToken + } + return token + } + } + + guard let firstToken = base.syntax.firstToken(viewMode: .sourceAccurate) else { + // Fallback – no tokens? return original syntax + return base.syntax + } + + let newFirstToken = firstToken.with(\.leadingTrivia, commentTrivia + firstToken.leadingTrivia) + + let rewriter = FirstTokenRewriter(newToken: newFirstToken) + let rewritten = rewriter.visit(Syntax(base.syntax)) + return rewritten + } +} + +// MARK: - Public DSL surface + +public extension CodeBlock { + /// Attach comments to the current `CodeBlock`. + /// Usage: + /// ```swift + /// Struct("MyStruct") { ... } + /// .comment { + /// Line("MARK: - Models") + /// Line(.doc, "This is a documentation comment") + /// } + /// ``` + /// The provided lines are injected as leading trivia to the declaration produced by this `CodeBlock`. + func comment(@CommentBuilderResult _ content: () -> [Line]) -> CodeBlock { + CommentedCodeBlock(base: self, lines: content()) + } +} \ No newline at end of file diff --git a/Sources/SwiftBuilder/ComputedProperty.swift b/Sources/SwiftBuilder/ComputedProperty.swift index 71e45d7..f263b36 100644 --- a/Sources/SwiftBuilder/ComputedProperty.swift +++ b/Sources/SwiftBuilder/ComputedProperty.swift @@ -12,19 +12,19 @@ public struct ComputedProperty: CodeBlock { } public var syntax: SyntaxProtocol { - let statements = CodeBlockItemListSyntax(self.body.compactMap { item in - if let cb = item.syntax as? CodeBlockItemSyntax { return cb.with(\.trailingTrivia, .newline) } - if let stmt = item.syntax as? StmtSyntax { - return CodeBlockItemSyntax(item: .stmt(stmt), trailingTrivia: .newline) - } - if let expr = item.syntax as? ExprSyntax { - return CodeBlockItemSyntax(item: .expr(expr), trailingTrivia: .newline) - } - return nil - }) let accessor = AccessorBlockSyntax( leftBrace: TokenSyntax.leftBraceToken(leadingTrivia: .space, trailingTrivia: .newline), - accessors: .getter(statements), + accessors: .getter(CodeBlockItemListSyntax(body.compactMap { + var item: CodeBlockItemSyntax? + if let decl = $0.syntax.as(DeclSyntax.self) { + item = CodeBlockItemSyntax(item: .decl(decl)) + } else if let expr = $0.syntax.as(ExprSyntax.self) { + item = CodeBlockItemSyntax(item: .expr(expr)) + } else if let stmt = $0.syntax.as(StmtSyntax.self) { + item = CodeBlockItemSyntax(item: .stmt(stmt)) + } + return item?.with(\.trailingTrivia, .newline) + })), rightBrace: TokenSyntax.rightBraceToken(leadingTrivia: .newline) ) let identifier = TokenSyntax.identifier(name, trailingTrivia: .space) diff --git a/Sources/SwiftBuilder/Default.swift b/Sources/SwiftBuilder/Default.swift index 4760a94..713c595 100644 --- a/Sources/SwiftBuilder/Default.swift +++ b/Sources/SwiftBuilder/Default.swift @@ -12,7 +12,17 @@ public struct Default: CodeBlock { self.body = content() } public var switchCaseSyntax: SwitchCaseSyntax { - let statements = CodeBlockItemListSyntax(body.compactMap { $0.syntax.as(CodeBlockItemSyntax.self) }) + let statements = CodeBlockItemListSyntax(body.compactMap { + var item: CodeBlockItemSyntax? + if let decl = $0.syntax.as(DeclSyntax.self) { + item = CodeBlockItemSyntax(item: .decl(decl)) + } else if let expr = $0.syntax.as(ExprSyntax.self) { + item = CodeBlockItemSyntax(item: .expr(expr)) + } else if let stmt = $0.syntax.as(StmtSyntax.self) { + item = CodeBlockItemSyntax(item: .stmt(stmt)) + } + return item?.with(\.trailingTrivia, .newline) + }) let label = SwitchDefaultLabelSyntax( defaultKeyword: .keyword(.default, trailingTrivia: .space), colon: .colonToken() diff --git a/Sources/SwiftBuilder/Function.swift b/Sources/SwiftBuilder/Function.swift index 0fdf30c..63e1ff5 100644 --- a/Sources/SwiftBuilder/Function.swift +++ b/Sources/SwiftBuilder/Function.swift @@ -74,20 +74,19 @@ public struct Function: CodeBlock { } // Build function body - let statements = CodeBlockItemListSyntax(body.compactMap { item in - if let cb = item.syntax as? CodeBlockItemSyntax { return cb.with(\.trailingTrivia, .newline) } - if let stmt = item.syntax as? StmtSyntax { - return CodeBlockItemSyntax(item: .stmt(stmt), trailingTrivia: .newline) - } - if let expr = item.syntax as? ExprSyntax { - return CodeBlockItemSyntax(item: .expr(expr), trailingTrivia: .newline) - } - return nil - }) - let bodyBlock = CodeBlockSyntax( leftBrace: .leftBraceToken(leadingTrivia: .space, trailingTrivia: .newline), - statements: statements, + statements: CodeBlockItemListSyntax(body.compactMap { + var item: CodeBlockItemSyntax? + if let decl = $0.syntax.as(DeclSyntax.self) { + item = CodeBlockItemSyntax(item: .decl(decl)) + } else if let expr = $0.syntax.as(ExprSyntax.self) { + item = CodeBlockItemSyntax(item: .expr(expr)) + } else if let stmt = $0.syntax.as(StmtSyntax.self) { + item = CodeBlockItemSyntax(item: .stmt(stmt)) + } + return item?.with(\.trailingTrivia, .newline) + }), rightBrace: .rightBraceToken(leadingTrivia: .newline) ) diff --git a/Sources/SwiftBuilder/Group.swift b/Sources/SwiftBuilder/Group.swift new file mode 100644 index 0000000..ec390b5 --- /dev/null +++ b/Sources/SwiftBuilder/Group.swift @@ -0,0 +1,30 @@ +import SwiftSyntax + +public struct Group: CodeBlock { + let members: [CodeBlock] + + public init(@CodeBlockBuilderResult _ content: () -> [CodeBlock]) { + self.members = content() + } + + public var syntax: SyntaxProtocol { + let statements = members.flatMap { block -> [CodeBlockItemSyntax] in + if let list = block.syntax.as(CodeBlockItemListSyntax.self) { + return Array(list) + } + + let item: CodeBlockItemSyntax.Item + if let decl = block.syntax.as(DeclSyntax.self) { + item = .decl(decl) + } else if let stmt = block.syntax.as(StmtSyntax.self) { + item = .stmt(stmt) + } else if let expr = block.syntax.as(ExprSyntax.self) { + item = .expr(expr) + } else { + fatalError("Unsupported syntax type in group: \(type(of: block.syntax)) from \(block)") + } + return [CodeBlockItemSyntax(item: item, trailingTrivia: .newline)] + } + return CodeBlockItemListSyntax(statements) + } +} \ No newline at end of file diff --git a/Sources/SwiftBuilder/If.swift b/Sources/SwiftBuilder/If.swift index 8923d15..2a85dba 100644 --- a/Sources/SwiftBuilder/If.swift +++ b/Sources/SwiftBuilder/If.swift @@ -33,13 +33,33 @@ public struct If: CodeBlock { } let bodyBlock = CodeBlockSyntax( leftBrace: .leftBraceToken(leadingTrivia: .space, trailingTrivia: .newline), - statements: CodeBlockItemListSyntax(body.compactMap { $0.syntax.as(CodeBlockItemSyntax.self) }), + statements: CodeBlockItemListSyntax(body.compactMap { + var item: CodeBlockItemSyntax? + if let decl = $0.syntax.as(DeclSyntax.self) { + item = CodeBlockItemSyntax(item: .decl(decl)) + } else if let expr = $0.syntax.as(ExprSyntax.self) { + item = CodeBlockItemSyntax(item: .expr(expr)) + } else if let stmt = $0.syntax.as(StmtSyntax.self) { + item = CodeBlockItemSyntax(item: .stmt(stmt)) + } + return item?.with(\.trailingTrivia, .newline) + }), rightBrace: .rightBraceToken(leadingTrivia: .newline) ) let elseBlock = elseBody.map { IfExprSyntax.ElseBody(CodeBlockSyntax( leftBrace: .leftBraceToken(leadingTrivia: .space, trailingTrivia: .newline), - statements: CodeBlockItemListSyntax($0.compactMap { $0.syntax.as(CodeBlockItemSyntax.self) }), + statements: CodeBlockItemListSyntax($0.compactMap { + var item: CodeBlockItemSyntax? + if let decl = $0.syntax.as(DeclSyntax.self) { + item = CodeBlockItemSyntax(item: .decl(decl)) + } else if let expr = $0.syntax.as(ExprSyntax.self) { + item = CodeBlockItemSyntax(item: .expr(expr)) + } else if let stmt = $0.syntax.as(StmtSyntax.self) { + item = CodeBlockItemSyntax(item: .stmt(stmt)) + } + return item?.with(\.trailingTrivia, .newline) + }), rightBrace: .rightBraceToken(leadingTrivia: .newline) )) } diff --git a/Sources/SwiftBuilder/Literal.swift b/Sources/SwiftBuilder/Literal.swift new file mode 100644 index 0000000..6ec0e71 --- /dev/null +++ b/Sources/SwiftBuilder/Literal.swift @@ -0,0 +1,31 @@ +import SwiftSyntax + +public enum Literal: CodeBlock { + case string(String) + case float(Double) + case integer(Int) + case `nil` + case boolean(Bool) + + public var syntax: SyntaxProtocol { + switch self { + case .string(let value): + return StringLiteralExprSyntax( + openingQuote: .stringQuoteToken(), + segments: .init([ + .stringSegment(.init(content: .stringSegment(value))) + ]), + closingQuote: .stringQuoteToken() + ) + case .float(let value): + return FloatLiteralExprSyntax(literal: .floatLiteral(String(value))) + + case .integer(let value): + return IntegerLiteralExprSyntax(digits: .integerLiteral(String(value))) + case .nil: + return NilLiteralExprSyntax(nilKeyword: .keyword(.nil)) + case .boolean(let value): + return BooleanLiteralExprSyntax(literal: value ? .keyword(.true) : .keyword(.false)) + } + } +} diff --git a/Sources/SwiftBuilder/PlusAssign.swift b/Sources/SwiftBuilder/PlusAssign.swift index 219f568..b65e08a 100644 --- a/Sources/SwiftBuilder/PlusAssign.swift +++ b/Sources/SwiftBuilder/PlusAssign.swift @@ -30,19 +30,12 @@ public struct PlusAssign: CodeBlock { right = ExprSyntax(DeclReferenceExprSyntax(baseName: .identifier(value))) } let assign = ExprSyntax(BinaryOperatorExprSyntax(operator: .binaryOperator("+=", leadingTrivia: .space, trailingTrivia: .space))) - return CodeBlockItemSyntax( - item: .expr( - ExprSyntax( - SequenceExprSyntax( - elements: ExprListSyntax([ - left, - assign, - right - ]) - ) - ) - ), - trailingTrivia: .newline + return SequenceExprSyntax( + elements: ExprListSyntax([ + left, + assign, + right + ]) ) } } diff --git a/Sources/SwiftBuilder/Return.swift b/Sources/SwiftBuilder/Return.swift index afb5741..fb848e8 100644 --- a/Sources/SwiftBuilder/Return.swift +++ b/Sources/SwiftBuilder/Return.swift @@ -10,28 +10,14 @@ public struct Return: CodeBlock { fatalError("Return must have at least one expression.") } if let varExp = expr as? VariableExp { - return CodeBlockItemSyntax( - item: .stmt( - StmtSyntax( - ReturnStmtSyntax( - returnKeyword: .keyword(.return, trailingTrivia: .space), - expression: ExprSyntax(DeclReferenceExprSyntax(baseName: .identifier(varExp.name))) - ) - ) - ), - trailingTrivia: .newline + return ReturnStmtSyntax( + returnKeyword: .keyword(.return, trailingTrivia: .space), + expression: ExprSyntax(DeclReferenceExprSyntax(baseName: .identifier(varExp.name))) ) } - return CodeBlockItemSyntax( - item: .stmt( - StmtSyntax( - ReturnStmtSyntax( - returnKeyword: .keyword(.return, trailingTrivia: .space), - expression: ExprSyntax(expr.syntax) - ) - ) - ), - trailingTrivia: .newline + return ReturnStmtSyntax( + returnKeyword: .keyword(.return, trailingTrivia: .space), + expression: ExprSyntax(expr.syntax) ) } } \ No newline at end of file diff --git a/Sources/SwiftBuilder/Switch.swift b/Sources/SwiftBuilder/Switch.swift index 5a3ebc7..c3f3617 100644 --- a/Sources/SwiftBuilder/Switch.swift +++ b/Sources/SwiftBuilder/Switch.swift @@ -30,6 +30,6 @@ public struct Switch: CodeBlock { cases: cases, rightBrace: .rightBraceToken(leadingTrivia: .newline) ) - return CodeBlockItemSyntax(item: .expr(ExprSyntax(switchExpr))) + return switchExpr } } diff --git a/Sources/SwiftBuilder/SwitchCase.swift b/Sources/SwiftBuilder/SwitchCase.swift index 7d566e5..0894450 100644 --- a/Sources/SwiftBuilder/SwitchCase.swift +++ b/Sources/SwiftBuilder/SwitchCase.swift @@ -25,7 +25,17 @@ public struct SwitchCase: CodeBlock { } return item }) - let statements = CodeBlockItemListSyntax(body.compactMap { $0.syntax.as(CodeBlockItemSyntax.self) }) + let statements = CodeBlockItemListSyntax(body.compactMap { + var item: CodeBlockItemSyntax? + if let decl = $0.syntax.as(DeclSyntax.self) { + item = CodeBlockItemSyntax(item: .decl(decl)) + } else if let expr = $0.syntax.as(ExprSyntax.self) { + item = CodeBlockItemSyntax(item: .expr(expr)) + } else if let stmt = $0.syntax.as(StmtSyntax.self) { + item = CodeBlockItemSyntax(item: .stmt(stmt)) + } + return item?.with(\.trailingTrivia, .newline) + }) let label = SwitchCaseLabelSyntax( caseKeyword: .keyword(.case, trailingTrivia: .space), caseItems: caseItems, diff --git a/Sources/SwiftBuilder/Trivia+Comments.swift b/Sources/SwiftBuilder/Trivia+Comments.swift new file mode 100644 index 0000000..9a61246 --- /dev/null +++ b/Sources/SwiftBuilder/Trivia+Comments.swift @@ -0,0 +1,23 @@ +import SwiftSyntax + +public extension Trivia { + /// Extract comment strings (line comments, doc comments, block comments) from the trivia collection. + var comments: [String] { + compactMap { piece in + switch piece { + case .lineComment(let text), + .blockComment(let text), + .docLineComment(let text), + .docBlockComment(let text): + return text + default: + return nil + } + } + } + + /// Indicates whether the trivia contains any comments. + var hasComments: Bool { + !comments.isEmpty + } +} \ No newline at end of file diff --git a/Sources/SwiftBuilder/VariableDecl.swift b/Sources/SwiftBuilder/VariableDecl.swift index 8348c0b..5c9a913 100644 --- a/Sources/SwiftBuilder/VariableDecl.swift +++ b/Sources/SwiftBuilder/VariableDecl.swift @@ -33,22 +33,15 @@ public struct VariableDecl: CodeBlock { ) } } - return CodeBlockItemSyntax( - item: .decl( - DeclSyntax( - VariableDeclSyntax( - bindingSpecifier: bindingKeyword, - bindings: PatternBindingListSyntax([ - PatternBindingSyntax( - pattern: IdentifierPatternSyntax(identifier: identifier), - typeAnnotation: nil, - initializer: initializer - ) - ]) - ) + return VariableDeclSyntax( + bindingSpecifier: bindingKeyword, + bindings: PatternBindingListSyntax([ + PatternBindingSyntax( + pattern: IdentifierPatternSyntax(identifier: identifier), + typeAnnotation: nil, + initializer: initializer ) - ), - trailingTrivia: .newline + ]) ) } } \ No newline at end of file diff --git a/Tests/SwiftBuilderTests/SwiftBuilderCommentTests.swift b/Tests/SwiftBuilderTests/SwiftBuilderCommentTests.swift new file mode 100644 index 0000000..7201eb8 --- /dev/null +++ b/Tests/SwiftBuilderTests/SwiftBuilderCommentTests.swift @@ -0,0 +1,109 @@ +import XCTest +@testable import SwiftBuilder + +final class SwiftBuilderCommentTests: XCTestCase { + func testCommentInjection() { + let syntax = Group { + Struct("Card") { + Variable(.let, name: "rank", type: "Rank") + .comment{ + Line(.doc, "The rank of the card (2-10, J, Q, K, A)") + } + Variable(.let, name: "suit", type: "Suit") + .comment{ + Line(.doc, "The suit of the card (hearts, diamonds, clubs, spades)") + } + } + .inherits("Comparable") + .comment{ + Line("MARK: - Models") + Line(.doc, "Represents a playing card in a standard 52-card deck") + Line(.doc) + Line(.doc, "A card has a rank (2-10, J, Q, K, A) and a suit (hearts, diamonds, clubs, spades).") + Line(.doc, "Each card can be compared to other cards based on its rank.") + } + + Enum("Rank") { + EnumCase("two").equals(2) + EnumCase("three") + EnumCase("four") + EnumCase("five") + EnumCase("six") + EnumCase("seven") + EnumCase("eight") + EnumCase("nine") + EnumCase("ten") + EnumCase("jack") + EnumCase("queen") + EnumCase("king") + EnumCase("ace") + Struct("Values") { + Variable(.let, name: "first", type: "Int") + Variable(.let, name: "second", type: "Int?") + } + ComputedProperty("description", type: "String") { + Switch("self") { + SwitchCase(".jack") { + Return{ + Literal.string("J") + } + } + SwitchCase(".queen") { + Return{ + Literal.string("Q") + } + } + SwitchCase(".king") { + Return{ + Literal.string("K") + } + } + SwitchCase(".ace") { + Return{ + Literal.string("A") + } + } + Default { + Return{ + Literal.string("\\(rawValue)") + } + } + } + } + .comment{ + Line(.doc, "Returns a string representation of the rank") + } + } + .inherits("Int") + .inherits("CaseIterable") + .comment{ + Line("MARK: - Enums") + Line(.doc, "Represents the possible ranks of a playing card") + } + + Enum("Suit") { + EnumCase("spades").equals("♠") + EnumCase("hearts").equals("♡") + EnumCase("diamonds").equals("♢") + EnumCase("clubs").equals("♣") + } + .inherits("String") + .inherits("CaseIterable") + .comment{ + Line(.doc, "Represents the possible suits of a playing card") + } + + } + + let generated = syntax.generateCode().trimmingCharacters(in: .whitespacesAndNewlines) + print("Generated:\n", generated) + + XCTAssertFalse(generated.isEmpty) +// +// XCTAssertTrue(generated.contains("MARK: - Models"), "MARK line should be present in generated code") +// XCTAssertTrue(generated.contains("Foo struct docs"), "Doc comment line should be present in generated code") +// // Ensure the struct declaration itself is still correct +// XCTAssertTrue(generated.contains("struct Foo")) +// XCTAssertTrue(generated.contains("bar"), "Variable declaration should be present") + } +} diff --git a/Tests/SwiftBuilderTests/SwiftBuilderLiteralTests.swift b/Tests/SwiftBuilderTests/SwiftBuilderLiteralTests.swift new file mode 100644 index 0000000..32354e8 --- /dev/null +++ b/Tests/SwiftBuilderTests/SwiftBuilderLiteralTests.swift @@ -0,0 +1,14 @@ +import XCTest +@testable import SwiftBuilder + +final class SwiftBuilderLiteralTests: XCTestCase { + func testGroupWithLiterals() { + let group = Group { + Return { + Literal.integer(1) + } + } + let generated = group.generateCode() + XCTAssertEqual(generated.trimmingCharacters(in: .whitespacesAndNewlines), "return 1") + } +} \ No newline at end of file