graphql 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/lib/graphql/define/assign_argument.rb +3 -5
  3. data/lib/graphql/field.rb +1 -3
  4. data/lib/graphql/input_object_type.rb +4 -1
  5. data/lib/graphql/language.rb +1 -0
  6. data/lib/graphql/language/generation.rb +94 -0
  7. data/lib/graphql/language/lexer.rb +229 -201
  8. data/lib/graphql/language/lexer.rl +24 -7
  9. data/lib/graphql/language/nodes.rb +4 -0
  10. data/lib/graphql/language/parser.rb +195 -187
  11. data/lib/graphql/language/parser.y +11 -4
  12. data/lib/graphql/object_type.rb +21 -0
  13. data/lib/graphql/query.rb +8 -3
  14. data/lib/graphql/query/serial_execution/operation_resolution.rb +2 -2
  15. data/lib/graphql/query/serial_execution/value_resolution.rb +5 -0
  16. data/lib/graphql/schema.rb +11 -19
  17. data/lib/graphql/schema/invalid_type_error.rb +6 -0
  18. data/lib/graphql/schema/reduce_types.rb +68 -0
  19. data/lib/graphql/schema/type_expression.rb +6 -16
  20. data/lib/graphql/schema/type_map.rb +1 -5
  21. data/lib/graphql/schema/validation.rb +164 -0
  22. data/lib/graphql/version.rb +1 -1
  23. data/readme.md +3 -4
  24. data/spec/graphql/argument_spec.rb +20 -0
  25. data/spec/graphql/field_spec.rb +16 -0
  26. data/spec/graphql/introspection/schema_type_spec.rb +1 -0
  27. data/spec/graphql/language/generation_spec.rb +42 -0
  28. data/spec/graphql/language/parser_spec.rb +136 -26
  29. data/spec/graphql/query/serial_execution/value_resolution_spec.rb +23 -0
  30. data/spec/graphql/query_spec.rb +51 -0
  31. data/spec/graphql/schema/{type_reducer_spec.rb → reduce_types_spec.rb} +16 -14
  32. data/spec/graphql/schema/type_expression_spec.rb +4 -4
  33. data/spec/graphql/schema/validation_spec.rb +219 -0
  34. data/spec/support/dairy_app.rb +3 -0
  35. metadata +14 -13
  36. data/lib/graphql/schema/each_item_validator.rb +0 -21
  37. data/lib/graphql/schema/field_validator.rb +0 -17
  38. data/lib/graphql/schema/implementation_validator.rb +0 -31
  39. data/lib/graphql/schema/type_reducer.rb +0 -79
  40. data/lib/graphql/schema/type_validator.rb +0 -58
  41. data/spec/graphql/schema/field_validator_spec.rb +0 -21
  42. data/spec/graphql/schema/type_validator_spec.rb +0 -81
@@ -13,6 +13,7 @@
13
13
  FRAGMENT = 'fragment';
14
14
  TRUE = 'true';
15
15
  FALSE = 'false';
16
+ NULL = 'null';
16
17
  RCURLY = '{';
17
18
  LCURLY = '}';
18
19
  RPAREN = '(';
@@ -31,6 +32,9 @@
31
32
 
32
33
  QUOTED_STRING = QUOTE STRING_CHAR* QUOTE;
33
34
 
35
+ # catch-all for anything else. must be at the bottom for precedence.
36
+ UNKNOWN_CHAR = /./;
37
+
34
38
  main := |*
35
39
  INT => { emit_token.call(:INT) };
36
40
  FLOAT => { emit_token.call(:FLOAT) };
@@ -38,6 +42,7 @@
38
42
  FRAGMENT => { emit_token.call(:FRAGMENT) };
39
43
  TRUE => { emit_token.call(:TRUE) };
40
44
  FALSE => { emit_token.call(:FALSE) };
45
+ NULL => { emit_token.call(:NULL) };
41
46
  RCURLY => { emit_token.call(:RCURLY) };
42
47
  LCURLY => { emit_token.call(:LCURLY) };
43
48
  RPAREN => { emit_token.call(:RPAREN) };
@@ -61,6 +66,8 @@
61
66
  BLANK => { meta[:col] += te - ts };
62
67
  COMMENT => { meta[:col] += te - ts };
63
68
 
69
+ UNKNOWN_CHAR => { emit_token.call(:UNKNOWN_CHAR) };
70
+
64
71
  *|;
65
72
  }%%
66
73
 
@@ -134,14 +141,24 @@ module GraphQL
134
141
 
135
142
  def self.emit_string(ts, te, meta)
136
143
  value = meta[:data][ts...te].pack("c*").force_encoding("UTF-8")
