SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
Re:VIEW
新パーサ現状確認
2015/02/13 第2回パーサ勉強会
株式会社達人出版会/一般社団法人日本Rubyの会
高橋征義 @takahashim
Re:VIEW 2.0(仮)
•ブロックとインラインの入れ子を許したい
Re:VIEW 2.0(仮)
•PEGで実装: kpegを利用
ざっくりの構造
Doc = Block*
Block = ( 見出し / ブロック要素 / 箇条書き / 段落)
段落 = 段落行+
段落行 = 行要素 改行
ブロック要素 = ブロックコンテンツ+
ブロックコンテンツ = (行要素/ブロック要素/箇条書き/B段落)
B段落 = B段落行+
B段落行 = ! //} 行要素 改行
ざっくりの構造
ブロックその1
ブロックその2
ブロックその3
ブロックそのN
•ドキュメントはブロックの集合
……
ざっくりの構造
見出し
パラグラフ(段落)
箇条書き
パラグラフ(段落)
• ブロックは見出し/段落/箇条書き/ブロック要素 (コメントは
  省略)
……
ざっくりの構造
• パラグラフはパラグラフ行、パラグラフ行は行要素+改行
パラグラフ
行要素
行要素
行要素
改行
改行
改行
……
パラグラフ行
ざっくりの構造
• 行要素はインラインの集合、インラインはインライン要素
と非インライン要素(テキスト)のどちらか
行要素
……
インライン
非イン
ライン要素
インライン
要素
インライン
要素
非イン
ライン要素
非イン
ライン要素
※インライン要素は強調、ルビ、参照など
ブロック要素の検討
・入れ子を許すもの
  例:引用、メモ(囲み)など
・入れ子を許さないもの
  例:ソースコード、表、数式など
結局2種類用意することになりそう
ブロック要素の検討
・入れ子を許すもの
 →ブロック要素「しか」許さない
  ただのテキストは「パラグラフ」になる
・入れ子を許さないもの
 →単なるテキスト行(行要素)の集まり
  
これから
•箇条書きが怪しいのでもうちょっと調べる
•引数の仕様を追加する(名前付き引数対応)
•微妙な仕様について
•エスケープどうするか問題
•エラーぽい文字列をどこまで許容するか
•異常入力時のデバッグ
•経験的には落ちたり止まったりする

Contenu connexe

Tendances

リトライでtime.Sleepを使ったら積んだ話
リトライでtime.Sleepを使ったら積んだ話リトライでtime.Sleepを使ったら積んだ話
リトライでtime.Sleepを使ったら積んだ話ssuser329cba
 
最近見つけたアプリ - @ minatoeod 20170617
最近見つけたアプリ - @ minatoeod 20170617最近見つけたアプリ - @ minatoeod 20170617
最近見つけたアプリ - @ minatoeod 20170617phain u
 
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)parrotstudio
 
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹CODE BLUE
 
Precise garbage collection for c
Precise garbage collection for cPrecise garbage collection for c
Precise garbage collection for cmiura1729
 
OpenBSD/luna88k news at NBUG Meeting 2013-12
OpenBSD/luna88k news at NBUG Meeting 2013-12OpenBSD/luna88k news at NBUG Meeting 2013-12
OpenBSD/luna88k news at NBUG Meeting 2013-12Kenji Aoyama
 
5社のGTFSをマージして、PostgreSQLにインポートしてみた
5社のGTFSをマージして、PostgreSQLにインポートしてみた5社のGTFSをマージして、PostgreSQLにインポートしてみた
5社のGTFSをマージして、PostgreSQLにインポートしてみたMasaki Ito
 

Tendances (7)

リトライでtime.Sleepを使ったら積んだ話
リトライでtime.Sleepを使ったら積んだ話リトライでtime.Sleepを使ったら積んだ話
リトライでtime.Sleepを使ったら積んだ話
 
