lib/graphql/language/parser.y in graphql-1.8.0.pre7 vs lib/graphql/language/parser.y in graphql-1.8.0.pre8
- old
+ new
@@ -150,14 +150,10 @@
| FRAGMENT
| ON
| operation_type
| schema_keyword
- name_list:
- name { return [make_node(:TypeName, name: val[0])] }
- | name_list name { val[0] << make_node(:TypeName, name: val[1]) }
-
enum_value_definition:
enum_name directives_list_opt { return make_node(:EnumValueDefinition, name: val[0], directives: val[1], description: get_description(val[0])) }
enum_value_definitions:
enum_value_definition { return [val[0]] }
@@ -304,10 +300,20 @@
return make_node(:ObjectTypeDefinition, name: val[1], interfaces: val[2], directives: val[3], fields: val[5], description: get_description(val[0]), position_source: val[0])
}
implements_opt:
/* none */ { return [] }
- | IMPLEMENTS name_list { return val[1] }
+ | IMPLEMENTS AMP interfaces_list { return val[2] }
+ | IMPLEMENTS interfaces_list { return val[1] }
+ | IMPLEMENTS legacy_interfaces_list { return val[1] }
+
+ interfaces_list:
+ name { return [make_node(:TypeName, name: val[0])] }
+ | interfaces_list AMP name { val[0] << make_node(:TypeName, name: val[2]) }
+
+ legacy_interfaces_list:
+ name { return [make_node(:TypeName, name: val[0])] }
+ | legacy_interfaces_list name { val[0] << make_node(:TypeName, name: val[1]) }
input_value_definition:
name COLON type default_value_opt directives_list_opt {
return make_node(:InputValueDefinition, name: val[0], type: val[2], default_value: val[3], directives: val[4], description: get_description(val[0]))
}