137
- replace_escaped_characters_in_place(value)
144
+ if value =~ /\\u|\\./ && value !~ ESCAPES
145
+ meta[:tokens] << GraphQL::Language::Token.new(
146
+ name: :BAD_UNICODE_ESCAPE,
147
+ value: value,
148
+ line: meta[:line],
149
+ col: meta[:col],
150
+ )
151
+ else
152
+ replace_escaped_characters_in_place(value)
153
+
154
+ meta[:tokens] << GraphQL::Language::Token.new(
155
+ name: :STRING,
156
+ value: value,
157
+ line: meta[:line],
158
+ col: meta[:col],
159
+ )
160
+ end
138
161
 
139
- meta[:tokens] << GraphQL::Language::Token.new(
140
- name: :STRING,
141
- value: value,
142
- line: meta[:line],
143
- col: meta[:col],
144
- )
145
162
  meta[:col] += te - ts
146
163
  end
147
164
  end
@@ -42,6 +42,10 @@ module GraphQL
42
42
  def position
43
43
  [line, col]
44
44
  end
45
+
46
+ def to_query_string
47
+ Generation.generate(self)
48
+ end
45
49
  end
46
50
 
47
51
  class WrapperType < AbstractNode
@@ -12,7 +12,7 @@ module GraphQL
12
12
  module Language
13
13
  class Parser < Racc::Parser
14
14
 
15
- module_eval(<<'...end parser.y/module_eval...', 'parser.y', 211)
15
+ module_eval(<<'...end parser.y/module_eval...', 'parser.y', 214)
16
16
 
17
17
  def initialize(query_string)
18
18
  @query_string = query_string
@@ -53,7 +53,11 @@ def on_error(parser_token_id, lexer_token, vstack)
53
53
  raise GraphQL::ParseError.new("Parse Error on unknown token: {token_id: #{parser_token_id}, lexer_token: #{lexer_token}} from #{@query_string}", nil, nil, @query_string)
54
54
  else
55
55
  line, col = lexer_token.line_and_column
56
- raise GraphQL::ParseError.new("Parse error on #{lexer_token.to_s.inspect} (#{parser_token_name}) at [#{line}, #{col}]", line, col, @query_string)
56
+ if lexer_token.name == :BAD_UNICODE_ESCAPE
57
+ raise GraphQL::ParseError.new("Parse error on bad Unicode escape sequence: #{lexer_token.to_s.inspect} (#{parser_token_name}) at [#{line}, #{col}]", line, col, @query_string)
58
+ else
59
+ raise GraphQL::ParseError.new("Parse error on #{lexer_token.to_s.inspect} (#{parser_token_name}) at [#{line}, #{col}]", line, col, @query_string)
60
+ end
57
61
  end
58
62
  end
59
63
  end
@@ -71,112 +75,112 @@ end
71
75
  ##### State transition tables begin ###
72
76
 
73
77
  racc_action_table = [
74
- 85, 36, 104, 86, 35, 105, 87, 104, 88, 113,
75
- 79, 80, 40, 76, 77, 78, 85, 61, 47, 86,
76
- 69, 40, 87, 36, 88, 43, 79, 80, 73, 76,
77
- 77, 78, 85, 40, 36, 86, 9, 9, 87, 31,
78
- 88, 9, 79, 80, 9, 76, 77, 78, 85, 29,
79
- 40, 86, 107, 9, 87, 9, 88, 40, 79, 80,
80
- 40, 76, 77, 78, 85, 111, 15, 86, 96, 47,
81
- 87, 50, 88, 40, 79, 80, 67, 76, 77, 78,
82
- 10, 19, 12, 13, 14, 10, 19, 12, 13, 14,
83
- 20, 10, 19, 12, 13, 14, nil, nil, nil, nil,
84
- 27, 32, 10, 19, 12, 13, 14, 93, nil, nil,
85
- nil, 27, 10, 19, 12, 13, 14, 93, nil, nil,
86
- nil, nil, 10, 19, 12, 13, 14, 10, 19, 12,
87
- 13, 37, nil, nil, 9, 40, 10, 11, 12, 13,
88
- 14, 9, nil, 10, 11, 12, 13, 14, 109, 10,
89
- 19, 12, 13, 14, 99, 10, 19, 12, 13, 14,
90
- 10, 19, 12, 13, 14, 10, 19, 12, 13, 14,
91
- 10, 19, 12, 13, 14, 10, 19, 12, 13, 14,
92
- 10, 19, 12, 13, 14, 10, 19, 12, 13, 14,
93
- 10, 19, 12, 13, 14, 10, 19, 12, 13, 14 ]
78
+ 86, 105, 37, 87, 106, 36, 88, 40, 105, 89,
79
+ 114, 80, 81, 77, 78, 79, 86, 62, 48, 87,
80
+ 70, 37, 88, 40, 44, 89, 74, 80, 81, 77,
81
+ 78, 79, 86, 40, 37, 87, 9, 9, 88, 32,
82
+ 9, 89, 9, 80, 81, 77, 78, 79, 86, 30,
83
+ 40, 87, 108, 9, 88, 9, 40, 89, 40, 80,
84
+ 81, 77, 78, 79, 86, 112, 16, 87, 97, 48,
85
+ 88, 51, 40, 89, nil, 80, 81, 77, 78, 79,
86
+ 11, 12, 20, 14, 15, 68, 9, nil, 11, 12,
87
+ 13, 14, 15, nil, 11, 12, 20, 14, 15, 21,
88
+ 11, 12, 20, 14, 15, 12, 20, 14, 15, 28,
89
+ 33, 11, 12, 20, 14, 15, 94, nil, nil, nil,
90
+ 28, 11, 12, 20, 14, 15, 94, nil, nil, nil,
91
+ nil, 11, 12, 20, 14, 15, 42, 12, 20, 14,
92
+ 15, nil, nil, 9, 40, 11, 12, 13, 14, 15,
93
+ 100, 11, 12, 20, 14, 15, 110, 11, 12, 20,
94
+ 14, 15, 11, 12, 20, 14, 15, 11, 12, 20,
95
+ 14, 15, 11, 12, 20, 14, 15, 11, 12, 20,
96
+ 14, 15, 11, 12, 20, 14, 15, 11, 12, 20,
97
+ 14, 15, 11, 12, 20, 14, 15 ]
94
98
 