最近見つけたアプリ - @ minatoeod 20170617
最近見つけたアプリ - @ minatoeod 20170617最近見つけたアプリ - @ minatoeod 20170617
最近見つけたアプリ - @ minatoeod 20170617
 
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
 
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
[CB16] House of Einherjar :GLIBC上の新たなヒープ活用テクニック by 松隈大樹
 
Precise garbage collection for c
Precise garbage collection for cPrecise garbage collection for c
Precise garbage collection for c
 
OpenBSD/luna88k news at NBUG Meeting 2013-12
OpenBSD/luna88k news at NBUG Meeting 2013-12OpenBSD/luna88k news at NBUG Meeting 2013-12
OpenBSD/luna88k news at NBUG Meeting 2013-12
 
5社のGTFSをマージして、PostgreSQLにインポートしてみた
5社のGTFSをマージして、PostgreSQLにインポートしてみた5社のGTFSをマージして、PostgreSQLにインポートしてみた
5社のGTFSをマージして、PostgreSQLにインポートしてみた
 

En vedette

Apresentação ou Sonífero
Apresentação ou SoníferoApresentação ou Sonífero
Apresentação ou SoníferoPedro Mello
 
New Year's '07 snaps in Japan
New Year's '07 snaps in JapanNew Year's '07 snaps in Japan
New Year's '07 snaps in Japangarr
 
Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Tatsuhiko Miyagawa
 
Carton CPAN dependency manager
Carton CPAN dependency managerCarton CPAN dependency manager
Carton CPAN dependency managerTatsuhiko Miyagawa
 
Presentationzen tests audio on Slideshare.net
Presentationzen tests audio on Slideshare.netPresentationzen tests audio on Slideshare.net
Presentationzen tests audio on Slideshare.netgarr
 
Zen presentation with_notes
Zen presentation with_notesZen presentation with_notes
Zen presentation with_notesDennis Breen
 
El Arte de la Presentación (II) - La preparación de la presentación
El Arte de la Presentación (II) - La preparación de la presentaciónEl Arte de la Presentación (II) - La preparación de la presentación
El Arte de la Presentación (II) - La preparación de la presentaciónAlberto de Vega Luna
 
Garr's slides (PPTLive 08)
Garr's slides (PPTLive 08)Garr's slides (PPTLive 08)
Garr's slides (PPTLive 08)garr
 
Career Advice '08
Career Advice '08Career Advice '08
Career Advice '08garr
 
Apresentacões Eficazes - Mantenha tudo simples! Versão Longa
Apresentacões Eficazes - Mantenha tudo simples! Versão LongaApresentacões Eficazes - Mantenha tudo simples! Versão Longa
Apresentacões Eficazes - Mantenha tudo simples! Versão LongaPedro Mello
 
Quotes from Sir Ken Robinson’s 2013 TED talk
Quotes from Sir Ken Robinson’s 2013 TED talkQuotes from Sir Ken Robinson’s 2013 TED talk
Quotes from Sir Ken Robinson’s 2013 TED talkgarr
 
Como criar slides fantásticos
Como criar slides fantásticosComo criar slides fantásticos
Como criar slides fantásticosFelipe Faias
 
青空文庫テキストフォーマットについて (aozorahack)
青空文庫テキストフォーマットについて (aozorahack)青空文庫テキストフォーマットについて (aozorahack)
青空文庫テキストフォーマットについて (aozorahack)masayoshi takahashi
 
Faça Apresentações! Não Faça Slides!
Faça Apresentações! Não Faça Slides!Faça Apresentações! Não Faça Slides!
Faça Apresentações! Não Faça Slides!Victor Gonçalves
 
Ways of Seeing Data: Towards a Critical Literacy for Data Visualisations as R...
Ways of Seeing Data: Towards a Critical Literacy for Data Visualisations as R...Ways of Seeing Data: Towards a Critical Literacy for Data Visualisations as R...
Ways of Seeing Data: Towards a Critical Literacy for Data Visualisations as R...Jonathan Gray
 

En vedette (20)

