public static function parse($s, $acceptQuotableValue = false) { $node = NodeTreeBuilder::create()->setKeyFinder(KeyFinder::create()->setKvSep(':'))->setUseMultiLine(false)->setUseComment(true)->setCommentSymbol('#')->setHasLeadingIndentChar(true)->setIndentChar('-')->buildNode($s); if (true === $acceptQuotableValue) { return NodeToArrayConvertor::create()->setInterpreter(QuotableValueInterpreter::create()->setQuotedValueIsAlwaysString(true))->convert($node); } return NodeToArrayConvertor::create()->convert($node); }
if (false !== strpos($value[2], 'c')) { $useComment = true; } if (false !== strpos($value[2], 'h')) { $hasLeadingIndentChar = true; } } if (array_key_exists(3, $value)) { $indentChar = $value[3]; } if (array_key_exists(4, $value)) { $nbIndentCharPerLevel = $value[4]; } if (array_key_exists(5, $value)) { $commentSymbol = $value[5]; } $file = __DIR__ . "/resources/" . $baseName; if (file_exists($file)) { $builder = NodeTreeBuilder::create()->setCommentSymbol($commentSymbol)->setHasLeadingIndentChar($hasLeadingIndentChar)->setIndentChar($indentChar)->setKeyMode($keyMode)->setNbIndentCharPerLevel($nbIndentCharPerLevel)->setUseComment($useComment)->setUseMultiLine($useMultiLine); $node = $builder->buildNode(file_get_contents($file)); $res = NodeToArrayConvertor::create()->convert($node); if ($expected !== $res) { ComparisonErrorTableTool::collect($testNumber, $expected, $res); } return $expected === $res; } else { throw new BeastNotApplicableException("file not found: {$file}"); } }); PrettyTestInterpreter::create()->execute($agg); ComparisonErrorTableTool::display();
public static function parseDashList($s) { $node = NodeTreeBuilder::create()->setHasLeadingIndentChar(true)->setIndentChar('-')->buildNode($s); return NodeToArrayConvertor::create()->convert($node); }