<?xml version="1.0" encoding="UTF-8"?>
<!-- Reviewed: no -->
<!-- EN-Revision: 24604 -->
<sect1 id="zend.markup.parsers">
    <title>Zend_Markup パーサー</title>

    <para>
        <classname>Zend_Markup</classname> には現在 BBCode パーサーと Textile パーサー
        という２つのパーサーが同梱されています。
    </para>

    <sect2 id="zend.markup.parsers.theory">
        <title>パーサーの仕組み</title>

        <para>
            <classname>Zend_Markup</classname> のパーサは、マークアップによる文をトークン木へと
            変換するクラス群です。ここの例では BBCode パーサーを用いますが、
            全てのパーサーにおいてトークン木の見解は変わりません。
            例として BBCode のこの要素で始めます:
        </para>

        <programlisting language="text"><![CDATA[
[b]foo[i]bar[/i][/b]baz
]]></programlisting>

        <para>
            BBCode パーサーは、要素を分離し以下の木構造を生成した値を持つことでしょう:
        </para>

        <itemizedlist>
            <listitem>
                <para>[b]</para>

                <itemizedlist>
                    <listitem>
                        <para>foo</para>
                    </listitem>

                    <listitem>
                        <para>[i]</para>

                        <itemizedlist>
                            <listitem>
                                <para>bar</para>
                            </listitem>
                        </itemizedlist>
                    </listitem>
                </itemizedlist>
            </listitem>

            <listitem>
                <para>baz</para>
            </listitem>
        </itemizedlist>

        <para>
            クローズタグは消えていることにお気づきになったでしょう、それらは木構造の
            内容として出現しません。これは、クローズタグは実際の内容のものではないからです。
            ですが、これは単にクローズタグを消失したことを意図するものではなく、
            タグ自身のタグ情報内で保持されています。さらに、これは木構造自身の簡潔な概観で
            あるだけということに注意してください。実際の木構造は、タグの属性とその名について
            より多くの情報を含んでいます。
        </para>
    </sect2>

    <sect2 id="zend.markup.parsers.bbcode">
        <title>BBCode パーサー</title>

        <para>
            BBCode パーサーは BBCode をトークン木へ変換する
            <classname>Zend_Markup</classname> パーサーです。 全ての BBCode タグの文法は:
        </para>

        <programlisting language="text"><![CDATA[
[name(=(value|"value"))( attribute=(value|"value"))*]
]]></programlisting>

        <para>
            有効な BBCode タグのいくつかの例は:
        </para>

        <programlisting language="text"><![CDATA[
[b]
[list=1]
[code file=Zend/Markup.php]
[url="http://framework.zend.com/" title="Zend Framework!"]
]]></programlisting>

        <para>
            標準で、 '[/tagname]' フォーマットを用いて閉じられます.
        </para>
    </sect2>
</sect1>