Apresentação ou Sonífero
Apresentação ou SoníferoApresentação ou Sonífero
Apresentação ou Sonífero
 
aozorahack hackathon #1
aozorahack hackathon #1aozorahack hackathon #1
aozorahack hackathon #1
 
New Year's '07 snaps in Japan
New Year's '07 snaps in JapanNew Year's '07 snaps in Japan
New Year's '07 snaps in Japan
 
Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011
 
Carton CPAN dependency manager
Carton CPAN dependency managerCarton CPAN dependency manager
Carton CPAN dependency manager
 
Presentationzen tests audio on Slideshare.net
Presentationzen tests audio on Slideshare.netPresentationzen tests audio on Slideshare.net
Presentationzen tests audio on Slideshare.net
 
Marketing Mix Market Yourself
Marketing Mix Market YourselfMarketing Mix Market Yourself
Marketing Mix Market Yourself
 
Zen presentation with_notes
Zen presentation with_notesZen presentation with_notes
Zen presentation with_notes
 
Day 5 - Duarte
Day 5 - DuarteDay 5 - Duarte
Day 5 - Duarte
 
Day 5 - Duarte
Day 5 - DuarteDay 5 - Duarte
Day 5 - Duarte
 
El Arte de la Presentación (II) - La preparación de la presentación
El Arte de la Presentación (II) - La preparación de la presentaciónEl Arte de la Presentación (II) - La preparación de la presentación
El Arte de la Presentación (II) - La preparación de la presentación
 
Garr's slides (PPTLive 08)
Garr's slides (PPTLive 08)Garr's slides (PPTLive 08)
Garr's slides (PPTLive 08)
 
Career Advice '08
Career Advice '08Career Advice '08
Career Advice '08
 
Apresentacões Eficazes - Mantenha tudo simples! Versão Longa
Apresentacões Eficazes - Mantenha tudo simples! Versão LongaApresentacões Eficazes - Mantenha tudo simples! Versão Longa
Apresentacões Eficazes - Mantenha tudo simples! Versão Longa
 
Quotes from Sir Ken Robinson’s 2013 TED talk
Quotes from Sir Ken Robinson’s 2013 TED talkQuotes from Sir Ken Robinson’s 2013 TED talk
Quotes from Sir Ken Robinson’s 2013 TED talk
 
Como criar slides fantásticos
Como criar slides fantásticosComo criar slides fantásticos
Como criar slides fantásticos
 
PQRS-CCK (ICH- Q1) March 2017
PQRS-CCK (ICH- Q1) March 2017PQRS-CCK (ICH- Q1) March 2017
PQRS-CCK (ICH- Q1) March 2017
 
青空文庫テキストフォーマットについて (aozorahack)
青空文庫テキストフォーマットについて (aozorahack)青空文庫テキストフォーマットについて (aozorahack)
青空文庫テキストフォーマットについて (aozorahack)
 
Faça Apresentações! Não Faça Slides!
Faça Apresentações! Não Faça Slides!Faça Apresentações! Não Faça Slides!
Faça Apresentações! Não Faça Slides!
 
Ways of Seeing Data: Towards a Critical Literacy for Data Visualisations as R...
Ways of Seeing Data: Towards a Critical Literacy for Data Visualisations as R...Ways of Seeing Data: Towards a Critical Literacy for Data Visualisations as R...
Ways of Seeing Data: Towards a Critical Literacy for Data Visualisations as R...
 

Plus de masayoshi takahashi

青空文庫と式年遷宮アーキテクチャ: 青空文庫200周年に向けて
青空文庫と式年遷宮アーキテクチャ: 青空文庫200周年に向けて青空文庫と式年遷宮アーキテクチャ: 青空文庫200周年に向けて
青空文庫と式年遷宮アーキテクチャ: 青空文庫200周年に向けてmasayoshi takahashi
 
aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)
aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)
aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)masayoshi takahashi
 
