OldType.パーサ RSSPLAIN

Related pages: OldType
5555555545455555555555555555555555555555
5

OldType記法をパースして、中間データに変換するパーサ

5
中間データは、後段をGaucheで簡単に処理できるようにS式とする。
5

 

5

中間データのフォーマット

5
WiLiKiのパーサでは、行単位のコントロールがうまく行かないのでパーサを改造して作る。
5

 

5

要件

5
1行毎にソース文字列とパース結果が対で返却される事
4
 (もしくは、SXMLの中に、属性として @@(line 行番号) 等の様に、後でソースとの対応が取れる情報を埋めこむ事)
5
パース結果は1行または、1ページのSXMLで表現されている事
4
 (もしくは、後で 1ページ分のSXMLが簡単に構成できること。)
5

 

5

返却S式データ(案)

5
ソースコード
5
 abc [[WikiName1]] def [[WikiName2]]
5
結果のS式(1行分)
5
 (
5
   (orig  . " abc [[WikiName1]] def [[URL2|Name2]]")
5
   (sxml  ("!" ("abc" (wikiname "WikiName1) "def" (wikiname "URL2|Name2"))))
5
 )
5
 sxmlデータのcar 部の  "!" や "*" はWiki文法の行頭のマークを文字列として保持する。
5
5

 

5

XHTMLへの変換手順

5
上記S式から1ページ分のSXMLに変換
5
SXMLからXHTMLに変換
5

 

5

Webの編集UI用HTMLへの変換手順(1行づつの編集を想定する)

5
上記S色の1行分をSXMLに変換
5
SXMLからXHTMLに変換
5

 

5

バッチ処理すべきリストは、上記 S式から抜きだして作る

5
5
 (
5
  (wikiname "WikiName1)
5
  (recent "regexp1")
5
  (toc "regexp2")
5
   .
5
   .
5
 )