Beispiel #1
0
 /**
  * Decodes a NEON string.
  * @param  string
  * @return mixed
  */
 public static function decode($input)
 {
     if (!is_string($input)) {
         throw new InvalidArgumentException("Argument must be a string, " . gettype($input) . " given.");
     }
     if (!self::$tokenizer) {
         self::$tokenizer = new Tokenizer(self::$patterns, 'mi');
     }
     $input = str_replace("\r", '', $input);
     self::$tokenizer->tokenize($input);
     $parser = new self();
     $res = $parser->parse(0);
     while (isset(self::$tokenizer->tokens[$parser->n])) {
         if (self::$tokenizer->tokens[$parser->n][0] === "\n") {
             $parser->n++;
         } else {
             $parser->error();
         }
     }
     return $res;
 }