オープンソースとプラットフォームとお金
オープンソースとプラットフォームとお金オープンソースとプラットフォームとお金
オープンソースとプラットフォームとお金masayoshi takahashi
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門masayoshi takahashi
 
新・ReVIEWパーサについて
新・ReVIEWパーサについて新・ReVIEWパーサについて
新・ReVIEWパーサについてmasayoshi takahashi
 
電子出版はどこを 目指すのか・技術書編
電子出版はどこを 目指すのか・技術書編電子出版はどこを 目指すのか・技術書編
電子出版はどこを 目指すのか・技術書編masayoshi takahashi
 
The History of Ruby; 20th Anniversary Ed.
The History of Ruby; 20th Anniversary Ed.The History of Ruby; 20th Anniversary Ed.
The History of Ruby; 20th Anniversary Ed.masayoshi takahashi
 
「執筆のためのエレベータピッチ」のテンプレート
「執筆のためのエレベータピッチ」のテンプレート「執筆のためのエレベータピッチ」のテンプレート
「執筆のためのエレベータピッチ」のテンプレートmasayoshi takahashi
 

Plus de masayoshi takahashi (20)

osc2019tokyospring
osc2019tokyospringosc2019tokyospring
osc2019tokyospring
 
Ruby25: Rubyの1/4世紀
Ruby25: Rubyの1/4世紀Ruby25: Rubyの1/4世紀
Ruby25: Rubyの1/4世紀
 
Code for 選挙とWikidata
Code for 選挙とWikidataCode for 選挙とWikidata
Code for 選挙とWikidata
 
青空文庫と式年遷宮アーキテクチャ: 青空文庫200周年に向けて
青空文庫と式年遷宮アーキテクチャ: 青空文庫200周年に向けて青空文庫と式年遷宮アーキテクチャ: 青空文庫200周年に向けて
青空文庫と式年遷宮アーキテクチャ: 青空文庫200周年に向けて
 
Aozorahack20161106
Aozorahack20161106Aozorahack20161106
Aozorahack20161106
 
TdX#01 RubyKaigiの作り方
TdX#01 RubyKaigiの作り方TdX#01 RubyKaigiの作り方
TdX#01 RubyKaigiの作り方
 
aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)
aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)
aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)
 
オープンソースとプラットフォームとお金
オープンソースとプラットフォームとお金オープンソースとプラットフォームとお金
オープンソースとプラットフォームとお金
 
Webと電子書籍の話
Webと電子書籍の話Webと電子書籍の話
Webと電子書籍の話
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
 
How To Become A Rubyist
How To Become A RubyistHow To Become A Rubyist
How To Become A Rubyist
 
Markdownもはじめよう
MarkdownもはじめようMarkdownもはじめよう
Markdownもはじめよう
 
新・ReVIEWパーサについて
新・ReVIEWパーサについて新・ReVIEWパーサについて
新・ReVIEWパーサについて
 
電子出版はどこを 目指すのか・技術書編
電子出版はどこを 目指すのか・技術書編電子出版はどこを 目指すのか・技術書編
電子出版はどこを 目指すのか・技術書編
 
The History of Ruby; 20th Anniversary Ed.
The History of Ruby; 20th Anniversary Ed.The History of Ruby; 20th Anniversary Ed.
The History of Ruby; 20th Anniversary Ed.
 
lldecade2012
lldecade2012lldecade2012
lldecade2012
 
mruby for embedded systems
mruby for embedded systemsmruby for embedded systems
mruby for embedded systems
 
mrubyのすすめ
mrubyのすすめmrubyのすすめ
mrubyのすすめ
 
「執筆のためのエレベータピッチ」のテンプレート
「執筆のためのエレベータピッチ」のテンプレート「執筆のためのエレベータピッチ」のテンプレート
「執筆のためのエレベータピッチ」のテンプレート
 
EPUBとその制作について
EPUBとその制作についてEPUBとその制作について
EPUBとその制作について
 

Re:VIEW新パーサ現状確認(2015年2月版)