Perl Parser Hacks vol.2 Shibuya.pm Tech Talk #14, 2010/9/30 Fuji, Goro (gfx) <gfuji@cpan.org>
自己紹介 <ul><li>藤 吾郎 (gfx) </li><ul><li>大学4年
id:gfx (hatena), @__gfx__ (twitter)
Perlのソースコードを読むのが好きです
明日は内定式です </li></ul></ul>
What are Parser Hacks? <ul><li>Vol.1 では perly.y をいじりました
perly.y が PerlのParser定義ファイル
$obj->method { say $_ } とかできるようにした
しかし…
perly.yをいじるのは大変
Upcoming SlideShare
Loading in …5
×

Perl Parser Hacks vol.2

1,476 views

Published on

A lightning talk in Shibuya.pm #14 (2010/9/30)

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Perl Parser Hacks vol.2

  1. 1. Perl Parser Hacks vol.2 Shibuya.pm Tech Talk #14, 2010/9/30 Fuji, Goro (gfx) <gfuji@cpan.org>
  2. 2. 自己紹介 <ul><li>藤 吾郎 (gfx) </li><ul><li>大学4年
  3. 3. id:gfx (hatena), @__gfx__ (twitter)
  4. 4. Perlのソースコードを読むのが好きです
  5. 5. 明日は内定式です </li></ul></ul>
  6. 6. What are Parser Hacks? <ul><li>Vol.1 では perly.y をいじりました
  7. 7. perly.y が PerlのParser定義ファイル
  8. 8. $obj->method { say $_ } とかできるようにした
  9. 9. しかし…
  10. 10. perly.yをいじるのは大変
  11. 11. パーサをいじるとヘッダファイルの変更が伴うので、修正する度に全ソースコードをコンパイルしなければならない!! </li></ul>
  12. 12. Use pluggable keyword! <ul><li>Perl 5.12.0 の新機能
  13. 13. モジュールからParserにフックを掛けられる
  14. 14. 任意のキーワードを追加できる
  15. 15. デモ: Keyword::Boolean, SQL::Embedded </li></ul>
  16. 16. PL_keyword_pluginの欠点 <ul><li>パースと構文木の生成を手動で行わないといけない
  17. 17. はっきりいって使いにくい!!! </li></ul>
  18. 18. parse_fullstmt() API <ul><li>Perl 5.13.5 (5.14に向けた開発版)の新機能
  19. 19. Keyword pluginの中で使う
  20. 20. 一つのステートメントをparseし、構文木を返す
  21. 21. これを使って面白いことが簡単にできるかも!?
  22. 22. 蛇足:5.13では package Foo { … } とかできるようになりました </li></ul>
  23. 23. Use Void; <ul><li>やってみた
  24. 24. 指定したキーワードに続くステートメントを消す
  25. 25. デモ:Void.pm - ステートメントを虚空の彼方へ </li></ul>
  26. 26. 使いどころが難しい <ul><li>単位がステートメントなので荒すぎる </li><ul><li>使いどころは難しい
  27. 27. KEYWORD SOMETHING STATEMENT とう何かならおk? </li></ul><li>本体に付属してるサンプルは参考にならない… </li><ul><li>Swapstmts; a; b; すると b; a; になるとかそんなの </li></ul><li>Method signetureの実装に使うのかも? </li></ul>
  28. 28. Conclusion <ul><li>Parser Hackたのしいです! </li></ul>
  29. 29. 次回予告 <ul><li>YAPC::Asia 2010 Tokkyoで次世代テンプレートエンジンXslateについて話します(40分枠) </li><ul><li>前半はXslateの紹介と使い方について
  30. 30. 後半はParserとVirtual Machineについて </li></ul></ul>

×