http://www.mediawiki.org/wiki/Special:Code/MediaWiki/71889

Revision: 71889
Author:   siebrand
Date:     2010-08-29 17:39:29 +0000 (Sun, 29 Aug 2010)

Log Message:
-----------
New version of spyc (r91)

From: http://spyc.googlecode.com/svn/trunk/spyc.php

Modified Paths:
--------------
    trunk/extensions/Translate/spyc/spyc.php

Modified: trunk/extensions/Translate/spyc/spyc.php
===================================================================
--- trunk/extensions/Translate/spyc/spyc.php    2010-08-29 17:13:14 UTC (rev 
71888)
+++ trunk/extensions/Translate/spyc/spyc.php    2010-08-29 17:39:29 UTC (rev 
71889)
@@ -10,25 +10,25 @@
    * @package Spyc
    */
 
-if ( !function_exists( 'spyc_load' ) ) {
+if (!function_exists('spyc_load')) {
   /**
    * Parses YAML to array.
    * @param string $string YAML string.
    * @return array
    */
-  function spyc_load ( $string ) {
-    return Spyc::YAMLLoadString( $string );
+  function spyc_load ($string) {
+    return Spyc::YAMLLoadString($string);
   }
 }
 
-if ( !function_exists( 'spyc_load_file' ) ) {
+if (!function_exists('spyc_load_file')) {
   /**
    * Parses YAML to array.
    * @param string $file Path to YAML file.
    * @return array
    */
-  function spyc_load_file ( $file ) {
-    return Spyc::YAMLLoad( $file );
+  function spyc_load_file ($file) {
+    return Spyc::YAMLLoad($file);
   }
 }
 
@@ -105,8 +105,8 @@
  * @param string $input
  * @return array
  */
-  public function load ( $input ) {
-    return $this->__loadString( $input );
+  public function load ($input) {
+    return $this->__loadString($input);
   }
 
  /**
@@ -114,8 +114,8 @@
  * @param string $file
  * @return array
  */
-  public function loadFile ( $file ) {
-    return $this->__load( $file );
+  public function loadFile ($file) {
+    return $this->__load($file);
   }
 
   /**
@@ -133,9 +133,9 @@
      * @return array
      * @param string $input Path of YAML file or string containing YAML
      */
-  public static function YAMLLoad( $input ) {
+  public static function YAMLLoad($input) {
     $Spyc = new Spyc;
-    return $Spyc->__load( $input );
+    return $Spyc->__load($input);
   }
 
   /**
@@ -157,9 +157,9 @@
      * @return array
      * @param string $input String containing YAML
      */
-  public static function YAMLLoadString( $input ) {
+  public static function YAMLLoadString($input) {
     $Spyc = new Spyc;
-    return $Spyc->__loadString( $input );
+    return $Spyc->__loadString($input);
   }
 
   /**
@@ -182,9 +182,9 @@
      * @param int $indent Pass in false to use the default, which is 2
      * @param int $wordwrap Pass in 0 for no wordwrap, false for default (40)
      */
-  public static function YAMLDump( $array, $indent = false, $wordwrap = false 
) {
+  public static function YAMLDump($array,$indent = false,$wordwrap = false) {
     $spyc = new Spyc;
-    return $spyc->dump( $array, $indent, $wordwrap );
+    return $spyc->dump($array,$indent,$wordwrap);
   }
 
 
@@ -208,18 +208,18 @@
      * @param int $indent Pass in false to use the default, which is 2
      * @param int $wordwrap Pass in 0 for no wordwrap, false for default (40)
      */
-  public function dump( $array, $indent = false, $wordwrap = false ) {
+  public function dump($array,$indent = false,$wordwrap = false) {
     // Dumps to some very clean YAML.  We'll have to add some more features
     // and options soon.  And better support for folding.
 
     // New features and options.
-    if ( $indent === false or !is_numeric( $indent ) ) {
+    if ($indent === false or !is_numeric($indent)) {
       $this->_dumpIndent = 2;
     } else {
       $this->_dumpIndent = $indent;
     }
 
-    if ( $wordwrap === false or !is_numeric( $wordwrap ) ) {
+    if ($wordwrap === false or !is_numeric($wordwrap)) {
       $this->_dumpWordWrap = 40;
     } else {
       $this->_dumpWordWrap = $wordwrap;
@@ -229,13 +229,13 @@
     $string = "---\n";
 
     // Start at the base of the array and move through it.
-    if ( $array ) {
+    if ($array) {
       $array = (array)$array;
-      $first_key = key( $array );
+      $first_key = key($array);
       
       $previous_key = -1;
-      foreach ( $array as $key => $value ) {
-        $string .= $this->_yamlize( $key, $value, 0, $previous_key, $first_key 
);
+      foreach ($array as $key => $value) {
+        $string .= $this->_yamlize($key,$value,0,$previous_key, $first_key, 
$array);
         $previous_key = $key;
       }
     }
@@ -250,20 +250,20 @@
      * @param $value The value of the item
      * @param $indent The indent of the current node
      */
-  private function _yamlize( $key, $value, $indent, $previous_key = -1, 
$first_key = 0 ) {
-    if ( is_array( $value ) ) {
-      if ( empty ( $value ) )
-        return $this->_dumpNode( $key, array(), $indent, $previous_key, 
$first_key );
+  private function _yamlize($key,$value,$indent, $previous_key = -1, 
$first_key = 0, $source_array = null) {
+    if (is_array($value)) {
+      if (empty ($value))
+        return $this->_dumpNode($key, array(), $indent, $previous_key, 
$first_key, $source_array);
       // It has children.  What to do?
       // Make it the right kind of item
-      $string = $this->_dumpNode( $key, null, $indent, $previous_key, 
$first_key );
+      $string = $this->_dumpNode($key, NULL, $indent, $previous_key, 
$first_key, $source_array);
       // Add the indent
       $indent += $this->_dumpIndent;
       // Yamlize the array
-      $string .= $this->_yamlizeArray( $value, $indent );
-    } elseif ( !is_array( $value ) ) {
+      $string .= $this->_yamlizeArray($value,$indent);
+    } elseif (!is_array($value)) {
       // It doesn't have children.  Yip.
-      $string = $this->_dumpNode( $key, $value, $indent, $previous_key, 
$first_key );
+      $string = $this->_dumpNode($key, $value, $indent, $previous_key, 
$first_key, $source_array);
     }
     return $string;
   }
@@ -275,13 +275,14 @@
      * @param $array The array you want to convert
      * @param $indent The indent of the current level
      */
-  private function _yamlizeArray( $array, $indent ) {
-    if ( is_array( $array ) ) {
+  private function _yamlizeArray($array,$indent) {
+    if (is_array($array)) {
       $string = '';
       $previous_key = -1;
-      $first_key = key( $array );
-      foreach ( $array as $key => $value ) {
-        $string .= $this->_yamlize( $key, $value, $indent, $previous_key, 
$first_key );
+      $first_key = key($array);
+
+      foreach ($array as $key => $value) {
+        $string .= $this->_yamlize($key, $value, $indent, $previous_key, 
$first_key, $array);
         $previous_key = $key;
       }
       return $string;
@@ -298,38 +299,40 @@
      * @param $value The value of the item
      * @param $indent The indent of the current node
      */
-  private function _dumpNode( $key, $value, $indent, $previous_key = -1, 
$first_key = 0 ) {
+  private function _dumpNode($key, $value, $indent, $previous_key = -1, 
$first_key = 0, $source_array = null) {
     // do some folding here, for blocks
-    if ( is_string ( $value ) && ( ( strpos( $value, "\n" ) !== false || 
strpos( $value, ": " ) !== false || strpos( $value, "- " ) !== false ||
-      strpos( $value, "*" ) !== false || strpos( $value, "#" ) !== false || 
strpos( $value, "<" ) !== false || strpos( $value, ">" ) !== false || strpos ( 
$value, '  ' ) !== false ||
-      strpos( $value, "[" ) !== false || strpos( $value, "]" ) !== false || 
strpos( $value, "{" ) !== false || strpos( $value, "}" ) !== false ) || substr 
( $value, -1, 1 ) == ':' )
+    if (is_string ($value) && ((strpos($value,"\n") !== false || 
strpos($value,": ") !== false || strpos($value,"- ") !== false ||
+      strpos($value,"*") !== false || strpos($value,"#") !== false || 
strpos($value,"<") !== false || strpos($value,">") !== false || strpos ($value, 
'  ') !== false ||
+      strpos($value,"[") !== false || strpos($value,"]") !== false || 
strpos($value,"{") !== false || strpos($value,"}") !== false) || 
strpos($value,"&") !== false ||
+      substr ($value, -1, 1) == ':')
     ) {
-      $value = $this->_doLiteralBlock( $value, $indent );
+      $value = $this->_doLiteralBlock($value,$indent);
     } else {
-      $value  = $this->_doFolding( $value, $indent );
+      $value  = $this->_doFolding($value,$indent);
     }
 
-    if ( $value === array() ) $value = '[ ]';
-    if ( in_array ( $value, array ( 'true', 'TRUE', 'false', 'FALSE', 'y', 
'Y', 'n', 'N', 'null', 'NULL' ), true ) ) {
-       $value = $this->_doLiteralBlock( $value, $indent );
+    if ($value === array()) $value = '[ ]';
+    if (in_array ($value, array ('true', 'TRUE', 'false', 'FALSE', 'y', 'Y', 
'n', 'N', 'null', 'NULL'), true)) {
+       $value = $this->_doLiteralBlock($value,$indent);
     }
-    if ( trim ( $value ) != $value )
-       $value = $this->_doLiteralBlock( $value, $indent );
+    if (trim ($value) != $value)
+       $value = $this->_doLiteralBlock($value,$indent);
 
-    if ( is_bool( $value ) ) {
-       $value = ( $value ) ? "true" : "false";
+    if (is_bool($value)) {
+       $value = ($value) ? "true" : "false";
     }
 
-    $spaces = str_repeat( ' ', $indent );
+    $spaces = str_repeat(' ',$indent);
 
-    if ( is_int( $key ) && $key - 1 == $previous_key && $first_key === 0 ) {
+    //if (is_int($key) && $key - 1 == $previous_key && $first_key===0) {
+    if (is_array ($source_array) && array_keys($source_array) === range(0, 
count($source_array) - 1)) {
       // It's a sequence
-      $string = $spaces . '- ' . $value . "\n";
+      $string = $spaces.'- '.$value."\n";
     } else {
-      if ( $first_key === 0 )  throw new Exception( 'Keys are all screwy.  The 
first one was zero, now it\'s "' . $key . '"' );
+      // if ($first_key===0)  throw new Exception('Keys are all screwy.  The 
first one was zero, now it\'s "'. $key .'"');
       // It's mapped
-      if ( strpos( $key, ":" ) !== false ) { $key = '"' . $key . '"'; }
-      $string = $spaces . $key . ': ' . $value . "\n";
+      if (strpos($key, ":") !== false || strpos($key, "#") !== false) { $key = 
'"' . $key . '"'; }
+      $string = rtrim ($spaces.$key.': '.$value)."\n";
     }
     return $string;
   }
@@ -341,20 +344,20 @@
      * @param $value
      * @param $indent int The value of the indent
      */
-  private function _doLiteralBlock( $value, $indent ) {
-    if ( $value === "\n" ) return '\n';
-    if ( strpos( $value, "\n" ) === false && strpos( $value, "'" ) === false ) 
{
-      return sprintf ( "'%s'", $value );
+  private function _doLiteralBlock($value,$indent) {
+    if ($value === "\n") return '\n';
+    if (strpos($value, "\n") === false && strpos($value, "'") === false) {
+      return sprintf ("'%s'", $value);
     }
-    if ( strpos( $value, "\n" ) === false && strpos( $value, '"' ) === false ) 
{
-      return sprintf ( '"%s"', $value );
+    if (strpos($value, "\n") === false && strpos($value, '"') === false) {
+      return sprintf ('"%s"', $value);
     }
-    $exploded = explode( "\n", $value );
+    $exploded = explode("\n",$value);
     $newValue = '|';
     $indent  += $this->_dumpIndent;
-    $spaces   = str_repeat( ' ', $indent );
-    foreach ( $exploded as $line ) {
-      $newValue .= "\n" . $spaces . ( $line );
+    $spaces   = str_repeat(' ',$indent);
+    foreach ($exploded as $line) {
+      $newValue .= "\n" . $spaces . ($line);
     }
     return $newValue;
   }
@@ -365,16 +368,16 @@
      * @return string
      * @param $value The string you wish to fold
      */
-  private function _doFolding( $value, $indent ) {
+  private function _doFolding($value,$indent) {
     // Don't do anything if wordwrap is set to 0
 
-    if ( $this->_dumpWordWrap !== 0 && is_string ( $value ) && strlen( $value 
) > $this->_dumpWordWrap ) {
+    if ($this->_dumpWordWrap !== 0 && is_string ($value) && strlen($value) > 
$this->_dumpWordWrap) {
       $indent += $this->_dumpIndent;
-      $indent = str_repeat( ' ', $indent );
-      $wrapped = wordwrap( $value, $this->_dumpWordWrap, "\n$indent" );
-      $value   = ">\n" . $indent . $wrapped;
+      $indent = str_repeat(' ',$indent);
+      $wrapped = wordwrap($value,$this->_dumpWordWrap,"\n$indent");
+      $value   = ">\n".$indent.$wrapped;
     } else {
-      if ( $this->setting_dump_force_quotes && is_string ( $value ) )
+      if ($this->setting_dump_force_quotes && is_string ($value))
         $value = '"' . $value . '"';
     }
 
@@ -384,69 +387,69 @@
 
 // LOADING FUNCTIONS
 
-  private function __load( $input ) {
-    $Source = $this->loadFromSource( $input );
-    return $this->loadWithSource( $Source );
+  private function __load($input) {
+    $Source = $this->loadFromSource($input);
+    return $this->loadWithSource($Source);
   }
 
-  private function __loadString( $input ) {
-    $Source = $this->loadFromString( $input );
-    return $this->loadWithSource( $Source );
+  private function __loadString($input) {
+    $Source = $this->loadFromString($input);
+    return $this->loadWithSource($Source);
   }
 
-  private function loadWithSource( $Source ) {
-    if ( empty ( $Source ) ) return array();
-    if ( $this->setting_use_syck_is_possible && function_exists ( 'syck_load' 
) ) {
-      $array = syck_load ( implode ( '', $Source ) );
-      return is_array( $array ) ? $array : array();
+  private function loadWithSource($Source) {
+    if (empty ($Source)) return array();
+    if ($this->setting_use_syck_is_possible && function_exists ('syck_load')) {
+      $array = syck_load (implode ('', $Source));
+      return is_array($array) ? $array : array();
     }
 
     $this->path = array();
     $this->result = array();
 
-    $cnt = count( $Source );
-    for ( $i = 0; $i < $cnt; $i++ ) {
+    $cnt = count($Source);
+    for ($i = 0; $i < $cnt; $i++) {
       $line = $Source[$i];
       
-      $this->indent = strlen( $line ) - strlen( ltrim( $line ) );
-      $tempPath = $this->getParentPathByIndent( $this->indent );
-      $line = self::stripIndent( $line, $this->indent );
-      if ( self::isComment( $line ) ) continue;
-      if ( self::isEmpty( $line ) ) continue;
+      $this->indent = strlen($line) - strlen(ltrim($line));
+      $tempPath = $this->getParentPathByIndent($this->indent);
+      $line = self::stripIndent($line, $this->indent);
+      if (self::isComment($line)) continue;
+      if (self::isEmpty($line)) continue;
       $this->path = $tempPath;
 
-      $literalBlockStyle = self::startsLiteralBlock( $line );
-      if ( $literalBlockStyle ) {
-        $line = rtrim ( $line, $literalBlockStyle . " \n" );
+      $literalBlockStyle = self::startsLiteralBlock($line);
+      if ($literalBlockStyle) {
+        $line = rtrim ($line, $literalBlockStyle . " \n");
         $literalBlock = '';
         $line .= $this->LiteralPlaceHolder;
 
-        while ( ++$i < $cnt && $this->literalBlockContinues( $Source[$i], 
$this->indent ) ) {
-          $literalBlock = $this->addLiteralLine( $literalBlock, $Source[$i], 
$literalBlockStyle );
+        while (++$i < $cnt && $this->literalBlockContinues($Source[$i], 
$this->indent)) {
+          $literalBlock = $this->addLiteralLine($literalBlock, $Source[$i], 
$literalBlockStyle);
         }
         $i--;
       }
 
-      while ( ++$i < $cnt && self::greedilyNeedNextLine( $line ) ) {
-        $line = rtrim ( $line, " \n\t\r" ) . ' ' . ltrim ( $Source[$i], " \t" 
);
+      while (++$i < $cnt && self::greedilyNeedNextLine($line)) {
+        $line = rtrim ($line, " \n\t\r") . ' ' . ltrim ($Source[$i], " \t");
       }
       $i--;
 
 
 
-      if ( strpos ( $line, '#' ) ) {
-        if ( strpos ( $line, '"' ) === false && strpos ( $line, "'" ) === 
false )
-          $line = preg_replace( '/\s+#(.+)$/', '', $line );
+      if (strpos ($line, '#')) {
+        if (strpos ($line, '"') === false && strpos ($line, "'") === false)
+          $line = preg_replace('/\s+#(.+)$/','',$line);
       }
 
-      $lineArray = $this->_parseLine( $line );
+      $lineArray = $this->_parseLine($line);
 
-      if ( $literalBlockStyle )
-        $lineArray = $this->revertLiteralPlaceHolder ( $lineArray, 
$literalBlock );
+      if ($literalBlockStyle)
+        $lineArray = $this->revertLiteralPlaceHolder ($lineArray, 
$literalBlock);
 
-      $this->addArray( $lineArray, $this->indent );
+      $this->addArray($lineArray, $this->indent);
 
-      foreach ( $this->delayedPath as $indent => $delayedPath )
+      foreach ($this->delayedPath as $indent => $delayedPath)
         $this->path[$indent] = $delayedPath;
 
       $this->delayedPath = array();
@@ -455,17 +458,17 @@
     return $this->result;
   }
 
-  private function loadFromSource ( $input ) {
-    if ( !empty( $input ) && strpos( $input, "\n" ) === false && file_exists( 
$input ) )
-    return file( $input );
+  private function loadFromSource ($input) {
+    if (!empty($input) && strpos($input, "\n") === false && 
file_exists($input))
+    return file($input);
 
-    return $this->loadFromString( $input );
+    return $this->loadFromString($input);
   }
 
-  private function loadFromString ( $input ) {
-    $lines = explode( "\n", $input );
-    foreach ( $lines as $k => $_ ) {
-      $lines[$k] = rtrim ( $_, "\r" );
+  private function loadFromString ($input) {
+    $lines = explode("\n",$input);
+    foreach ($lines as $k => $_) {
+      $lines[$k] = rtrim ($_, "\r");
     }
     return $lines;
   }
@@ -476,31 +479,33 @@
      * @return array
      * @param string $line A line from the YAML file
      */
-  private function _parseLine( $line ) {
-    if ( !$line ) return array();
-    $line = trim( $line );
-    if ( !$line ) return array();
+  private function _parseLine($line) {
+    if (!$line) return array();
+    $line = trim($line);
+    if (!$line) return array();
 
-    $group = $this->nodeContainsGroup( $line );
-    if ( $group ) {
-      $this->addGroup( $line, $group );
-      $line = $this->stripGroup ( $line, $group );
+    $array = array();
+
+    $group = $this->nodeContainsGroup($line);
+    if ($group) {
+      $this->addGroup($line, $group);
+      $line = $this->stripGroup ($line, $group);
     }
 
-    if ( $this->startsMappedSequence( $line ) )
-      return $this->returnMappedSequence( $line );
+    if ($this->startsMappedSequence($line))
+      return $this->returnMappedSequence($line);
 
-    if ( $this->startsMappedValue( $line ) )
-      return $this->returnMappedValue( $line );
+    if ($this->startsMappedValue($line))
+      return $this->returnMappedValue($line);
 
-    if ( $this->isArrayElement( $line ) )
-     return $this->returnArrayElement( $line );
+    if ($this->isArrayElement($line))
+     return $this->returnArrayElement($line);
 
-    if ( $this->isPlainArray( $line ) )
-     return $this->returnPlainArray( $line );
+    if ($this->isPlainArray($line))
+     return $this->returnPlainArray($line); 
      
      
-    return $this->returnKeyValuePair( $line );
+    return $this->returnKeyValuePair($line);
 
   }
 
@@ -510,92 +515,92 @@
      * @param string $value
      * @return mixed
      */
-  private function _toType( $value ) {
-    if ( $value === '' ) return null;
+  private function _toType($value) {
+    if ($value === '') return null;
     $first_character = $value[0];
-    $last_character = substr( $value, -1, 1 );
+    $last_character = substr($value, -1, 1);
 
     $is_quoted = false;
     do {
-      if ( !$value ) break;
-      if ( $first_character != '"' && $first_character != "'" ) break;
-      if ( $last_character != '"' && $last_character != "'" ) break;
+      if (!$value) break;
+      if ($first_character != '"' && $first_character != "'") break;
+      if ($last_character != '"' && $last_character != "'") break;
       $is_quoted = true;
-    } while ( 0 );
+    } while (0);
 
-    if ( $is_quoted )
-      return strtr( substr ( $value, 1, -1 ), array ( '\\"' => '"', '\'\'' => 
'\'', '\\\'' => '\'' ) );
+    if ($is_quoted)
+      return strtr(substr ($value, 1, -1), array ('\\"' => '"', '\'\'' => 
'\'', '\\\'' => '\''));
     
-    if ( strpos( $value, ' #' ) !== false && !$is_quoted )
-      $value = preg_replace( '/\s+#(.+)$/', '', $value );
+    if (strpos($value, ' #') !== false && !$is_quoted)
+      $value = preg_replace('/\s+#(.+)$/','',$value);
 
-    if ( !$is_quoted ) $value = str_replace( '\n', "\n", $value );
+    if (!$is_quoted) $value = str_replace('\n', "\n", $value);
 
-    if ( $first_character == '[' && $last_character == ']' ) {
+    if ($first_character == '[' && $last_character == ']') {
       // Take out strings sequences and mappings
-      $innerValue = trim( substr ( $value, 1, -1 ) );
-      if ( $innerValue === '' ) return array();
-      $explode = $this->_inlineEscape( $innerValue );
+      $innerValue = trim(substr ($value, 1, -1));
+      if ($innerValue === '') return array();
+      $explode = $this->_inlineEscape($innerValue);
       // Propagate value array
       $value  = array();
-      foreach ( $explode as $v ) {
-        $value[] = $this->_toType( $v );
+      foreach ($explode as $v) {
+        $value[] = $this->_toType($v);
       }
       return $value;
     }
 
-    if ( strpos( $value, ': ' ) !== false && $first_character != '{' ) {
-      $array = explode( ': ', $value );
-      $key   = trim( $array[0] );
-      array_shift( $array );
-      $value = trim( implode( ': ', $array ) );
-      $value = $this->_toType( $value );
-      return array( $key => $value );
+    if (strpos($value,': ')!==false && $first_character != '{') {
+      $array = explode(': ',$value);
+      $key   = trim($array[0]);
+      array_shift($array);
+      $value = trim(implode(': ',$array));
+      $value = $this->_toType($value);
+      return array($key => $value);
     }
     
-    if ( $first_character == '{' && $last_character == '}' ) {
-      $innerValue = trim( substr ( $value, 1, -1 ) );
-      if ( $innerValue === '' ) return array();
+    if ($first_character == '{' && $last_character == '}') {
+      $innerValue = trim(substr ($value, 1, -1));
+      if ($innerValue === '') return array();
       // Inline Mapping
       // Take out strings sequences and mappings
-      $explode = $this->_inlineEscape( $innerValue );
+      $explode = $this->_inlineEscape($innerValue);
       // Propagate value array
       $array = array();
-      foreach ( $explode as $v ) {
-        $SubArr = $this->_toType( $v );
-        if ( empty( $SubArr ) ) continue;
-        if ( is_array ( $SubArr ) ) {
-          $array[key( $SubArr )] = $SubArr[key( $SubArr )]; continue;
+      foreach ($explode as $v) {
+        $SubArr = $this->_toType($v);
+        if (empty($SubArr)) continue;
+        if (is_array ($SubArr)) {
+          $array[key($SubArr)] = $SubArr[key($SubArr)]; continue;
         }
         $array[] = $SubArr;
       }
       return $array;
     }
 
-    if ( $value == 'null' || $value == 'NULL' || $value == 'Null' || $value == 
'' || $value == '~' ) {
+    if ($value == 'null' || $value == 'NULL' || $value == 'Null' || $value == 
'' || $value == '~') {
       return null;
     }
 
-    if ( intval( $first_character ) > 0 && preg_match ( '/^[1-9]+[0-9]*$/', 
$value ) ) {
+    if (intval($first_character) > 0 && preg_match ('/^[1-9]+[0-9]*$/', 
$value)) {
       $intvalue = (int)$value;
-      if ( $intvalue != PHP_INT_MAX )
+      if ($intvalue != PHP_INT_MAX)
         $value = $intvalue;
       return $value;
     }
 
-    if ( in_array( $value,
-                 array( 'true', 'on', '+', 'yes', 'y', 'True', 'TRUE', 'On', 
'ON', 'YES', 'Yes', 'Y' ) ) ) {
+    if (in_array($value,
+                 array('true', 'on', '+', 'yes', 'y', 'True', 'TRUE', 'On', 
'ON', 'YES', 'Yes', 'Y'))) {
       return true;
     }
 
-    if ( in_array( strtolower( $value ),
-                 array( 'false', 'off', '-', 'no', 'n' ) ) ) {
+    if (in_array(strtolower($value),
+                 array('false', 'off', '-', 'no', 'n'))) {
       return false;
     }
 
-    if ( is_numeric( $value ) ) {
-      if ( $value === '0' ) return 0;
-      if ( trim ( $value, 0 ) === $value )
+    if (is_numeric($value)) {
+      if ($value === '0') return 0;
+      if (trim ($value, 0) === $value)
         $value = (float)$value;
       return $value;
     }
@@ -608,7 +613,7 @@
      * @access private
      * @return array
      */
-  private function _inlineEscape( $inline ) {
+  private function _inlineEscape($inline) {
     // There's gotta be a cleaner way to do this...
     // While pure sequences seem to be nesting just fine,
     // pure mappings and mappings with sequences inside can't go very
@@ -620,42 +625,42 @@
 
     // Check for strings
     $regex = '/(?:(")|(?:\'))((?(1)[^"]+|[^\']+))(?(1)"|\')/';
-    if ( preg_match_all( $regex, $inline, $strings ) ) {
+    if (preg_match_all($regex,$inline,$strings)) {
       $saved_strings = $strings[0];
-      $inline  = preg_replace( $regex, 'YAMLString', $inline );
+      $inline  = preg_replace($regex,'YAMLString',$inline);
     }
-    unset( $regex );
+    unset($regex);
 
     $i = 0;
     do {
 
     // Check for sequences
-    while ( preg_match( '/\[([^{}\[\]]+)\]/U', $inline, $matchseqs ) ) {
+    while (preg_match('/\[([^{}\[\]]+)\]/U',$inline,$matchseqs)) {
       $seqs[] = $matchseqs[0];
-      $inline = preg_replace( '/\[([^{}\[\]]+)\]/U', ( 'YAMLSeq' . ( count( 
$seqs ) - 1 ) . 's' ), $inline, 1 );
+      $inline = preg_replace('/\[([^{}\[\]]+)\]/U', ('YAMLSeq' . (count($seqs) 
- 1) . 's'), $inline, 1);
     }
 
     // Check for mappings
-    while ( preg_match( '/{([^\[\]{}]+)}/U', $inline, $matchmaps ) ) {
+    while (preg_match('/{([^\[\]{}]+)}/U',$inline,$matchmaps)) {
       $maps[] = $matchmaps[0];
-      $inline = preg_replace( '/{([^\[\]{}]+)}/U', ( 'YAMLMap' . ( count( 
$maps ) - 1 ) . 's' ), $inline, 1 );
+      $inline = preg_replace('/{([^\[\]{}]+)}/U', ('YAMLMap' . (count($maps) - 
1) . 's'), $inline, 1);
     }
 
-    if ( $i++ >= 10 ) break;
+    if ($i++ >= 10) break;
 
-    } while ( strpos ( $inline, '[' ) !== false || strpos ( $inline, '{' ) !== 
false );
+    } while (strpos ($inline, '[') !== false || strpos ($inline, '{') !== 
false);
 
-    $explode = explode( ', ', $inline );
+    $explode = explode(', ',$inline);
     $stringi = 0; $i = 0;
 
-    while ( 1 ) {
+    while (1) {
 
     // Re-add the sequences
-    if ( !empty( $seqs ) ) {
-      foreach ( $explode as $key => $value ) {
-        if ( strpos( $value, 'YAMLSeq' ) !== false ) {
-          foreach ( $seqs as $seqk => $seq ) {
-            $explode[$key] = str_replace( ( 'YAMLSeq' . $seqk . 's' ), $seq, 
$value );
+    if (!empty($seqs)) {
+      foreach ($explode as $key => $value) {
+        if (strpos($value,'YAMLSeq') !== false) {
+          foreach ($seqs as $seqk => $seq) {
+            $explode[$key] = str_replace(('YAMLSeq'.$seqk.'s'),$seq,$value);
             $value = $explode[$key];
           }
         }
@@ -663,11 +668,11 @@
     }
 
     // Re-add the mappings
-    if ( !empty( $maps ) ) {
-      foreach ( $explode as $key => $value ) {
-        if ( strpos( $value, 'YAMLMap' ) !== false ) {
-          foreach ( $maps as $mapk => $map ) {
-            $explode[$key] = str_replace( ( 'YAMLMap' . $mapk . 's' ), $map, 
$value );
+    if (!empty($maps)) {
+      foreach ($explode as $key => $value) {
+        if (strpos($value,'YAMLMap') !== false) {
+          foreach ($maps as $mapk => $map) {
+            $explode[$key] = str_replace(('YAMLMap'.$mapk.'s'), $map, $value);
             $value = $explode[$key];
           }
         }
@@ -676,11 +681,11 @@
 
 
     // Re-add the strings
-    if ( !empty( $saved_strings ) ) {
-      foreach ( $explode as $key => $value ) {
-        while ( strpos( $value, 'YAMLString' ) !== false ) {
-          $explode[$key] = preg_replace( '/YAMLString/', 
$saved_strings[$stringi], $value, 1 );
-          unset( $saved_strings[$stringi] );
+    if (!empty($saved_strings)) {
+      foreach ($explode as $key => $value) {
+        while (strpos($value,'YAMLString') !== false) {
+          $explode[$key] = 
preg_replace('/YAMLString/',$saved_strings[$stringi],$value, 1);
+          unset($saved_strings[$stringi]);
           ++$stringi;
           $value = $explode[$key];
         }
@@ -688,72 +693,72 @@
     }
 
     $finished = true;
-    foreach ( $explode as $key => $value ) {
-      if ( strpos( $value, 'YAMLSeq' ) !== false ) {
+    foreach ($explode as $key => $value) {
+      if (strpos($value,'YAMLSeq') !== false) {
         $finished = false; break;
       }
-      if ( strpos( $value, 'YAMLMap' ) !== false ) {
+      if (strpos($value,'YAMLMap') !== false) {
         $finished = false; break;
       }
-      if ( strpos( $value, 'YAMLString' ) !== false ) {
+      if (strpos($value,'YAMLString') !== false) {
         $finished = false; break;
       }
     }
-    if ( $finished ) break;
+    if ($finished) break;
 
     $i++;
-    if ( $i > 10 )
+    if ($i > 10) 
       break; // Prevent infinite loops.
     }
 
     return $explode;
   }
 
-  private function literalBlockContinues ( $line, $lineIndent ) {
-    if ( !trim( $line ) ) return true;
-    if ( strlen( $line ) - strlen( ltrim( $line ) ) > $lineIndent ) return 
true;
+  private function literalBlockContinues ($line, $lineIndent) {
+    if (!trim($line)) return true;
+    if (strlen($line) - strlen(ltrim($line)) > $lineIndent) return true;
     return false;
   }
 
-  private function referenceContentsByAlias ( $alias ) {
+  private function referenceContentsByAlias ($alias) {
     do {
-      if ( !isset( $this->SavedGroups[$alias] ) ) { echo "Bad group name: 
$alias."; break; }
+      if (!isset($this->SavedGroups[$alias])) { echo "Bad group name: 
$alias."; break; }
       $groupPath = $this->SavedGroups[$alias];
       $value = $this->result;
-      foreach ( $groupPath as $k ) {
+      foreach ($groupPath as $k) {
         $value = $value[$k];
       }
-    } while ( false );
+    } while (false);
     return $value;
   }
 
-  private function addArrayInline ( $array, $indent ) {
+  private function addArrayInline ($array, $indent) {
       $CommonGroupPath = $this->path;
-      if ( empty ( $array ) ) return false;
+      if (empty ($array)) return false;
       
-      foreach ( $array as $k => $_ ) {
-        $this->addArray( array( $k => $_ ), $indent );
+      foreach ($array as $k => $_) {
+        $this->addArray(array($k => $_), $indent);
         $this->path = $CommonGroupPath;
       }
       return true;
   }
 
-  private function addArray ( $incoming_data, $incoming_indent ) {
+  private function addArray ($incoming_data, $incoming_indent) {
 
    // print_r ($incoming_data);
 
-    if ( count ( $incoming_data ) > 1 )
-      return $this->addArrayInline ( $incoming_data, $incoming_indent );
+    if (count ($incoming_data) > 1)
+      return $this->addArrayInline ($incoming_data, $incoming_indent);
     
-    $key = key ( $incoming_data );
-    $value = isset( $incoming_data[$key] ) ? $incoming_data[$key] : null;
-    if ( $key === '__!YAMLZero' ) $key = '0';
+    $key = key ($incoming_data);
+    $value = isset($incoming_data[$key]) ? $incoming_data[$key] : null;
+    if ($key === '__!YAMLZero') $key = '0';
 
-    if ( $incoming_indent == 0 && !$this->_containsGroupAlias && 
!$this->_containsGroupAnchor ) { // Shortcut for root-level values.
-      if ( $key || $key === '' || $key === '0' ) {
+    if ($incoming_indent == 0 && !$this->_containsGroupAlias && 
!$this->_containsGroupAnchor) { // Shortcut for root-level values.
+      if ($key || $key === '' || $key === '0') {
         $this->result[$key] = $value;
       } else {
-        $this->result[] = $value; end ( $this->result ); $key = key ( 
$this->result );
+        $this->result[] = $value; end ($this->result); $key = key 
($this->result);
       }
       $this->path[$incoming_indent] = $key;
       return;
@@ -764,44 +769,47 @@
     $history = array();
     // Unfolding inner array tree.
     $history[] = $_arr = $this->result;
-    foreach ( $this->path as $k ) {
+    foreach ($this->path as $k) {
       $history[] = $_arr = $_arr[$k];
     }
 
-    if ( $this->_containsGroupAlias ) {
-      $value = $this->referenceContentsByAlias( $this->_containsGroupAlias );
+    if ($this->_containsGroupAlias) {
+      $value = $this->referenceContentsByAlias($this->_containsGroupAlias);
       $this->_containsGroupAlias = false;
     }
 
 
     // Adding string or numeric key to the innermost level or $this->arr.
-    if ( is_string( $key ) && $key == '<<' ) {
-      if ( !is_array ( $_arr ) ) { $_arr = array (); }
+    if (is_string($key) && $key == '<<') {
+      if (!is_array ($_arr)) { $_arr = array (); }
 
-      $_arr = array_merge ( $_arr, $value );
-    } else if ( $key || $key === '' || $key === '0' ) {
-      $_arr[$key] = $value;
+      $_arr = array_merge ($_arr, $value);
+    } else if ($key || $key === '' || $key === '0') {
+      if (!is_array ($_arr))
+        $_arr = array ($key=>$value);
+      else
+        $_arr[$key] = $value;
     } else {
-      if ( !is_array ( $_arr ) ) { $_arr = array ( $value ); $key = 0; }
-      else { $_arr[] = $value; end ( $_arr ); $key = key ( $_arr ); }
+      if (!is_array ($_arr)) { $_arr = array ($value); $key = 0; }
+      else { $_arr[] = $value; end ($_arr); $key = key ($_arr); }
     }
 
-    $reverse_path = array_reverse( $this->path );
-    $reverse_history = array_reverse ( $history );
+    $reverse_path = array_reverse($this->path);
+    $reverse_history = array_reverse ($history);
     $reverse_history[0] = $_arr;
-    $cnt = count( $reverse_history ) - 1;
-    for ( $i = 0; $i < $cnt; $i++ ) {
-      $reverse_history[$i + 1][$reverse_path[$i]] = $reverse_history[$i];
+    $cnt = count($reverse_history) - 1;
+    for ($i = 0; $i < $cnt; $i++) {
+      $reverse_history[$i+1][$reverse_path[$i]] = $reverse_history[$i];
     }
     $this->result = $reverse_history[$cnt];
 
     $this->path[$incoming_indent] = $key;
 
-    if ( $this->_containsGroupAnchor ) {
+    if ($this->_containsGroupAnchor) {
       $this->SavedGroups[$this->_containsGroupAnchor] = $this->path;
-      if ( is_array ( $value ) ) {
-        $k = key ( $value );
-        if ( !is_int ( $k ) ) {
+      if (is_array ($value)) {
+        $k = key ($value);
+        if (!is_int ($k)) {
           $this->SavedGroups[$this->_containsGroupAnchor][$incoming_indent + 
2] = $k;
         }
       }
@@ -810,209 +818,209 @@
 
   }
 
-  private static function startsLiteralBlock ( $line ) {
-    $lastChar = substr ( trim( $line ), -1 );
-    if ( $lastChar != '>' && $lastChar != '|' ) return false;
-    if ( $lastChar == '|' ) return $lastChar;
+  private static function startsLiteralBlock ($line) {
+    $lastChar = substr (trim($line), -1);
+    if ($lastChar != '>' && $lastChar != '|') return false;
+    if ($lastChar == '|') return $lastChar;
     // HTML tags should not be counted as literal blocks.
-    if ( preg_match ( '#<.*?>$#', $line ) ) return false;
+    if (preg_match ('#<.*?>$#', $line)) return false;
     return $lastChar;
   }
 
-  private static function greedilyNeedNextLine( $line ) {
-    $line = trim ( $line );
-    if ( !strlen( $line ) ) return false;
-    if ( substr ( $line, -1, 1 ) == ']' ) return false;
-    if ( $line[0] == '[' ) return true;
-    if ( preg_match ( '#^[^:]+?:\s*\[#', $line ) ) return true;
+  private static function greedilyNeedNextLine($line) {
+    $line = trim ($line);
+    if (!strlen($line)) return false;
+    if (substr ($line, -1, 1) == ']') return false;
+    if ($line[0] == '[') return true;
+    if (preg_match ('#^[^:]+?:\s*\[#', $line)) return true;
     return false;
   }
 
-  private function addLiteralLine ( $literalBlock, $line, $literalBlockStyle ) 
{
-    $line = self::stripIndent( $line );
-    $line = rtrim ( $line, "\r\n\t " ) . "\n";
-    if ( $literalBlockStyle == '|' ) {
+  private function addLiteralLine ($literalBlock, $line, $literalBlockStyle) {
+    $line = self::stripIndent($line);
+    $line = rtrim ($line, "\r\n\t ") . "\n";
+    if ($literalBlockStyle == '|') {
       return $literalBlock . $line;
     }
-    if ( strlen( $line ) == 0 )
-      return rtrim( $literalBlock, ' ' ) . "\n";
-    if ( $line == "\n" && $literalBlockStyle == '>' ) {
-      return rtrim ( $literalBlock, " \t" ) . "\n";
+    if (strlen($line) == 0)
+      return rtrim($literalBlock, ' ') . "\n";
+    if ($line == "\n" && $literalBlockStyle == '>') {
+      return rtrim ($literalBlock, " \t") . "\n";
     }
-    if ( $line != "\n" )
-      $line = trim ( $line, "\r\n " ) . " ";
+    if ($line != "\n")
+      $line = trim ($line, "\r\n ") . " ";
     return $literalBlock . $line;
   }
 
-   function revertLiteralPlaceHolder ( $lineArray, $literalBlock ) {
-     foreach ( $lineArray as $k => $_ ) {
-      if ( is_array( $_ ) )
-        $lineArray[$k] = $this->revertLiteralPlaceHolder ( $_, $literalBlock );
-      else if ( substr( $_, -1 * strlen ( $this->LiteralPlaceHolder ) ) == 
$this->LiteralPlaceHolder )
-              $lineArray[$k] = rtrim ( $literalBlock, " \r\n" );
+   function revertLiteralPlaceHolder ($lineArray, $literalBlock) {
+     foreach ($lineArray as $k => $_) {
+      if (is_array($_))
+        $lineArray[$k] = $this->revertLiteralPlaceHolder ($_, $literalBlock);
+      else if (substr($_, -1 * strlen ($this->LiteralPlaceHolder)) == 
$this->LiteralPlaceHolder)
+              $lineArray[$k] = rtrim ($literalBlock, " \r\n");
      }
      return $lineArray;
    }
 
-  private static function stripIndent ( $line, $indent = -1 ) {
-    if ( $indent == -1 ) $indent = strlen( $line ) - strlen( ltrim( $line ) );
-    return substr ( $line, $indent );
+  private static function stripIndent ($line, $indent = -1) {
+    if ($indent == -1) $indent = strlen($line) - strlen(ltrim($line));
+    return substr ($line, $indent);
   }
 
-  private function getParentPathByIndent ( $indent ) {
-    if ( $indent == 0 ) return array();
+  private function getParentPathByIndent ($indent) {
+    if ($indent == 0) return array();
     $linePath = $this->path;
     do {
-      end( $linePath ); $lastIndentInParentPath = key( $linePath );
-      if ( $indent <= $lastIndentInParentPath ) array_pop ( $linePath );
-    } while ( $indent <= $lastIndentInParentPath );
+      end($linePath); $lastIndentInParentPath = key($linePath);
+      if ($indent <= $lastIndentInParentPath) array_pop ($linePath);
+    } while ($indent <= $lastIndentInParentPath);
     return $linePath;
   }
 
 
-  private function clearBiggerPathValues ( $indent ) {
+  private function clearBiggerPathValues ($indent) {
 
 
-    if ( $indent == 0 ) $this->path = array();
-    if ( empty ( $this->path ) ) return true;
+    if ($indent == 0) $this->path = array();
+    if (empty ($this->path)) return true;
 
-    foreach ( $this->path as $k => $_ ) {
-      if ( $k > $indent ) unset ( $this->path[$k] );
+    foreach ($this->path as $k => $_) {
+      if ($k > $indent) unset ($this->path[$k]);
     }
 
     return true;
   }
 
 
-  private static function isComment ( $line ) {
-    if ( !$line ) return false;
-    if ( $line[0] == '#' ) return true;
-    if ( trim( $line, " \r\n\t" ) == '---' ) return true;
+  private static function isComment ($line) {
+    if (!$line) return false;
+    if ($line[0] == '#') return true;
+    if (trim($line, " \r\n\t") == '---') return true;
     return false;
   }
 
-  private static function isEmpty ( $line ) {
-    return ( trim ( $line ) === '' );
+  private static function isEmpty ($line) {
+    return (trim ($line) === '');
   }
 
 
-  private function isArrayElement ( $line ) {
-    if ( !$line ) return false;
-    if ( $line[0] != '-' ) return false;
-    if ( strlen ( $line ) > 3 )
-      if ( substr( $line, 0, 3 ) == '---' ) return false;
+  private function isArrayElement ($line) {
+    if (!$line) return false;
+    if ($line[0] != '-') return false;
+    if (strlen ($line) > 3)
+      if (substr($line,0,3) == '---') return false;
     
     return true;
   }
 
-  private function isHashElement ( $line ) {
-    return strpos( $line, ':' );
+  private function isHashElement ($line) {
+    return strpos($line, ':');
   }
 
-  private function isLiteral ( $line ) {
-    if ( $this->isArrayElement( $line ) ) return false;
-    if ( $this->isHashElement( $line ) ) return false;
+  private function isLiteral ($line) {
+    if ($this->isArrayElement($line)) return false;
+    if ($this->isHashElement($line)) return false;
     return true;
   }
 
 
-  private static function unquote ( $value ) {
-    if ( !$value ) return $value;
-    if ( !is_string( $value ) ) return $value;
-    if ( $value[0] == '\'' ) return trim ( $value, '\'' );
-    if ( $value[0] == '"' ) return trim ( $value, '"' );
+  private static function unquote ($value) {
+    if (!$value) return $value;
+    if (!is_string($value)) return $value;
+    if ($value[0] == '\'') return trim ($value, '\'');
+    if ($value[0] == '"') return trim ($value, '"');
     return $value;
   }
 
-  private function startsMappedSequence ( $line ) {
-    return ( $line[0] == '-' && substr ( $line, -1, 1 ) == ':' );
+  private function startsMappedSequence ($line) {
+    return ($line[0] == '-' && substr ($line, -1, 1) == ':');
   }
 
-  private function returnMappedSequence ( $line ) {
+  private function returnMappedSequence ($line) {
     $array = array();
-    $key         = self::unquote( trim( substr( $line, 1, -1 ) ) );
+    $key         = self::unquote(trim(substr($line,1,-1)));
     $array[$key] = array();
-    $this->delayedPath = array( strpos ( $line, $key ) + $this->indent => $key 
);
-    return array( $array );
+    $this->delayedPath = array(strpos ($line, $key) + $this->indent => $key);
+    return array($array);
   }
 
-  private function returnMappedValue ( $line ) {
+  private function returnMappedValue ($line) {
     $array = array();
-    $key         = self::unquote ( trim( substr( $line, 0, -1 ) ) );
+    $key         = self::unquote (trim(substr($line,0,-1)));
     $array[$key] = '';
     return $array;
   }
 
-  private function startsMappedValue ( $line ) {
-    return ( substr ( $line, -1, 1 ) == ':' );
+  private function startsMappedValue ($line) {
+    return (substr ($line, -1, 1) == ':');
   }
   
-  private function isPlainArray ( $line ) {
-    return ( $line[0] == '[' && substr ( $line, -1, 1 ) == ']' );
+  private function isPlainArray ($line) {
+    return ($line[0] == '[' && substr ($line, -1, 1) == ']');
   }
   
-  private function returnPlainArray ( $line ) {
-    return $this->_toType( $line );
-  }
+  private function returnPlainArray ($line) {
+    return $this->_toType($line); 
+  }  
 
-  private function returnKeyValuePair ( $line ) {
+  private function returnKeyValuePair ($line) {
     $array = array();
     $key = '';
-    if ( strpos ( $line, ':' ) ) {
+    if (strpos ($line, ':')) {
       // It's a key/value pair most likely
       // If the key is in double quotes pull it out
-      if ( ( $line[0] == '"' || $line[0] == "'" ) && preg_match( 
'/^(["\'](.*)["\'](\s)*:)/', $line, $matches ) ) {
-        $value = trim( str_replace( $matches[1], '', $line ) );
+      if (($line[0] == '"' || $line[0] == "'") && 
preg_match('/^(["\'](.*)["\'](\s)*:)/',$line,$matches)) {
+        $value = trim(str_replace($matches[1],'',$line));
         $key   = $matches[2];
       } else {
         // Do some guesswork as to the key and the value
-        $explode = explode( ':', $line );
-        $key     = trim( $explode[0] );
-        array_shift( $explode );
-        $value   = trim( implode( ':', $explode ) );
+        $explode = explode(':',$line);
+        $key     = trim($explode[0]);
+        array_shift($explode);
+        $value   = trim(implode(':',$explode));
       }
       // Set the type of the value.  Int, string, etc
-      $value = $this->_toType( $value );
-      if ( $key === '0' ) $key = '__!YAMLZero';
+      $value = $this->_toType($value);
+      if ($key === '0') $key = '__!YAMLZero';
       $array[$key] = $value;
     } else {
-      $array = array ( $line );
+      $array = array ($line);
     }
     return $array;
 
   }
 
 
-  private function returnArrayElement ( $line ) {
-     if ( strlen( $line ) <= 1 ) return array( array() ); // Weird %)
+  private function returnArrayElement ($line) {
+     if (strlen($line) <= 1) return array(array()); // Weird %)
      $array = array();
-     $value   = trim( substr( $line, 1 ) );
-     $value   = $this->_toType( $value );
+     $value   = trim(substr($line,1));
+     $value   = $this->_toType($value);
      $array[] = $value;
      return $array;
   }
 
 
-  private function nodeContainsGroup ( $line ) {
+  private function nodeContainsGroup ($line) {    
     $symbolsForReference = 'A-z0-9_\-';
-    if ( strpos( $line, '&' ) === false && strpos( $line, '*' ) === false ) 
return false; // Please die fast ;-)
-    if ( $line[0] == '&' && preg_match( '/^(&[' . $symbolsForReference . 
']+)/', $line, $matches ) ) return $matches[1];
-    if ( $line[0] == '*' && preg_match( '/^(\*[' . $symbolsForReference . 
']+)/', $line, $matches ) ) return $matches[1];
-    if ( preg_match( '/(&[' . $symbolsForReference . ']+)$/', $line, $matches 
) ) return $matches[1];
-    if ( preg_match( '/(\*[' . $symbolsForReference . ']+$)/', $line, $matches 
) ) return $matches[1];
-    if ( preg_match ( '#^\s*<<\s*:\s*(\*[^\s]+).*$#', $line, $matches ) ) 
return $matches[1];
+    if (strpos($line, '&') === false && strpos($line, '*') === false) return 
false; // Please die fast ;-)
+    if ($line[0] == '&' && preg_match('/^(&['.$symbolsForReference.']+)/', 
$line, $matches)) return $matches[1];
+    if ($line[0] == '*' && preg_match('/^(\*['.$symbolsForReference.']+)/', 
$line, $matches)) return $matches[1];
+    if (preg_match('/(&['.$symbolsForReference.']+)$/', $line, $matches)) 
return $matches[1];
+    if (preg_match('/(\*['.$symbolsForReference.']+$)/', $line, $matches)) 
return $matches[1];
+    if (preg_match ('#^\s*<<\s*:\s*(\*[^\s]+).*$#', $line, $matches)) return 
$matches[1];
     return false;
 
   }
 
-  private function addGroup ( $line, $group ) {
-    if ( $group[0] == '&' ) $this->_containsGroupAnchor = substr ( $group, 1 );
-    if ( $group[0] == '*' ) $this->_containsGroupAlias = substr ( $group, 1 );
-    // print_r ($this->path);
+  private function addGroup ($line, $group) {
+    if ($group[0] == '&') $this->_containsGroupAnchor = substr ($group, 1);
+    if ($group[0] == '*') $this->_containsGroupAlias = substr ($group, 1);
+    //print_r ($this->path);
   }
 
-  private function stripGroup ( $line, $group ) {
-    $line = trim( str_replace( $group, '', $line ) );
+  private function stripGroup ($line, $group) {
+    $line = trim(str_replace($group, '', $line));
     return $line;
   }
 }
@@ -1020,13 +1028,13 @@
 // Enable use of Spyc from command line
 // The syntax is the following: php spyc.php spyc.yaml
 
-define ( 'SPYC_FROM_COMMAND_LINE', false );
+define ('SPYC_FROM_COMMAND_LINE', false);
 
 do {
-  if ( !SPYC_FROM_COMMAND_LINE ) break;
-  if ( empty ( $_SERVER['argc'] ) || $_SERVER['argc'] < 2 ) break;
-  if ( empty ( $_SERVER['PHP_SELF'] ) || $_SERVER['PHP_SELF'] != 'spyc.php' ) 
break;
+  if (!SPYC_FROM_COMMAND_LINE) break;
+  if (empty ($_SERVER['argc']) || $_SERVER['argc'] < 2) break;
+  if (empty ($_SERVER['PHP_SELF']) || $_SERVER['PHP_SELF'] != 'spyc.php') 
break;
   $file = $argv[1];
-  printf ( "Spyc loading file: %s\n", $file );
-  print_r ( spyc_load_file ( $file ) );
-} while ( 0 );
\ No newline at end of file
+  printf ("Spyc loading file: %s\n", $file);
+  print_r (spyc_load_file ($file));
+} while (0);
\ No newline at end of file



_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to