95
99
  racc_action_check = [
96
- 111, 26, 91, 111, 26, 91, 111, 106, 111, 106,
97
- 111, 111, 59, 111, 111, 111, 105, 45, 45, 105,
98
- 53, 54, 105, 56, 105, 28, 105, 105, 63, 105,
99
- 105, 105, 69, 66, 49, 69, 70, 72, 69, 17,
100
- 69, 74, 69, 69, 48, 69, 69, 69, 97, 15,
101
- 30, 97, 97, 44, 97, 42, 97, 41, 97, 97,
102
- 38, 97, 97, 97, 86, 102, 1, 86, 86, 31,
103
- 86, 36, 86, 34, 86, 86, 51, 86, 86, 86,
104
- 36, 36, 36, 36, 36, 51, 51, 51, 51, 51,
105
- 9, 9, 9, 9, 9, 9, nil, nil, nil, nil,
106
- 9, 21, 21, 21, 21, 21, 21, 73, nil, nil,
107
- nil, 21, 73, 73, 73, 73, 73, 93, nil, nil,
108
- nil, nil, 93, 93, 93, 93, 93, 27, 27, 27,
109
- 27, 27, nil, nil, 3, 27, 3, 3, 3, 3,
110
- 3, 0, nil, 0, 0, 0, 0, 0, 100, 100,
111
- 100, 100, 100, 100, 87, 87, 87, 87, 87, 87,
112
- 47, 47, 47, 47, 47, 37, 37, 37, 37, 37,
113
- 85, 85, 85, 85, 85, 40, 40, 40, 40, 40,
114
- 7, 7, 7, 7, 7, 35, 35, 35, 35, 35,
115
- 43, 43, 43, 43, 43, 11, 11, 11, 11, 11 ]
100
+ 112, 92, 27, 112, 92, 27, 112, 60, 107, 112,
101
+ 107, 112, 112, 112, 112, 112, 106, 46, 46, 106,
102
+ 54, 56, 106, 58, 29, 106, 64, 106, 106, 106,
103
+ 106, 106, 70, 67, 50, 70, 72, 73, 70, 18,
104
+ 75, 70, 49, 70, 70, 70, 70, 70, 98, 16,
105
+ 31, 98, 98, 45, 98, 43, 41, 98, 38, 98,
106
+ 98, 98, 98, 98, 87, 103, 1, 87, 87, 32,
107
+ 87, 37, 35, 87, nil, 87, 87, 87, 87, 87,
108
+ 37, 37, 37, 37, 37, 52, 3, nil, 3, 3,
109
+ 3, 3, 3, nil, 52, 52, 52, 52, 52, 9,
110
+ 9, 9, 9, 9, 9, 44, 44, 44, 44, 9,
111
+ 22, 22, 22, 22, 22, 22, 74, nil, nil, nil,
112
+ 22, 74, 74, 74, 74, 74, 94, nil, nil, nil,
113
+ nil, 94, 94, 94, 94, 94, 28, 28, 28, 28,
114
+ 28, nil, nil, 0, 28, 0, 0, 0, 0, 0,
115
+ 88, 88, 88, 88, 88, 88, 101, 101, 101, 101,
116
+ 101, 101, 40, 40, 40, 40, 40, 36, 36, 36,
117
+ 36, 36, 86, 86, 86, 86, 86, 7, 7, 7,
118
+ 7, 7, 42, 42, 42, 42, 42, 48, 48, 48,
119
+ 48, 48, 13, 13, 13, 13, 13 ]
116
120
 
117
121
  racc_action_pointer = [
118
- 131, 66, nil, 124, nil, nil, nil, 168, nil, 79,
119
- nil, 183, nil, nil, nil, 49, nil, 37, nil, nil,
120
- nil, 90, nil, nil, nil, nil, -1, 115, 9, nil,
121
- 30, 65, nil, nil, 53, 173, 68, 153, 40, nil,
122
- 163, 37, 45, 178, 43, 14, nil, 148, 34, 32,
123
- nil, 73, nil, 15, 1, nil, 21, nil, nil, -8,
124
- nil, nil, nil, 23, nil, nil, 13, nil, nil, 28,
125
- 26, nil, 27, 100, 31, nil, nil, nil, nil, nil,
126
- nil, nil, nil, nil, nil, 158, 60, 143, nil, nil,
127
- nil, -4, nil, 110, nil, nil, nil, 44, nil, nil,
128
- 137, nil, 60, nil, nil, 12, 1, nil, nil, nil,
129
- nil, -4, nil, nil, nil ]
122
+ 133, 66, nil, 76, nil, nil, nil, 165, nil, 88,
123
+ nil, nil, nil, 180, nil, nil, 49, nil, 37, nil,
124
+ nil, nil, 99, nil, nil, nil, nil, 0, 124, 12,
125
+ nil, 30, 65, nil, nil, 52, 155, 68, 38, nil,
126
+ 150, 36, 170, 45, 92, 43, 14, nil, 175, 32,
127
+ 32, nil, 82, nil, 15, nil, 19, nil, 3, nil,
128
+ -13, nil, nil, nil, 21, nil, nil, 13, nil, nil,
129
+ 28, nil, 26, 27, 109, 30, nil, nil, nil, nil,
130
+ nil, nil, nil, nil, nil, nil, 160, 60, 139, nil,
131
+ nil, nil, -5, nil, 119, nil, nil, nil, 44, nil,
132
+ nil, 145, nil, 60, nil, nil, 12, 2, nil, nil,
133
+ nil, nil, -4, nil, nil, nil ]
130
134
 
131
135
  racc_action_default = [
132
- -72, -72, -1, -2, -3, -5, -6, -9, -8, -72,
133
- -32, -33, -34, -35, -36, -72, -4, -11, -10, -33,
134
- -21, -72, -25, -27, -28, -29, -37, -63, -72, 115,
135
- -63, -72, -22, -26, -63, -72, -72, -36, -64, -65,
136
- -72, -63, -72, -72, -72, -72, -13, -72, -23, -37,
137
- -38, -72, -40, -72, -63, -66, -37, -68, -70, -63,
138
- -7, -12, -14, -72, -24, -30, -63, -39, -41, -72,
139
- -72, -67, -72, -72, -23, -42, -43, -44, -45, -46,
140
- -47, -48, -49, -50, -51, -72, -72, -72, -62, -69,
141
- -71, -19, -16, -72, -31, -52, -53, -72, -55, -57,
142
- -72, -59, -72, -15, -17, -72, -72, -54, -56, -58,
143
- -60, -72, -20, -18, -61 ]
136
+ -73, -73, -1, -2, -3, -5, -6, -9, -8, -73,
137
+ -32, -33, -34, -35, -36, -37, -73, -4, -11, -10,
138
+ -35, -21, -73, -25, -27, -28, -29, -38, -64, -73,
139
+ 116, -64, -73, -22, -26, -64, -73, -73, -65, -66,
140
+ -73, -64, -73, -73, -73, -73, -73, -13, -73, -23,
141
+ -38, -39, -73, -41, -73, -67, -38, -69, -64, -71,
142
+ -64, -7, -12, -14, -73, -24, -30, -64, -40, -42,
143
+ -73, -68, -73, -73, -73, -23, -43, -44, -45, -46,
144
+ -47, -48, -49, -50, -51, -52, -73, -73, -73, -63,
145
+ -70, -72, -19, -16, -73, -31, -53, -54, -73, -56,
146
+ -58, -73, -60, -73, -15, -17, -73, -73, -55, -57,
147
+ -59, -61, -73, -20, -18, -62 ]
144
148
 
145
149
  racc_goto_table = [
146
- 18, 34, 26, 46, 28, 4, 75, 58, 16, 60,
147
- 22, 103, 65, 64, 26, 45, 21, 62, 42, 30,
148
- 41, 44, 33, 98, 66, 48, 91, 17, 49, 53,
149
- 54, 71, 57, 56, 108, 89, 59, 90, 94, 64,
150
- 63, 52, 112, 1, 53, 70, 106, 101, 114, 51,
151
- 72, 3, 97, 100, 2, 55, 68, 74, nil, nil,
152
- 110, nil, nil, nil, nil, nil, 92, nil, nil, nil,
153
- nil, nil, nil, nil, nil, nil, nil, nil, 95, nil,
154
- 102, nil, nil, nil, nil, nil, 92, nil, nil, nil,
155
- nil, nil, nil, 102 ]
150
+ 19, 41, 27, 92, 76, 35, 29, 104, 22, 4,
151
+ 66, 47, 17, 46, 31, 27, 18, 60, 1, 52,
152
+ 59, 99, 61, 107, 43, 63, 65, 45, 67, 50,
153
+ 54, 49, 109, 56, 71, 58, 95, 57, 53, 3,
154
+ 113, 64, 102, 98, 23, 54, 115, 101, 2, 90,
155
+ 91, 55, 65, 69, 72, 111, 73, 34, nil, nil,
156
+ nil, nil, nil, 75, nil, nil, nil, 93, nil, nil,
157
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 96,
158
+ nil, 103, nil, nil, nil, nil, nil, 93, nil, nil,
159
+ nil, nil, nil, nil, 103 ]
156
160
 
