diff --git a/src/Neon/Parser.php b/src/Neon/Parser.php index 62619f7..f53eca1 100644 --- a/src/Neon/Parser.php +++ b/src/Neon/Parser.php @@ -211,12 +211,12 @@ private function parseBraces(): Node\InlineArrayNode $this->injectPos($item, $item->startTokenPos, $item->value->endTokenPos); - if ($this->tokens->consume(',', Token::Newline)) { - goto loop; - } - + $old = $this->tokens->getPos(); while ($this->tokens->consume(Token::Newline)); - if (!$this->tokens->isNext($endBrace)) { + $this->tokens->consume(','); + if ($old !== $this->tokens->getPos()) { + goto loop; + } elseif (!$this->tokens->isNext($endBrace)) { $this->tokens->error(); } diff --git a/tests/Neon/Decoder.inline.array.phpt b/tests/Neon/Decoder.inline.array.phpt index 967bb43..8d63830 100644 --- a/tests/Neon/Decoder.inline.array.phpt +++ b/tests/Neon/Decoder.inline.array.phpt @@ -66,3 +66,7 @@ Assert::same( // JSON compatibility Assert::same(['a' => true], Neon::decode('{"a":true}')); +Assert::same([1, 2], Neon::decode('[1,2]')); +Assert::same([1, 2], Neon::decode("[1\n,2]")); +Assert::same([1, 2], Neon::decode("[1,\n2]")); +Assert::same([1, 2], Neon::decode("[1\n,\n2]"));