@@ 16-37 (lines=22) @@ | ||
13 | return Token::getNameFor($tokenType); |
|
14 | } |
|
15 | ||
16 | private function parseObject() |
|
17 | { |
|
18 | $location = $this->expect(Token::T_BRACE_LEFT)->location; |
|
19 | $fields = array(); |
|
20 | ||
21 | while (true) { |
|
22 | if ($this->scanner->eof()) { |
|
23 | throw $this->getParseError('Unclosed brace of object value'); |
|
24 | } |
|
25 | ||
26 | if ($this->accept(Token::T_BRACE_RIGHT)) { |
|
27 | break; |
|
28 | } |
|
29 | ||
30 | $nameToken = $this->expect(Token::T_NAME); |
|
31 | $this->expect(Token::T_COLON); |
|
32 | $fields[] = new ValueObjectField($nameToken->value, $this->parseValue(), $nameToken->location); |
|
33 | $this->accept(Token::T_COMMA); |
|
34 | } |
|
35 | ||
36 | return new ValueObject($fields, $location); |
|
37 | } |
|
38 | ||
39 | private function parseList() |
|
40 | { |
@@ 72-88 (lines=17) @@ | ||
69 | throw $this->getParseError($message . " but instead found \"{$token->getName()}\" with value \"{$token->value}\""); |
|
70 | } |
|
71 | ||
72 | private function parseObject() |
|
73 | { |
|
74 | $location = $this->expect(Token::T_BRACE_LEFT)->location; |
|
75 | $fields = array(); |
|
76 | while ($this->scanner->eof() === false) { |
|
77 | if ($this->accept(Token::T_BRACE_RIGHT)) { |
|
78 | return new ValueObject($fields, $location); |
|
79 | } |
|
80 | ||
81 | $nameToken = $this->expect(Token::T_NAME); |
|
82 | $this->expect(Token::T_COLON); |
|
83 | $fields[] = new ValueObjectField($nameToken->value, $this->parseValue(), $nameToken->location); |
|
84 | $this->accept(Token::T_COMMA); |
|
85 | } |
|
86 | ||
87 | throw $this->getParseError('Unclosed brace of object value'); |
|
88 | } |
|
89 | ||
90 | private function parseList() |
|
91 | { |
|
@@ 241-261 (lines=21) @@ | ||
238 | throw $this->getParseError('Expected an object field but instead reached end'); |
|
239 | } |
|
240 | ||
241 | private function parseInputObjectDeclaration() |
|
242 | { |
|
243 | $location = $this->expect(Token::T_NAME)->location; |
|
244 | $name = $this->expect(Token::T_NAME)->value; |
|
245 | $this->expect(Token::T_BRACE_LEFT); |
|
246 | $fields = array(); |
|
247 | while ($this->scanner->eof() === false) { |
|
248 | if ($this->accept(Token::T_BRACE_RIGHT)) { |
|
249 | return new DeclarationInputObject( |
|
250 | $name, |
|
251 | $fields, |
|
252 | $location |
|
253 | ); |
|
254 | } |
|
255 | ||
256 | $fields[] = $this->parseField(true); |
|
257 | $this->accept(Token::T_COMMA); |
|
258 | } |
|
259 | ||
260 | throw $this->getParseError('Expected an input object field but instead reached end'); |
|
261 | } |
|
262 | ||
263 | private function parseEnumDeclaration() |
|
264 | { |
|
@@ 263-283 (lines=21) @@ | ||
260 | throw $this->getParseError('Expected an input object field but instead reached end'); |
|
261 | } |
|
262 | ||
263 | private function parseEnumDeclaration() |
|
264 | { |
|
265 | $location = $this->expect(Token::T_NAME)->location; |
|
266 | $name = $this->expect(Token::T_NAME)->value; |
|
267 | $this->expect(Token::T_BRACE_LEFT); |
|
268 | $values = array(); |
|
269 | while ($this->scanner->eof() === false) { |
|
270 | if ($this->accept(Token::T_BRACE_RIGHT)) { |
|
271 | return new DeclarationEnum( |
|
272 | $name, |
|
273 | $values, |
|
274 | $location |
|
275 | ); |
|
276 | } |
|
277 | ||
278 | $values[] = $this->expect(Token::T_NAME)->value; |
|
279 | $this->accept(Token::T_COMMA); |
|
280 | } |
|
281 | ||
282 | throw $this->getParseError('Expected an enumeration value but instead reached end'); |
|
283 | } |
|
284 | ||
285 | private function parseInterfaceDeclaration() |
|
286 | { |
|
@@ 285-305 (lines=21) @@ | ||
282 | throw $this->getParseError('Expected an enumeration value but instead reached end'); |
|
283 | } |
|
284 | ||
285 | private function parseInterfaceDeclaration() |
|
286 | { |
|
287 | $location = $this->expect(Token::T_NAME)->location; |
|
288 | $name = $this->expect(Token::T_NAME)->value; |
|
289 | $this->expect(Token::T_BRACE_LEFT); |
|
290 | $fields = array(); |
|
291 | while ($this->scanner->eof() === false) { |
|
292 | if ($this->accept(Token::T_BRACE_RIGHT)) { |
|
293 | return new DeclarationInterface( |
|
294 | $name, |
|
295 | $fields, |
|
296 | $location |
|
297 | ); |
|
298 | } |
|
299 | ||
300 | $fields[] = $this->parseField(false); |
|
301 | $this->accept(Token::T_COMMA); |
|
302 | } |
|
303 | ||
304 | throw $this->getParseError('Expected an interface field but instead reached end'); |
|
305 | } |
|
306 | ||
307 | private function parseUnionDeclaration() |
|
308 | { |