157
161
  racc_goto_check = [
158
- 7, 23, 7, 13, 7, 4, 16, 11, 4, 11,
159
- 19, 15, 18, 11, 7, 12, 17, 13, 10, 9,
160
- 7, 10, 19, 16, 23, 10, 14, 8, 7, 7,
161
- 7, 23, 10, 7, 16, 11, 7, 11, 18, 11,
162
- 7, 25, 16, 1, 7, 10, 14, 32, 16, 24,
163
- 10, 3, 30, 31, 2, 34, 25, 10, nil, nil,
164
- 32, nil, nil, nil, nil, nil, 7, nil, nil, nil,
165
- nil, nil, nil, nil, nil, nil, nil, nil, 7, nil,
166
- 7, nil, nil, nil, nil, nil, 7, nil, nil, nil,
167
- nil, nil, nil, 7 ]
162
+ 7, 24, 7, 14, 16, 23, 7, 15, 17, 4,
163
+ 18, 13, 4, 12, 9, 7, 8, 24, 1, 25,
164
+ 11, 16, 11, 14, 10, 13, 11, 10, 23, 7,
165
+ 7, 10, 16, 7, 23, 7, 18, 10, 26, 3,
166
+ 16, 7, 33, 31, 19, 7, 16, 32, 2, 11,
167
+ 11, 35, 11, 26, 10, 33, 10, 19, nil, nil,
168
+ nil, nil, nil, 10, nil, nil, nil, 7, nil, nil,
169
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 7,
170
+ nil, 7, nil, nil, nil, nil, nil, 7, nil, nil,
171
+ nil, nil, nil, nil, 7 ]
168
172
 
169
173
  racc_goto_pointer = [
170
- nil, 43, 54, 51, 5, nil, nil, -7, 20, 2,
171
- -9, -35, -16, -28, -47, -80, -63, 7, -36, 1,
172
- nil, nil, nil, -25, 13, 5, nil, nil, nil, nil,
173
- -34, -34, -40, nil, 17 ]
174
+ nil, 18, 48, 39, 9, nil, nil, -7, 9, -4,
175
+ -4, -23, -19, -21, -71, -85, -66, -1, -39, 35,
176
+ nil, nil, nil, -22, -27, -18, 1, nil, nil, nil,
177
+ nil, -44, -41, -46, nil, 13 ]
174
178
 
175
179
  racc_goto_default = [
176
180
  nil, nil, nil, nil, nil, 5, 6, 7, nil, nil,
177
181
  nil, 8, nil, nil, nil, nil, nil, nil, nil, nil,
178
- 23, 24, 25, nil, nil, nil, 81, 82, 83, 84,
179
- nil, nil, nil, 38, 39 ]
182
+ 24, 25, 26, nil, 10, nil, nil, 82, 83, 84,
183
+ 85, nil, nil, nil, 38, 39 ]
180
184
 
