[#35406] RE: win32ole で excel が終了しない — "Oka Yasushi" <oka@...>

こんにちは、岡といいます。

20 messages 2002/06/19
[#35407] Re: win32ole で excel が終了しない — Takashi Kanai <kanai@...4u.or.jp> 2002/06/19

金井です。

[#35408] Re: win32ole で excel が終了しない — Takashi Kanai <kanai@...4u.or.jp> 2002/06/19

金井です。

[#35412] Re: win32ole で excel が終了しない — "NAKAMURA, Hiroshi" <nakahiro@...> 2002/06/20

なひです。

[#35418] Re: win32ole で excel が終了しない — Takashi Kanai <kanai@...4u.or.jp> 2002/06/20

金井です。

[#35419] Re: win32ole で excel が終了しない — nobu.nakada@... 2002/06/21

なかだです。

[#35480] Re: 1.7 系を使っていますが、5月頃は式展開内のコメントが使えていましたが、今は使えなくなっていますね。 — "井上 浩一" <kyoui32@...>

=1B$B0f>e$G$9!#=1B(B

12 messages 2002/06/28
[#35490] Re: 1.7 系を使っていますが、5月頃は式展開内のコメントが使えていましたが、今は使えなくなっていますね。 — "Inoue" <rubyist@117.ne.jp> 2002/06/28

井上です。

[ruby-list:35478] Re: 1.7 系を使っていますが、5月頃は式展開内のコメントが使えていましたが、今は使えなくなっていますね。

From: nobu.nakada@...
Date: 2002-06-28 00:58:11 UTC
List: ruby-list #35478
なかだです。

At Fri, 28 Jun 2002 09:44:13 +0900,
井上 浩一 wrote:
> 1.7系を使用しています。
> 5月頃にスナップショットをダウンロードし、VCでコンパイルして使っていた頃は、
> 式展開内にコメントが書けていました。   #{ 式 # コメント}
> サイト作りで、erubyやerbなど使わなかったので、<!--ではなく、Ruby純粋の#でコメントを書いていました。

そういう使い方をしていた人も結構いたんですねぇ。最近任意の文を
エスケープなしで書けるようにした副作用ですが、コメントについて
はまったく考えてませんでした。

aifuru <<EOT
<table>
<tr><td>#{dousuru # ここにコメント書いていました。
}</td></tr>
</table>
EOT

と}の前に改行を入れると今でも使えますが、以下のパッチを試してみ
てください。

> Rubyの内部(RHGかな?)を説明した本が出るのはいつでしょうか。

RHGって何の略ですか。


Index: parse.y
===================================================================
RCS file: /cvs/ruby/src/ruby/parse.y,v
retrieving revision 1.195
diff -u -2 -p -r1.195 parse.y
--- parse.y	27 Jun 2002 17:16:39 -0000	1.195
+++ parse.y	27 Jun 2002 17:39:22 -0000
@@ -102,4 +102,5 @@ static int class_nest = 0;
 static int in_single = 0;
 static int in_def = 0;
+static int in_string = 0;
 static int compile_for_eval = 0;
 static ID cur_mid = 0;
@@ -1948,4 +1949,5 @@ string_content	: tSTRING_CONTENT {$$ = N
 			lex_strterm = 0;
 			lex_state = EXPR_BEG;
+			++in_string;
 		    }
 		  compstmt '}'
@@ -1958,4 +1960,5 @@ string_content	: tSTRING_CONTENT {$$ = N
 			    rb_gc_force_recycle((VALUE)$4);
 			}
+			--in_string;
 		    }
 		;
@@ -2407,4 +2410,5 @@ yycompile(f, line)
     in_single = 0;
     in_def = 0;
+    in_string = 0;
     cur_mid = 0;
 
@@ -3163,7 +3167,20 @@ yylex()
 
       case '#':		/* it's a comment */
-	while ((c = nextc()) != '\n') {
-	    if (c == -1)
-		return 0;
+	if (in_string) {
+	    while ((c = nextc()) != '\n') {
+		int w;
+		if (c == '}') {
+		    pushback(c);
+		    goto retry;
+		}
+		if (c == -1) return 0;
+		if ((w = ismbchar(c) - 1) > 0 && (lex_p += w) >= lex_pend) {
+		    lex_p = lex_pend;
+		    break;
+		}
+	    }
+	}
+	else {
+	    lex_p = lex_pend;
 	}
 	/* fall through */


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread