image

  • フォト Amazonギフト券
    ※この時計の時刻は、閲覧しているパソコンのものであり、必ずしも正確な時間とは限りません

検索

最近のトラックバック

無料ブログはココログ

« 映画 クィーン を観た。 | トップページ | ピックアップ: 40,000個以上のアイコン検索、「マンデルブロ集合計算・描画プログラム」, etc... »

2007-06-10

racc で xvcd を生成することを試し始めた (その5)

プログラムでサポートできていない機能は、記述をそのまま出力できるようにすることで
完全に動作する xfy/xvcd ファイルを生成できるようにした。

<< で始まる行は、そのまま出力させるという機能だ。(ヒアドキュメントのようなもの)
最低でも全部を << で記載すればよい。

今後は、いかに 少ない記述で xfy/xvcd  ファイルを生成できるようにするか  という観点で発展させていこう。

現状の変換プログラムのソースは以下に置いた。
http://homepage2.nifty.com/youichi_kato/src.html
- racc で xvcd
    zzz-2007-06-10.tgz(2007-06-10)

入力と出力結果の例を示す。

入力
======

$ cat src
//
// "Genereated using racc. 2007-06-09"
<<<xvcd:xvcd
<<    xmlns="http://www.w3.org/1999/xhtml"
<<    xmlns:xvcd="http://xmlns.xfy.com/xvcd"
<<    xmlns:instruction="http://xmlns.xfy.com/instruction"
<<    xmlns:ctrl="http://xmlns.xfy.com/controls"
<<    xmlns:event="http://xmlns.xfy.com/event"
<<    xmlns:ui="http://xmlns.xfy.com/ui"
<<    xmlns:command="http://xmlns.xfy.com/command"
<<    xmlns:ab="http://xmlns.example.com/developer/tutorial/addressbook"
<<    version="1.0">

<<
//============== VOCABULARY ==========
vocabulary("name","AddressBook", "match","ab:addressbook", "call-template","Root") {
<<    <ui:ui version="1.0">
<<      <ui:main-menu>
<<        <ui:menu label="Entry">
<<          <ui:menu-item label="add" command="AddEntry" open-dialog="true" />
<<          <ui:menu-item label="edit" command="EditEntry" open-dialog="true" />
<<        </ui:menu>
<<      </ui:main-menu>
<<    </ui:ui>
}

<<
//============== COMMAND ==========
  def AddEntry(a,b)
    dialog("return-to", "result") {
<<       <ab:edit-dialog>
<<            <ab:entry>
<<                <ab:person />
<<                <ab:address />
<<            </ab:entry>
<<        </ab:edit-dialog>
    }

    if "'ok'=$result/ab:edit-dialog/@closed-by"
      insert("select","/ab:addressbook", "position", "last-child") {
        copy_of("select", "$result//ab:entry")
      }
    end
  end

<<
//============== TEMPLATE ==========
<<  <xvcd:template name="EditDialogRoot">
<<    <html>
<<      <body>
<<      </body>
<<    </html>
<<  </xvcd:template>
<<</xvcd:xvcd>

出力
=====

$ make
ruby c.intp src && echo ok
<?xml version="1.0" encoding="UTF-8"?>
<!--  -->
<!--  "Genereated using racc. 2007-06-09" -->
<xvcd:xvcd
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:xvcd="http://xmlns.xfy.com/xvcd"
    xmlns:instruction="http://xmlns.xfy.com/instruction"
    xmlns:ctrl="http://xmlns.xfy.com/controls"
    xmlns:event="http://xmlns.xfy.com/event"
    xmlns:ui="http://xmlns.xfy.com/ui"
    xmlns:command="http://xmlns.xfy.com/command"
    xmlns:ab="http://xmlns.example.com/developer/tutorial/addressbook"
    version="1.0">

<!-- ============== VOCABULARY ========== -->
<xvcd:vocabulary name="AddressBook" call-template="Root" match="ab:addressbook">
    <ui:ui version="1.0">
      <ui:main-menu>
        <ui:menu label="Entry">
          <ui:menu-item label="add" command="AddEntry" open-dialog="true" />
          <ui:menu-item label="edit" command="EditEntry" open-dialog="true" />
        </ui:menu>
      </ui:main-menu>
    </ui:ui>
</xvcd:vocabulary>

<!-- ============== COMMAND ========== -->
<instruction:command name="AddEntry">
  <instruction:with-param  name="a"/>
  <instruction:with-param  name="b"/>
  <xvcd:dialog return-to="result">
       <ab:edit-dialog>
            <ab:entry>
                <ab:person />
                <ab:address />
            </ab:entry>
        </ab:edit-dialog>
  </xvcd:dialog>
  <instruction:if test="'ok'=$result/ab:edit-dialog/@closed-by">
    <xvcd:insert position="last-child" select="/ab:addressbook">
      <xvcd:copy-of select="$result//ab:entry">
      </xvcd:copy-of>
    </xvcd:insert>
  </instruction:if>
</instruction:command>

<!-- ============== TEMPLATE ========== -->
  <xvcd:template name="EditDialogRoot">
    <html>
      <body>
      </body>
    </html>
  </xvcd:template>
</xvcd:xvcd>

« 映画 クィーン を観た。 | トップページ | ピックアップ: 40,000個以上のアイコン検索、「マンデルブロ集合計算・描画プログラム」, etc... »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/184434/15377392

この記事へのトラックバック一覧です: racc で xvcd を生成することを試し始めた (その5):

« 映画 クィーン を観た。 | トップページ | ピックアップ: 40,000個以上のアイコン検索、「マンデルブロ集合計算・描画プログラム」, etc... »

mokuji

2013年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

google

  • twitter
  • __
  • _
    Googleボットチェッカー

合わせて読む

  • 合わせて読む
    フィードメーター - katoy: cocolog あわせて読みたい

リンク