181
185
  racc_reduce_table = [
182
186
  0, 0, :racc_error,
@@ -213,48 +217,49 @@ racc_reduce_table = [
213
217
  6, 42, :_reduce_31,
214
218
  1, 29, :_reduce_none,
215
219
  1, 29, :_reduce_none,
216
- 1, 29, :_reduce_none,
217
- 1, 29, :_reduce_none,
218
- 1, 29, :_reduce_none,
219
- 0, 45, :_reduce_37,
220
- 2, 45, :_reduce_38,
221
- 3, 45, :_reduce_39,
222
- 1, 46, :_reduce_40,
223
- 2, 46, :_reduce_41,
224
- 3, 47, :_reduce_42,
225
- 1, 38, :_reduce_43,
220
+ 1, 46, :_reduce_none,
221
+ 1, 46, :_reduce_none,
222
+ 1, 46, :_reduce_none,
223
+ 1, 46, :_reduce_none,
224
+ 0, 45, :_reduce_38,
225
+ 2, 45, :_reduce_39,
226
+ 3, 45, :_reduce_40,
227
+ 1, 47, :_reduce_41,
228
+ 2, 47, :_reduce_42,
229
+ 3, 48, :_reduce_43,
226
230
  1, 38, :_reduce_44,
227
231
  1, 38, :_reduce_45,
228
232
  1, 38, :_reduce_46,
229
233
  1, 38, :_reduce_47,
234
+ 1, 38, :_reduce_48,
230
235
  1, 38, :_reduce_none,
231
236
  1, 38, :_reduce_none,
232
237
  1, 38, :_reduce_none,
233
238
  1, 38, :_reduce_none,
234
- 2, 48, :_reduce_52,
235
239
  2, 49, :_reduce_53,
236
- 3, 49, :_reduce_54,
237
- 1, 52, :_reduce_55,
238
- 2, 52, :_reduce_56,
239
- 2, 50, :_reduce_57,
240
- 3, 50, :_reduce_58,
241
- 1, 53, :_reduce_59,
242
- 2, 53, :_reduce_60,
243
- 3, 54, :_reduce_61,
244
- 1, 51, :_reduce_62,
245
- 0, 32, :_reduce_63,
240
+ 2, 50, :_reduce_54,
241
+ 3, 50, :_reduce_55,
242
+ 1, 53, :_reduce_56,
243
+ 2, 53, :_reduce_57,
244
+ 2, 51, :_reduce_58,
245
+ 3, 51, :_reduce_59,
246
+ 1, 54, :_reduce_60,
247
+ 2, 54, :_reduce_61,
248
+ 3, 55, :_reduce_62,
249
+ 1, 52, :_reduce_63,
250
+ 0, 32, :_reduce_64,
246
251
  1, 32, :_reduce_none,
247
- 1, 55, :_reduce_65,
248
- 2, 55, :_reduce_66,
249
- 3, 56, :_reduce_67,
250
- 3, 43, :_reduce_68,
251
- 5, 44, :_reduce_69,
252
- 3, 44, :_reduce_70,
253
- 6, 28, :_reduce_71 ]
252
+ 1, 56, :_reduce_66,
253
+ 2, 56, :_reduce_67,
254
+ 3, 57, :_reduce_68,
255
+ 3, 43, :_reduce_69,
256
+ 5, 44, :_reduce_70,
257
+ 3, 44, :_reduce_71,
258
+ 6, 28, :_reduce_72 ]
254
259
 
255
- racc_reduce_n = 72
260
+ racc_reduce_n = 73
256
261
 
257
- racc_shift_n = 115
262
+ racc_shift_n = 116
258
263
 
