for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/**
* php-gedcom.
*
* php-gedcom is a library for parsing, manipulating, importing and exporting
* GEDCOM 5.5 files in PHP 5.3+.
* @author Kristopher Wilson <[email protected]>
* @copyright Copyright (c) 2010-2013, Kristopher Wilson
* @license MIT
* @link http://github.com/mrkrstphr/php-gedcom
*/
namespace PhpGedcom\Parser;
class Caln extends \PhpGedcom\Parser\Component
{
public static function parse(\PhpGedcom\Parser $parser)
$record = $parser->getCurrentLineRecord();
$depth = (int) $record[0];
if (isset($record[2])) {
$identifier = $parser->normalizeIdentifier($record[2]);
} else {
$parser->skipToNextLevel($depth);
return null;
}
$caln = new \PhpGedcom\Record\Caln();
$caln->setCaln($identifier);
$parser->forward();
while (!$parser->eof()) {
$recordType = strtolower(trim($record[1]));
$lineDepth = (int) $record[0];
if ($lineDepth <= $depth) {
$parser->back();
break;
if ($caln->hasAttribute($recordType)) {
$caln->{'set'.$recordType}(trim($record[2]));
$parser->logUnhandledRecord(get_class().' @ '.__LINE__);
return $caln;