@@ -61,6 +61,7 @@ using facebook::graphql::ast::SchemaDefinition;
61
61
using facebook::graphql::ast::ScalarTypeDefinition;
62
62
using facebook::graphql::ast::ObjectTypeDefinition;
63
63
using facebook::graphql::ast::InterfaceTypeDefinition;
64
+ using facebook::graphql::ast::InterfaceExtensionDefinition;
64
65
using facebook::graphql::ast::UnionTypeDefinition;
65
66
using facebook::graphql::ast::EnumTypeDefinition;
66
67
using facebook::graphql::ast::InputObjectTypeDefinition;
@@ -125,6 +126,7 @@ union yystype { \
125
126
ScalarTypeDefinition *scalarTypeDefinition; \
126
127
ObjectTypeDefinition *objectTypeDefinition; \
127
128
InterfaceTypeDefinition *interfaceTypeDefinition; \
129
+ InterfaceExtensionDefinition *interfaceExtensionDefinition; \
128
130
UnionTypeDefinition *unionTypeDefinition; \
129
131
EnumTypeDefinition *enumTypeDefinition; \
130
132
InputObjectTypeDefinition *inputObjectTypeDefinition; \
@@ -266,6 +268,7 @@ union yystype { \
266
268
%type <scalarTypeDefinition> scalar_type_definition;
267
269
%type <objectTypeDefinition> object_type_definition;
268
270
%type <interfaceTypeDefinition> interface_type_definition;
271
+ %type <interfaceExtensionDefinition> interface_extension_definition;
269
272
%type <unionTypeDefinition> union_type_definition;
270
273
%type <enumTypeDefinition> enum_type_definition;
271
274
%type <inputObjectTypeDefinition> input_object_type_definition;
@@ -360,6 +363,7 @@ schema_gate: schema_definition { $$ = static_cast<Definition *>($1); }
360
363
| enum_type_definition { $$ = static_cast<Definition *>($1); }
361
364
| input_object_type_definition { $$ = static_cast<Definition *>($1); }
362
365
| type_extension_definition { $$ = static_cast<Definition *>($1); }
366
+ | interface_extension_definition { $$ = static_cast<Definition *>($1); }
363
367
| directive_definition { $$ = static_cast<Definition *>($1); }
364
368
;
365
369
@@ -644,6 +648,9 @@ input_value_definition: name ":" type default_value_opt directives_opt { $$ = ne
644
648
interface_type_definition: INTERFACE name directives_opt "{" field_definition_list "}" { $$ = new InterfaceTypeDefinition(@$, $2, $3, $5); }
645
649
;
646
650
651
+ interface_extension_definition: EXTEND interface_type_definition { $$ = new InterfaceExtensionDefinition(@$, $2); }
652
+ ;
653
+
647
654
union_type_definition: UNION name directives_opt "=" union_members { $$ = new UnionTypeDefinition(@$, $2, $3, $5); }
648
655
;
649
656
0 commit comments