259
264
  racc_token_table = {
260
265
  false => 0,
@@ -269,11 +274,11 @@ racc_token_table = {
269
274
  :EQUALS => 9,
270
275
  :RCURLY => 10,
271
276
  :LCURLY => 11,
272
- :IDENTIFIER => 12,
273
- :FRAGMENT => 13,
274
- :TRUE => 14,
275
- :FALSE => 15,
276
- :ON => 16,
277
+ :ON => 12,
278
+ :IDENTIFIER => 13,
279
+ :FRAGMENT => 14,
280
+ :TRUE => 15,
281
+ :FALSE => 16,
277
282
  :FLOAT => 17,
278
283
  :INT => 18,
279
284
  :STRING => 19,
@@ -313,11 +318,11 @@ Racc_token_to_s_table = [
313
318
  "EQUALS",
314
319
  "RCURLY",
315
320
  "LCURLY",
321
+ "ON",
316
322
  "IDENTIFIER",
317
323
  "FRAGMENT",
318
324
  "TRUE",
319
325
  "FALSE",
320
- "ON",
321
326
  "FLOAT",
322
327
  "INT",
323
328
  "STRING",
@@ -347,6 +352,7 @@ Racc_token_to_s_table = [
347
352
  "fragment_spread",
348
353
  "inline_fragment",
349
354
  "arguments_opt",
355
+ "name_without_on",
350
356
  "arguments_list",
351
357
  "argument",
352
358
  "variable",
@@ -598,84 +604,84 @@ module_eval(<<'.,.,', 'parser.y', 97)
598
604
 
599
605
  # reduce 36 omitted
600
606
 
601
- module_eval(<<'.,.,', 'parser.y', 117)
602
- def _reduce_37(val, _values, result)
603
- return []
604
- result
605
- end
606
- .,.,
607
+ # reduce 37 omitted
607
608
 
608
- module_eval(<<'.,.,', 'parser.y', 118)
609
+ module_eval(<<'.,.,', 'parser.y', 120)
609
610
  def _reduce_38(val, _values, result)
610
611
  return []
611
612
  result
612
613
  end
613
614
  .,.,
614
615
 
615
- module_eval(<<'.,.,', 'parser.y', 119)
616
+ module_eval(<<'.,.,', 'parser.y', 121)
616
617
  def _reduce_39(val, _values, result)
617
- return val[1]
618
+ return []
618
619
  result
619
620
  end
620
621
  .,.,
621
622
 
622
623
  module_eval(<<'.,.,', 'parser.y', 122)
623
624
  def _reduce_40(val, _values, result)
624
- return [val[0]]
625
+ return val[1]
625
626
  result
626
627
  end
627
628
  .,.,
628
629
 
629
- module_eval(<<'.,.,', 'parser.y', 123)
630
+ module_eval(<<'.,.,', 'parser.y', 125)
630
631
  def _reduce_41(val, _values, result)
631
- val[0] << val[1]
632
+ return [val[0]]
632
633
  result
633
634
  end
634
635
  .,.,
635
636
 
636
637
  module_eval(<<'.,.,', 'parser.y', 126)
637
638
  def _reduce_42(val, _values, result)
638
- return make_node(:Argument, name: val[0], value: val[2], position_source: val[0])
639
+ val[0] << val[1]
639
640
  result
640
641
  end
641
642
  .,.,
642
643
 
643
644
  module_eval(<<'.,.,', 'parser.y', 129)
644
645
  def _reduce_43(val, _values, result)
645
- return val[0].to_f
646
+ return make_node(:Argument, name: val[0], value: val[2], position_source: val[0])
646
647
  result
647
648
  end
648
649
  .,.,
649
650
 
650
- module_eval(<<'.,.,', 'parser.y', 130)
651
+ module_eval(<<'.,.,', 'parser.y', 132)
651
652
  def _reduce_44(val, _values, result)
652
- return val[0].to_i
653
+ return val[0].to_f
653
654
  result
654
655
  end
655
656
  .,.,
656
657
 
657
- module_eval(<<'.,.,', 'parser.y', 131)
658
+ module_eval(<<'.,.,', 'parser.y', 133)
658
659
  def _reduce_45(val, _values, result)
659
- return val[0].to_s
660
+ return val[0].to_i
660
661
  result
661
662
  end
662
663
  .,.,
663
664
 
664
- module_eval(<<'.,.,', 'parser.y', 132)
665
+ module_eval(<<'.,.,', 'parser.y', 134)
665
666
  def _reduce_46(val, _values, result)
666
- return true
667
+ return val[0].to_s
667
668
  result
668
669
  end
669
670
  .,.,
670
671
 
671
- module_eval(<<'.,.,', 'parser.y', 133)
672
+ module_eval(<<'.,.,', 'parser.y', 135)
672
673
  def _reduce_47(val, _values, result)
673
- return false
674
+ return true
674
675
  result
675
676
  end
676
677
  .,.,
677
678
 
678
- # reduce 48 omitted
679
+ module_eval(<<'.,.,', 'parser.y', 136)
680
+ def _reduce_48(val, _values, result)
681
+ return false
682
+ result
683
+ end
684
+ .,.,
679
685
 
680
686
  # reduce 49 omitted
681
687
 
@@ -683,122 +689,124 @@ module_eval(<<'.,.,', 'parser.y', 133)
683
689
 
684
690
  # reduce 51 omitted
685
691
 
686
- module_eval(<<'.,.,', 'parser.y', 139)
687
- def _reduce_52(val, _values, result)
688
- return make_node(:VariableIdentifier, name: val[1], position_source: val[0])
689
- result
690
- end
691
- .,.,
692
+ # reduce 52 omitted
692
693
 
693
694
  module_eval(<<'.,.,', 'parser.y', 142)
694
695
  def _reduce_53(val, _values, result)
695
- return []
696
+ return make_node(:VariableIdentifier, name: val[1], position_source: val[0])
696
697
  result
697
698
  end
698
699
  .,.,
699
700
 
700
- module_eval(<<'.,.,', 'parser.y', 143)
701
+ module_eval(<<'.,.,', 'parser.y', 145)
701
702
  def _reduce_54(val, _values, result)
702
- return val[1]
703
+ return []
703
704
  result
704
705
  end
705
706
  .,.,
706
707
 
707
708
  module_eval(<<'.,.,', 'parser.y', 146)
708
709
  def _reduce_55(val, _values, result)
709
- return [val[0]]
710
+ return val[1]
710
711
  result
711
712
  end
712
713
  .,.,
713
714
 
714
- module_eval(<<'.,.,', 'parser.y', 147)
715
+ module_eval(<<'.,.,', 'parser.y', 149)
715
716
  def _reduce_56(val, _values, result)
716
- val[0] << val[1]
717
+ return [val[0]]
717
718
  result
718
719
  end
719
720
  .,.,
720
721
 
721
722
  module_eval(<<'.,.,', 'parser.y', 150)
722
723
  def _reduce_57(val, _values, result)
723
- return make_node(:InputObject, arguments: [], position_source: val[0])
724
+ val[0] << val[1]
724
725
  result
725
726
  end
726
727
  .,.,
727
728
 
728
- module_eval(<<'.,.,', 'parser.y', 151)
729
+ module_eval(<<'.,.,', 'parser.y', 153)
729
730
  def _reduce_58(val, _values, result)
730
- return make_node(:InputObject, arguments: val[1], position_source: val[0])
731
+ return make_node(:InputObject, arguments: [], position_source: val[0])
731
732
  result
732
733
  end
733
734
  .,.,
734
735
 
735
736
  module_eval(<<'.,.,', 'parser.y', 154)
736
737
  def _reduce_59(val, _values, result)
737
- return [val[0]]
738
+ return make_node(:InputObject, arguments: val[1], position_source: val[0])
738
739
  result
739
740
  end
740
741
  .,.,
741
742
 
742
- module_eval(<<'.,.,', 'parser.y', 155)
743
+ module_eval(<<'.,.,', 'parser.y', 157)
743
744
  def _reduce_60(val, _values, result)
744
- val[0] << val[1]
745
+ return [val[0]]
745
746
  result
746
747
  end
747
748
  .,.,
748
749
 
749
750
  module_eval(<<'.,.,', 'parser.y', 158)
750
751
  def _reduce_61(val, _values, result)
751
- return make_node(:Argument, name: val[0], value: val[2], position_source: val[0])
752
+ val[0] << val[1]
752
753
  result
753
754
  end
754
755
  .,.,
755
756
 
756
- module_eval(<<'.,.,', 'parser.y', 160)
757
+ module_eval(<<'.,.,', 'parser.y', 161)
757
758
  def _reduce_62(val, _values, result)
758
- return make_node(:Enum, name: val[0], position_source: val[0])
759
+ return make_node(:Argument, name: val[0], value: val[2], position_source: val[0])
759
760
  result
760
761
  end
761
762
  .,.,
762
763
 
763
764
  module_eval(<<'.,.,', 'parser.y', 163)
764
765
  def _reduce_63(val, _values, result)
766
+ return make_node(:Enum, name: val[0], position_source: val[0])
767
+ result
768
+ end
769
+ .,.,
770
+
771
+ module_eval(<<'.,.,', 'parser.y', 166)
772
+ def _reduce_64(val, _values, result)
765
773
  return []
766
774
  result
767
775
  end
768
776
  .,.,
769
777
 
770
- # reduce 64 omitted
778
+ # reduce 65 omitted
771
779
 
772
- module_eval(<<'.,.,', 'parser.y', 167)
773
- def _reduce_65(val, _values, result)
780
+ module_eval(<<'.,.,', 'parser.y', 170)
781
+ def _reduce_66(val, _values, result)
774
782
  return [val[0]]
775
783
  result
776
784
  end
777
785
  .,.,
778
786
 
779
- module_eval(<<'.,.,', 'parser.y', 168)
780
- def _reduce_66(val, _values, result)
787
+ module_eval(<<'.,.,', 'parser.y', 171)
788
+ def _reduce_67(val, _values, result)
781
789
  val[0] << val[1]
782
790
  result
783
791
  end
784
792
  .,.,
785
793
 
786
- module_eval(<<'.,.,', 'parser.y', 170)
787
- def _reduce_67(val, _values, result)
794
+ module_eval(<<'.,.,', 'parser.y', 173)
795
+ def _reduce_68(val, _values, result)
788
796
  return make_node(:Directive, name: val[1], arguments: val[2], position_source: val[0])
789
797
  result
790
798
  end
791
799
  .,.,
792
800
 
793
- module_eval(<<'.,.,', 'parser.y', 173)
794
- def _reduce_68(val, _values, result)
801
+ module_eval(<<'.,.,', 'parser.y', 176)
802
+ def _reduce_69(val, _values, result)
795
803
  return make_node(:FragmentSpread, name: val[1], directives: val[2], position_source: val[0])
796
804
  result
797
805
  end
798
806
  .,.,
799
807
 
800
- module_eval(<<'.,.,', 'parser.y', 177)
801
- def _reduce_69(val, _values, result)
808
+ module_eval(<<'.,.,', 'parser.y', 180)
809
+ def _reduce_70(val, _values, result)
802
810
  return make_node(:InlineFragment, {
803
811
  type: val[2],
804
812
  directives: val[3],
@@ -810,8 +818,8 @@ module_eval(<<'.,.,', 'parser.y', 177)
810
818
  end
811
819
  .,.,
812
820
 
813
- module_eval(<<'.,.,', 'parser.y', 185)
814
- def _reduce_70(val, _values, result)
821
+ module_eval(<<'.,.,', 'parser.y', 188)
822
+ def _reduce_71(val, _values, result)
815
823
  return make_node(:InlineFragment, {
816
824
  type: nil,
817
825
  directives: val[1],
@@ -823,8 +831,8 @@ module_eval(<<'.,.,', 'parser.y', 185)
823
831
  end
824
832
  .,.,
825
833
 
826
- module_eval(<<'.,.,', 'parser.y', 195)
827
- def _reduce_71(val, _values, result)
834
+ module_eval(<<'.,.,', 'parser.y', 198)
835
+ def _reduce_72(val, _values, result)
828
836
  return make_node(:FragmentDefinition, {
829
837
  name: val[1],
830
838
  type: val[3],