[#17276] blocks and local variables — Takaaki Tateishi <ttate@...>
立石です.
まつもと ゆきひろです
At Mon, 3 Jun 2002 06:26:56 +0900,
まつもと ゆきひろです
なかだです。
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
In article <1023423387.175193.27185.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
Yukihiro Matsumotoさんの
まつもと ゆきひろです
なかだです。
前田です。
At Fri, 7 Jun 2002 13:23:37 +0900,
まつもと ゆきひろです
Yukihiro Matsumotoさんの
まつもと ゆきひろです
Yukihiro Matsumotoさんの
なかだです。
nobu.nakada@nifty.ne.jpさんの
まつもと ゆきひろです
Yukihiro Matsumotoさんの
まつもと ゆきひろです
Yukihiro Matsumotoさんの
原です。
原です。
なかだです。
原です。
どうも西尾です。
なかだです。
At Sun, 16 Jun 2002 10:40:40 +0900,
なかだです。
At Sun, 16 Jun 2002 12:24:00 +0900,
なかだです。
At Sun, 16 Jun 2002 16:57:13 +0900,
なかだです。
どうも西尾です。
まつもと ゆきひろです
[#17315] Re: mswin32 での config.status の自動生成 — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#17327] irb 0.9 alpha — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
[#17367] Ruby bcc32 on Win32 版のコミットについて — 小西 弘将 <konishih@...6.so-net.ne.jp>
小西 弘将です。
まつもと ゆきひろです
小西 弘将です。
こんにちは、なかむら(う)です。
小西 弘将です。
[#17384] avoid VC++ warnings — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#17392] [mswin32] exporting needless string literal — Tietew <tietew-ml-ruby-dev@...>
なかだです。
[#17393] [mswin32] static linked exts — Tietew <tietew-ml-ruby-dev@...>
[#17421] broken string when unterminated "#{". — WATANABE Hirofumi <eban@...>
わたなべです。
まつもと ゆきひろです
わたなべです。
In article <1023943870.232495.9282.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1023945463.297286.10112.nullmailer@picachu.netlab.jp>,
なかだです。
まつもと ゆきひろです
In article <1023987024.717469.15784.nullmailer@picachu.netlab.jp>,
なかだです。
まつもと ゆきひろです
In article <1024642728.541545.22623.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
In article <200206220646.g5M6kPY04591@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
In article <200206230606.g5N66RY15961@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
まつもと ゆきひろです
In article <1024667757.665595.25808.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1024750854.951300.30306.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1024887804.945188.6501.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1024895400.920419.6574.nullmailer@picachu.netlab.jp>,
[#17430] return value from methods of Array's subclass — "Shin'ya Adzumi" <adzumi@...>
あづみです。
あづみです。
まつもと ゆきひろです
あづみです。
[#17446] ternary operator and char literal (Re: parse error with `true || break ? 0 : 1' (PR#261)) — nobu.nakada@...
なかだです。
まつもと ゆきひろです
なかだです。
In article <200206160226.g5G2QO228336@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
In article <200206160749.g5G7nI231269@sharui.nakada.kanuma.tochigi.jp>,
まつもと ゆきひろです
[#17471] break from proc-closure — m_seki@...
まつもと ゆきひろです
In article <1033663928.287610.25914.nullmailer@picachu.netlab.jp>,
なかだです。
[#17475] String#crypt always returns tainted string — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#17513] __END__ in literal — nobu.nakada@...
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
In article <200206211121.g5LBLl211556@sharui.nakada.kanuma.tochigi.jp>,
[#17579] Re: [ruby-cvs] ruby: * dln.c: remark definition rb_loaderror(). — WATANABE Hirofumi <eban@...>
わたなべです。
[ruby-dev:17446] ternary operator and char literal (Re: parse error with `true || break ? 0 : 1' (PR#261))
なかだです。
話が長くなりそうなので、devに振ります。
At Fri, 14 Jun 2002 14:39:22 +0900 (JST),
akr@m17n.org wrote:
> % ruby -ve 'true || break ? 0 : 1'
> ruby 1.7.2 (2002-06-12) [i386-freebsd4.2]
> -e:1: syntax error
> true || break ? 0 : 1
> ^
> -e:1: warning: useless use of a literal in void context
>
> というように true || break ? 0 : 1 が parse error になります。
>
> 演算子の優先順位の点からいえば、?: よりも || のほうが優先されるため、
> これが不正である理由はないように思います。
>
> これが syntax error になるのは仕様しょうか。
At Sat, 15 Jun 2002 03:40:00 +0900 (JST),
akr@m17n.org wrote:
> In article <20020614173449.202F913FA@helium.ruby-lang.org>,
> nobu.nokada@softhome.net writes:
>
> > これは、三項演算子ではなくてbreakの引数のリテラル`? 'と解釈され
> > ています。その後に0が連続しているのでsyntax errorになります。
> > void contextのwarningは最後の1に対するものです。
>
> はい。問題はなぜ ? がリテラルになっちゃうかという話なわけです。
>
> むろん、直接的には break の後が EXPR_MID なので中置演算子は認識されな
> いからです。
>
> そもそも EXPR_MID とは何かというのがよくわかっていないんですが、たぶん、
> 中置演算子が意味のない文脈を表現しているのだと思います。break の場合に
> ついていえば、中置演算子の左辺が break だと、左辺の評価中に制御が外に
> 出てしまい、中置演算子の機能が動作しないからでしょう。
>
> このような観点から見ると、問題は中置演算子の左辺自体ではなく、左辺の右
> 端のトークンだけに依存して EXPR_MID であることがが決定されるということ
> にあります。まぁ、これは通常は問題ないわけですが、挙げた例のように問題
> が出ることもあります。
左辺の右端だけで決定されているというよりも、右辺をどこで終了さ
せるかが問題なのでは。
> とすれば、「正しい」修正は右端のトークンだけではなく、左辺を検査するこ
> とです。しかし、これは非常に困難です。なぜかというとこの処理の時点では
> 左辺はまだ認識されていないためです。左辺が認識されるのはこの時点で読も
> うとしているトークンが先読みとしてパーザに渡された後なわけで、そのトー
> クンの読み方を制御するために左辺を調べようというのは因果律に反します。
>
> # まぁ、不可能とはいいませんが。backtrack するとか。
Rubyの文法を人間が期待するように完全に解釈しようとすると、
backtrackしかないような気はします。
> というようにまじめにやると厄介な話なので、仕様ないしは既知のバグという
> あたりかなぁ、とか思っています。
>
> もちろん、なにかトリックを見つけて近似するというのはありかも知れません
> が、それで嬉しい人はまずいないんじゃないですかね。
どちらかというと、?のリテラルで空白を禁止したほうが直観的なよう
な気がします。必要なら`?\ 'とできますし。
それと、こういうのも一見して分かりにくいと思うので、二文字以上
の単語の先頭の?はリテラルとみなさないほうが良いのでは。
p ?aif true #=> 97
ついでに、ソースと別ディレクトリでコンパイルしていると、
keywordsを変更しても$(srcdir)/lex.cが読み込まれてしまって、変更
が反映されません。
Index: parse.y
===================================================================
RCS file: /cvs/ruby/src/ruby/parse.y,v
retrieving revision 1.184
diff -u -2 -p -r1.184 parse.y
--- parse.y 2002/06/14 06:27:18 1.184
+++ parse.y 2002/06/15 06:54:40
@@ -3032,5 +3032,5 @@ here_document(term, indent)
}
-#include "lex.c"
+#include <lex.c>
static void
@@ -3266,8 +3266,8 @@ yylex()
c = nextc();
if (c == -1) {
- rb_compile_error("incomplete character syntax");
- return 0;
+ return '?';
}
- if (IS_ARG() && ISSPACE(c)){
+ if ((lex_state != EXPR_BEG && ISSPACE(c)) || ismbchar(c) ||
+ (ISALNUM(c) || c == '_') && (lex_p >= lex_pend || is_identchar(*lex_p))){
pushback(c);
lex_state = EXPR_BEG;
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