[#9811] Ruby book — WATANABE Tetsuya <tetsu@...>

今日のひとこと(10/05)

22 messages 1998/10/05
[#9812] Re: Ruby book — matz@... (Yukihiro Matsumoto) 1998/10/05

まつもと ゆきひろです

[#9813] Re: Ruby book — "D.Kanda" <MAP2303@...> 1998/10/05

[#9815] Re: Ruby book — matz@... (Yukihiro Matsumoto) 1998/10/05

まつもと ゆきひろです

[#9827] Are there any NNTP Client Class? — Takeshi UME Imai <takeshi@...>

はじめまして。今井といいます。

17 messages 1998/10/05
[#9828] Re: Are there any NNTP Client Class? — aamine@... 1998/10/05

はじめまして、あおきともうします。

[#9869] man-1.1/Marshal.html — ttate@...

立石です。

47 messages 1998/10/07
[#9872] Re: man-1.1/Marshal.html — matz@... (Yukihiro Matsumoto) 1998/10/08

まつもと ゆきひろです

[#9880] comments on manual (Re: man-1.1/Marshal.html) — Motoyuki Kasahara <m-kasahr@...> 1998/10/08

SRA の笠原です。

[#9881] Re: comments on manual (Re: man-1.1/Marshal.html) — matz@... (Yukihiro Matsumoto) 1998/10/08

まつもと ゆきひろです

[#9909] Re: comments on manual (Re: man-1.1/Marshal.html) — Motoyuki Kasahara <m-kasahr@...> 1998/10/09

SRA の笠原です。

[#9936] Re: comments on manual (Re: man-1.1/Marshal.html) — matz@... (Yukihiro Matsumoto) 1998/10/09

まつもと ゆきひろです

[#9939] Re: comments on manual (Re: man-1.1/Marshal.html) — Shin-ichro Hara <sinara@...> 1998/10/09

原です。

[#9940] Re: comments on manual (Re: man-1.1/Marshal.html) — matz@... (Yukihiro Matsumoto) 1998/10/09

まつもと ゆきひろです

[#9941] Re: comments on manual (Re: man-1.1/Marshal.html) — Shin-ichro Hara <sinara@...> 1998/10/09

原です。

[#9942] Re: comments on manual (Re: man-1.1/Marshal.html) — matz@... (Yukihiro Matsumoto) 1998/10/09

まつもと ゆきひろです

[#9944] read(nil) (Re: comments on manual) — Shin-ichro Hara <sinara@...> 1998/10/09

原です。

[#9884] List of UserInterface Kits for Ruby ? — a.furudo@...

20 messages 1998/10/08
[#9906] Re: List of UserInterface Kits for Ruby ? — matz@... (Yukihiro Matsumoto) 1998/10/09

まつもと ゆきひろです

[#9885] 文字化け失礼、再送 — Akihiro Furudo <a.furudo@...>

26 messages 1998/10/08
[#9888] Re: 文字化け失礼、再送 — ttate@... 1998/10/08

立石です。

[#9897] お礼と、 Ruby/Gtk(i18n) について質問 — Akihiro Furudo <A.Furudo@...> 1998/10/08

[#9982] Re: お礼と、 Ruby/Gtk(i18n) について質問 — Daisuke Kanda <MAP2303@...> 1998/10/11

[#10320] Ruby/Gtk を FreeBSD にインストール (re:9982) — Akihiro Furudo <a.furudo@...> 1998/10/24

[#10328] Re: Ruby/Gtk を FreeBSD にインストール (re:9982) — Daisuke Kanda <MAP2303@...> 1998/10/25

[#9976] ruby:struct -> ext module -> ruby — Kikutani Makoto <kikutani@...>

きくたにです。

17 messages 1998/10/11

[#9999] ruby on HP-UX — AU6M-IWM@... (Iwama Misao)

20 messages 1998/10/12
[#10001] Re: ruby on HP-UX — matz@... (Yukihiro Matsumoto) 1998/10/12

まつもと ゆきひろです

[#10030] Ruby/Gtk text widget — TAKAHASHI Masayoshi <maki@...>

高橋です。

29 messages 1998/10/12
[#10035] Re: Ruby/Gtk text widget — Daisuke Kanda <MAP2303@...> 1998/10/12

[#10038] ruby/gtk method naming (Re: Re: Ruby/Gtk text widget) — "D.Kanda" <MAP2303@...> 1998/10/13

[#10067] Re: ruby/gtk method naming (Re: Re: Ruby/Gtk text widget) — Kazumi Okamoto <kazusan@...> 1998/10/13

岡本です。

[#10092] for が修飾子だったら — ARIMA Yasuhiro <fit0298@...>

有馬@FITECです。

46 messages 1998/10/14
[#10093] Re: for が修飾子だったら — matz@... (Yukihiro Matsumoto) 1998/10/14

まつもと ゆきひろです

[#10236] Array.html again — Motoyuki Kasahara <m-kasahr@...>

笠原です。こんにちは。

18 messages 1998/10/22
[#10237] Re: Array.html again — Kanda <MAP2303@...> 1998/10/22

[#10239] Re: Array.html again — matz@... (Yukihiro Matsumoto) 1998/10/22

まつもと ゆきひろです

[#10311] Re: 大規模プログラムの友 — m_seki@... (SEKI)

At 11:23 PM 98.10.23 +0900, Takashi Nakai wrote:

24 messages 1998/10/23
[#10312] Re: 大規模プログラムの友 — Takashi Nakai <nakai@...1.sys.to.casio.co.jp> 1998/10/23

ど〜も、(またしても)中井です。

[#10369] Re: 大規模プログラムの友 — matz@... (Yukihiro Matsumoto) 1998/10/27

まつもと ゆきひろです

[#10415] split — flare@... (Takashi Ikeda)

ふれあです。

20 messages 1998/10/28

[#10473] case with Class — MineroAoki <aamine@...>

あおきです。

46 messages 1998/10/29
[#10483] Re: case with Class — matz@... (Yukihiro Matsumoto) 1998/10/30

まつもと ゆきひろです

[#10521] Re: case with Class — aamine@... 1998/10/30

こんにちは。あおきです。

[#10523] Re: case with Class — gotoken@... (GOTO Kentaro) 1998/10/30

ごとけんです

[#10530] Re: case with Class — aamine@... 1998/10/31

あおきです。

[#10544] Re: case with Class — shugo@... (MAEDA Shugo) 1998/10/31

前田です。

[#10548] Re: case with Class — Wakou Aoyama <wakou@...> 1998/10/31

青山です。

[#10555] Re: case with Class — shugo@... (MAEDA Shugo) 1998/11/01

前田です。

[#10566] Re: case with Class — Wakou Aoyama <wakou@...> 1998/11/01

青山です。

[ruby-list:10274] Re: for が修飾子だったら

From: matz@... (Yukihiro Matsumoto)
Date: 1998-10-23 02:00:03 UTC
List: ruby-list #10274
まつもと ゆきひろです

In message "[ruby-list:10269] Re: for が修飾子だったら"
    on 98/10/23, Shin-ichro Hara <sinara@blade.nagaokaut.ac.jp> writes:

|原です。

||そういう話をしてるんじゃなくて、foo.eachのあとに文の集まりが続くか否かを
||パーザーがgreedyに見に行かないのはなんでなの?と質問しています。
|
|文法に合っている最長を取るとか?(^^;

うーむ.

|これとちょっと違うんだけど、文法エラーになるときエラーにならない解釈が
|あるならそれを採用するようにしてもらえるとありがたいですね。

現在でもできるだけ「善意に解釈する」ような文法にはしてます.
たとえば

   foo{1}

なんてのはブロックが来てるんだか,第一引数にハッシュが来てる
のか分からないんで,当初エラーにしてたんですが,これはブロッ
クが来てるとみなすようにしてます.

|それが LALR(1) (なんだっけこれ ^^;) に外れるんですか、、、いち token 読
|んで文法的に完結していなければもういち token 読んでみるけど、いち token
|読んで文法エラーならエラーにならない様にそれ以前を解釈し直すというのは
|できないって事かな。

LALR(1)のLALRってのは文法のクラスです.LALR(1)はやや乱暴にい
えばyaccの取り扱える文法って意味ですね.で,(1)は1トークンの
先読みで文法が解釈できるという意味です.で,たとえば改行を越
えてgreedyに見に行くとすると

   obj.each
   do .. end

はeachまで読み込んだ後,改行にぶつかった後,doがあるかチェッ
クしないと構文が決定できません.ということは,「改行」,「do」
の2トークン読まないといけなくなるのでyaccでは構文解析できま
せん.これがブロックが { } だともっと大変で

  obj.each
  {2 => 5}

は2行目は実はブロックではなくハッシュなのですが,この構文を
決定するためには「改行」,「{」,「2」,「=>」の4トークン読
み込まないと構文が決定できません.

たとえ手書きのパーザを書くにしても2個以上のトークンを先読み
する必要のあるパーザは1トークン先読みするものに対して,書く
のが飛躍的に困難です.

たとえば,改行による文区切りを禁止すればこれらも1トークンの
先読みで解釈できますが,おそらく今まで書かれたRubyスクリプト
の99.98%が動作しなくなるでしょう.いまさらそれだけ大きな文法
の変更が許容されるとは思いません.

というわけで,たかだか「改行の後ろにブロックを置く」というこ
とを実現するために

  * yaccをあきらめて手書きのパーザを書く

  * 過去のRubyスクリプト全部に書き換えが必要な文法の変更

のいずれも割に合わないな,というのが私の感想です.

もちろん,Rubyのソースは公開されていますので,ここの部分だけ
を変更した別の言語が新たに生まれるというのは推奨したいとは思
いますが,私自身はやらないと思います.

# 私は言語がいっぱいあるのは望ましいと思ってます.

                                まつもと ゆきひろ /:|)

In This Thread