lib/graphql/language/parser.y in graphql-1.7.14 vs lib/graphql/language/parser.y in graphql-1.8.0.pre1
- old
+ new
@@ -80,11 +80,12 @@
default_value_opt:
/* none */ { return nil }
| EQUALS literal_value { return val[1] }
selection_set:
- LCURLY selection_list RCURLY { return val[1] }
+ LCURLY RCURLY { return [] }
+ | LCURLY selection_list RCURLY { return val[1] }
selection_set_opt:
/* none */ { return [] }
| selection_set { return val[0] }
@@ -150,12 +151,16 @@
| 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]), position_source: val[0]) }
+ 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]] }
| enum_value_definitions enum_value_definition { return val[0] << val[1] }
@@ -300,25 +305,15 @@
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 AMP interfaces_list { return val[2] }
- | IMPLEMENTS interfaces_list { return val[1] }
- | IMPLEMENTS legacy_interfaces_list { return val[1] }
+ | IMPLEMENTS name_list { return val[1] }
- interfaces_list:
- name { return [make_node(:TypeName, name: val[0], position_source: val[0])] }
- | interfaces_list AMP name { val[0] << make_node(:TypeName, name: val[2], position_source: val[2]) }
-
- legacy_interfaces_list:
- name { return [make_node(:TypeName, name: val[0], position_source: val[0])] }
- | legacy_interfaces_list name { val[0] << make_node(:TypeName, name: val[1], position_source: 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]), position_source: val[0])
+ return make_node(:InputValueDefinition, name: val[0], type: val[2], default_value: val[3], directives: val[4], description: get_description(val[0]))
}
input_value_definition_list:
input_value_definition { return [val[0]] }
| input_value_definition_list input_value_definition { val[0] << val[1] }
@@ -327,15 +322,14 @@
/* none */ { return [] }
| LPAREN input_value_definition_list RPAREN { return val[1] }
field_definition:
name arguments_definitions_opt COLON type directives_list_opt {
- return make_node(:FieldDefinition, name: val[0], arguments: val[1], type: val[3], directives: val[4], description: get_description(val[0]), position_source: val[0])
+ return make_node(:FieldDefinition, name: val[0], arguments: val[1], type: val[3], directives: val[4], description: get_description(val[0]))
}
field_definition_list:
- /* none */ { return [] }
- | field_definition { return [val[0]] }
+ field_definition { return [val[0]] }
| field_definition_list field_definition { val[0] << val[1] }
interface_type_definition:
INTERFACE name directives_list_opt LCURLY field_definition_list RCURLY {
return make_node(:InterfaceTypeDefinition, name: val[1], directives: val[2], fields: val[4], description: get_description(val[0]), position_source: val[0])