@@ -56,6 +56,7 @@ final public class Token {
5656 case float = " Float "
5757 case string = " String "
5858 case comment = " Comment "
59+ case description = " Description " // string in a description position
5960
6061 public var description : String {
6162 return rawValue
@@ -132,6 +133,19 @@ extension Token : CustomStringConvertible {
132133 }
133134}
134135
136+ extension Token {
137+ convenience init ( from token: Token , as kind: Kind ) {
138+ self . init ( kind: kind,
139+ start: token. start,
140+ end: token. end,
141+ line: token. line,
142+ column: token. column,
143+ value: token. value,
144+ prev: token. prev,
145+ next: token. next)
146+ }
147+ }
148+
135149public enum NodeResult {
136150 case node( Node )
137151 case array( [ Node ] )
@@ -1075,20 +1089,23 @@ public func == (lhs: TypeSystemDefinition, rhs: TypeSystemDefinition) -> Bool {
10751089public final class SchemaDefinition {
10761090 public let kind : Kind = . schemaDefinition
10771091 public let loc : Location ?
1092+ public let description : String ?
10781093 public let directives : [ Directive ]
10791094 public let operationTypes : [ OperationTypeDefinition ]
10801095
1081- init ( loc: Location ? = nil , directives: [ Directive ] , operationTypes: [ OperationTypeDefinition ] ) {
1096+ init ( loc: Location ? = nil , description : String ? = nil , directives: [ Directive ] , operationTypes: [ OperationTypeDefinition ] ) {
10821097 self . loc = loc
1098+ self . description = description
10831099 self . directives = directives
10841100 self . operationTypes = operationTypes
10851101 }
10861102}
10871103
10881104extension SchemaDefinition : Equatable {
10891105 public static func == ( lhs: SchemaDefinition , rhs: SchemaDefinition ) -> Bool {
1090- return lhs. directives == rhs. directives &&
1091- lhs. operationTypes == rhs. operationTypes
1106+ return lhs. description == rhs. description &&
1107+ lhs. directives == rhs. directives &&
1108+ lhs. operationTypes == rhs. operationTypes
10921109 }
10931110}
10941111
@@ -1156,33 +1173,38 @@ public func == (lhs: TypeDefinition, rhs: TypeDefinition) -> Bool {
11561173public final class ScalarTypeDefinition {
11571174 public let kind : Kind = . scalarTypeDefinition
11581175 public let loc : Location ?
1176+ public let description : String ?
11591177 public let name : Name
11601178 public let directives : [ Directive ]
11611179
1162- init ( loc: Location ? = nil , name: Name , directives: [ Directive ] = [ ] ) {
1180+ init ( loc: Location ? = nil , description : String ? = nil , name: Name , directives: [ Directive ] = [ ] ) {
11631181 self . loc = loc
1182+ self . description = description
11641183 self . name = name
11651184 self . directives = directives
11661185 }
11671186}
11681187
11691188extension ScalarTypeDefinition : Equatable {
11701189 public static func == ( lhs: ScalarTypeDefinition , rhs: ScalarTypeDefinition ) -> Bool {
1171- return lhs. name == rhs. name &&
1190+ return lhs. description == rhs. description &&
1191+ lhs. name == rhs. name &&
11721192 lhs. directives == rhs. directives
11731193 }
11741194}
11751195
11761196public final class ObjectTypeDefinition {
11771197 public let kind : Kind = . objectTypeDefinition
11781198 public let loc : Location ?
1199+ public let description : String ?
11791200 public let name : Name
11801201 public let interfaces : [ NamedType ]
11811202 public let directives : [ Directive ]
11821203 public let fields : [ FieldDefinition ]
11831204
1184- init ( loc: Location ? = nil , name: Name , interfaces: [ NamedType ] = [ ] , directives: [ Directive ] = [ ] , fields: [ FieldDefinition ] = [ ] ) {
1205+ init ( loc: Location ? = nil , description : String ? = nil , name: Name , interfaces: [ NamedType ] = [ ] , directives: [ Directive ] = [ ] , fields: [ FieldDefinition ] = [ ] ) {
11851206 self . loc = loc
1207+ self . description = description
11861208 self . name = name
11871209 self . interfaces = interfaces
11881210 self . directives = directives
@@ -1192,7 +1214,8 @@ public final class ObjectTypeDefinition {
11921214
11931215extension ObjectTypeDefinition : Equatable {
11941216 public static func == ( lhs: ObjectTypeDefinition , rhs: ObjectTypeDefinition ) -> Bool {
1195- return lhs. name == rhs. name &&
1217+ return lhs. description == rhs. description &&
1218+ lhs. name == rhs. name &&
11961219 lhs. interfaces == rhs. interfaces &&
11971220 lhs. directives == rhs. directives &&
11981221 lhs. fields == rhs. fields
@@ -1202,13 +1225,15 @@ extension ObjectTypeDefinition : Equatable {
12021225public final class FieldDefinition {
12031226 public let kind : Kind = . fieldDefinition
12041227 public let loc : Location ?
1228+ public let description : String ?
12051229 public let name : Name
12061230 public let arguments : [ InputValueDefinition ]
12071231 public let type : Type
12081232 public let directives : [ Directive ]
12091233
1210- init ( loc: Location ? = nil , name: Name , arguments: [ InputValueDefinition ] = [ ] , type: Type , directives: [ Directive ] = [ ] ) {
1234+ init ( loc: Location ? = nil , description : String ? = nil , name: Name , arguments: [ InputValueDefinition ] = [ ] , type: Type , directives: [ Directive ] = [ ] ) {
12111235 self . loc = loc
1236+ self . description = description
12121237 self . name = name
12131238 self . arguments = arguments
12141239 self . type = type
@@ -1218,7 +1243,8 @@ public final class FieldDefinition {
12181243
12191244extension FieldDefinition : Equatable {
12201245 public static func == ( lhs: FieldDefinition , rhs: FieldDefinition ) -> Bool {
1221- return lhs. name == rhs. name &&
1246+ return lhs. description == rhs. description &&
1247+ lhs. name == rhs. name &&
12221248 lhs. arguments == rhs. arguments &&
12231249 lhs. type == rhs. type &&
12241250 lhs. directives == rhs. directives
@@ -1228,13 +1254,15 @@ extension FieldDefinition : Equatable {
12281254public final class InputValueDefinition {
12291255 public let kind : Kind = . inputValueDefinition
12301256 public let loc : Location ?
1257+ public let description : String ?
12311258 public let name : Name
12321259 public let type : Type
12331260 public let defaultValue : Value ?
12341261 public let directives : [ Directive ]
12351262
1236- init ( loc: Location ? = nil , name: Name , type: Type , defaultValue: Value ? = nil , directives: [ Directive ] = [ ] ) {
1263+ init ( loc: Location ? = nil , description : String ? = nil , name: Name , type: Type , defaultValue: Value ? = nil , directives: [ Directive ] = [ ] ) {
12371264 self . loc = loc
1265+ self . description = description
12381266 self . name = name
12391267 self . type = type
12401268 self . defaultValue = defaultValue
@@ -1271,19 +1299,22 @@ extension InputValueDefinition : Equatable {
12711299public final class InterfaceTypeDefinition {
12721300 public let kind : Kind = . interfaceTypeDefinition
12731301 public let loc : Location ?
1302+ public let description : String ?
12741303 public let name : Name
12751304 public let interfaces : [ NamedType ]
12761305 public let directives : [ Directive ]
12771306 public let fields : [ FieldDefinition ]
12781307
12791308 init (
12801309 loc: Location ? = nil ,
1310+ description: String ? = nil ,
12811311 name: Name ,
12821312 interfaces: [ NamedType ] = [ ] ,
12831313 directives: [ Directive ] = [ ] ,
12841314 fields: [ FieldDefinition ]
12851315 ) {
12861316 self . loc = loc
1317+ self . description = description
12871318 self . name = name
12881319 self . interfaces = interfaces
12891320 self . directives = directives
@@ -1293,7 +1324,8 @@ public final class InterfaceTypeDefinition {
12931324
12941325extension InterfaceTypeDefinition : Equatable {
12951326 public static func == ( lhs: InterfaceTypeDefinition , rhs: InterfaceTypeDefinition ) -> Bool {
1296- return lhs. name == rhs. name &&
1327+ return lhs. description == rhs. description &&
1328+ lhs. name == rhs. name &&
12971329 lhs. directives == rhs. directives &&
12981330 lhs. fields == rhs. fields
12991331 }
@@ -1302,12 +1334,14 @@ extension InterfaceTypeDefinition : Equatable {
13021334public final class UnionTypeDefinition {
13031335 public let kind : Kind = . unionTypeDefinition
13041336 public let loc : Location ?
1337+ public let description : String ?
13051338 public let name : Name
13061339 public let directives : [ Directive ]
13071340 public let types : [ NamedType ]
13081341
1309- init ( loc: Location ? = nil , name: Name , directives: [ Directive ] = [ ] , types: [ NamedType ] ) {
1342+ init ( loc: Location ? = nil , description : String ? = nil , name: Name , directives: [ Directive ] = [ ] , types: [ NamedType ] ) {
13101343 self . loc = loc
1344+ self . description = description
13111345 self . name = name
13121346 self . directives = directives
13131347 self . types = types
@@ -1316,7 +1350,8 @@ public final class UnionTypeDefinition {
13161350
13171351extension UnionTypeDefinition : Equatable {
13181352 public static func == ( lhs: UnionTypeDefinition , rhs: UnionTypeDefinition ) -> Bool {
1319- return lhs. name == rhs. name &&
1353+ return lhs. description == rhs. description &&
1354+ lhs. name == rhs. name &&
13201355 lhs. directives == rhs. directives &&
13211356 lhs. types == rhs. types
13221357 }
@@ -1325,12 +1360,14 @@ extension UnionTypeDefinition : Equatable {
13251360public final class EnumTypeDefinition {
13261361 public let kind : Kind = . enumTypeDefinition
13271362 public let loc : Location ?
1363+ public let description : String ?
13281364 public let name : Name
13291365 public let directives : [ Directive ]
13301366 public let values : [ EnumValueDefinition ]
13311367
1332- init ( loc: Location ? = nil , name: Name , directives: [ Directive ] = [ ] , values: [ EnumValueDefinition ] ) {
1368+ init ( loc: Location ? = nil , description : String ? = nil , name: Name , directives: [ Directive ] = [ ] , values: [ EnumValueDefinition ] ) {
13331369 self . loc = loc
1370+ self . description = description
13341371 self . name = name
13351372 self . directives = directives
13361373 self . values = values
@@ -1339,7 +1376,8 @@ public final class EnumTypeDefinition {
13391376
13401377extension EnumTypeDefinition : Equatable {
13411378 public static func == ( lhs: EnumTypeDefinition , rhs: EnumTypeDefinition ) -> Bool {
1342- return lhs. name == rhs. name &&
1379+ return lhs. description == rhs. description &&
1380+ lhs. name == rhs. name &&
13431381 lhs. directives == rhs. directives &&
13441382 lhs. values == rhs. values
13451383 }
@@ -1348,32 +1386,37 @@ extension EnumTypeDefinition : Equatable {
13481386public final class EnumValueDefinition {
13491387 public let kind : Kind = . enumValueDefinition
13501388 public let loc : Location ?
1389+ public let description : String ?
13511390 public let name : Name
13521391 public let directives : [ Directive ]
13531392
1354- init ( loc: Location ? = nil , name: Name , directives: [ Directive ] = [ ] ) {
1393+ init ( loc: Location ? = nil , description : String ? = nil , name: Name , directives: [ Directive ] = [ ] ) {
13551394 self . loc = loc
1395+ self . description = description
13561396 self . name = name
13571397 self . directives = directives
13581398 }
13591399}
13601400
13611401extension EnumValueDefinition : Equatable {
13621402 public static func == ( lhs: EnumValueDefinition , rhs: EnumValueDefinition ) -> Bool {
1363- return lhs. name == rhs. name &&
1403+ return lhs. description == rhs. description &&
1404+ lhs. name == rhs. name &&
13641405 lhs. directives == rhs. directives
13651406 }
13661407}
13671408
13681409public final class InputObjectTypeDefinition {
13691410 public let kind : Kind = . inputObjectTypeDefinition
13701411 public let loc : Location ?
1412+ public let description : String ?
13711413 public let name : Name
13721414 public let directives : [ Directive ]
13731415 public let fields : [ InputValueDefinition ]
13741416
1375- init ( loc: Location ? = nil , name: Name , directives: [ Directive ] = [ ] , fields: [ InputValueDefinition ] ) {
1417+ init ( loc: Location ? = nil , description : String ? = nil , name: Name , directives: [ Directive ] = [ ] , fields: [ InputValueDefinition ] ) {
13761418 self . loc = loc
1419+ self . description = description
13771420 self . name = name
13781421 self . directives = directives
13791422 self . fields = fields
@@ -1382,9 +1425,10 @@ public final class InputObjectTypeDefinition {
13821425
13831426extension InputObjectTypeDefinition : Equatable {
13841427 public static func == ( lhs: InputObjectTypeDefinition , rhs: InputObjectTypeDefinition ) -> Bool {
1385- return lhs. name == rhs. name &&
1386- lhs. directives == rhs. directives &&
1387- lhs. fields == rhs. fields
1428+ return lhs. description == rhs. description &&
1429+ lhs. name == rhs. name &&
1430+ lhs. directives == rhs. directives &&
1431+ lhs. fields == rhs. fields
13881432 }
13891433}
13901434
@@ -1408,22 +1452,25 @@ extension TypeExtensionDefinition : Equatable {
14081452public final class DirectiveDefinition {
14091453 public let kind : Kind = . directiveDefinition
14101454 public let loc : Location ?
1455+ public let description : String ?
14111456 public let name : Name
14121457 public let arguments : [ InputValueDefinition ]
14131458 public let locations : [ Name ]
14141459
1415- init ( loc: Location ? = nil , name: Name , arguments: [ InputValueDefinition ] = [ ] , locations: [ Name ] ) {
1460+ init ( loc: Location ? = nil , description : String ? = nil , name: Name , arguments: [ InputValueDefinition ] = [ ] , locations: [ Name ] ) {
14161461 self . loc = loc
14171462 self . name = name
1463+ self . description = description
14181464 self . arguments = arguments
14191465 self . locations = locations
14201466 }
14211467}
14221468
14231469extension DirectiveDefinition : Equatable {
14241470 public static func == ( lhs: DirectiveDefinition , rhs: DirectiveDefinition ) -> Bool {
1425- return lhs. name == rhs. name &&
1426- lhs. arguments == rhs. arguments &&
1427- lhs. locations == rhs. locations
1471+ return lhs. description == rhs. description &&
1472+ lhs. name == rhs. name &&
1473+ lhs. arguments == rhs. arguments &&
1474+ lhs. locations == rhs. locations
14281475 }
14291476}
0 commit comments