From: nobu.nakada@... Date: 2002-06-19T00:58:34+09:00 Subject: [ruby-dev:17514] Re: ternary operator and char literal (Re: parse error with `true || break ? 0 : 1' (PR#261)) なかだです。 At Mon, 17 Jun 2002 16:24:06 +0900, Tanaka Akira wrote: > > M17Nでは「コードポイント」としてそれなりに定義していますが、 > > それまでは使えないと思ってよいのではないかと。 > > とすると、現時点で妥当なのは、なかださんのパッチのように '?' にしてし > まうか、エラーにするか、ですかね。 > > '?' にするにしても警告つきかな。 とりあえず、二文字以上の単語の先頭の?だけはリテラルとみなさない というほうは今コミットましたが、警告を出すようにするならこんな 感じでしょうか。 Index: parse.y =================================================================== RCS file: /cvs/ruby/src/ruby/parse.y,v retrieving revision 1.188 diff -u -2 -p -r1.188 parse.y --- parse.y 2002/06/18 15:53:57 1.188 +++ parse.y 2002/06/18 15:54:42 @@ -3306,4 +3306,8 @@ yylex() return '?'; } + if (ismbchar(c)) { + rb_warn("multibyte character literal not supported yet; use ?\\%.3o", c); + goto ternary; + } if ((ISALNUM(c) || c == '_') && lex_p < lex_pend && is_identchar(*lex_p)) { goto ternary; -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