source: applications/nimpad/trunk/lib/HatenaSyntax/Util.php @ 1490

SVN
Revision 1490, 1.2 KB checked in by anatoo, 10 months ago (diff)

0.2ブランチのリビジョン1489,1488の変更をtrunkに取り込んだ

Line 
1<?php
2/**
3 * @package HatenaSyntax
4 * @author anatoo<anatoo@nequal.jp>
5 * @license http://www.opensource.org/licenses/mit-license.php MIT License
6 * @version $Id: Util.php 1159 2009-09-06 09:43:29Z anatoo $
7 */
8
9class HatenaSyntax_Util
10{
11    static function normalizeList(Array $data)
12    {
13        return HatenaSyntax_Tree::make($data);
14    }
15
16    static function segment(PEG_IParser $p)
17    {
18        return PEG::callbackAction(array('HatenaSyntax_Util', 'normalizeLineSegment'), $p);
19    }
20   
21    static function normalizeLineSegment(Array $data)
22    {
23        for ($ret = array(), $i = 0, $len = count($data); $i < $len; $i++) {
24            if (is_string($data[$i])) {
25                for ($str = $data[$i++]; $i < $len && is_string($data[$i]); $i++) {
26                    $str .= $data[$i];
27                }
28                $ret[] = $str;
29                if ($i < $len) $ret[] = $data[$i];
30            }
31            else {
32                $ret[] = $data[$i];
33            }
34        }
35        return $ret;
36    }
37   
38    static function processListItem(Array $li)
39    {
40        $ret = array();
41        $ret['level'] = count($li[0]) - 1;
42        $ret['value'] = array(end($li[0]), $li[1]);
43       
44        return $ret;
45    }
46}
Note: See TracBrowser for help on using the repository browser.