前田です。

At Mon, 6 Dec 1999 21:29:59 +0900,
TAKEUCHi Kahori (竹内かほり) <take-k / secom-sis.co.jp> wrote:
> eruby.diff 置きなおしました。って、うちでこうやって置いとい
> ていいんでしょうか。前田さんに迷惑かけてる気がしますが…。

いえいえ。

> となっていました。% がいっこ足りなくて、SyntaxError になるハ
> ズです。Just の前の % を意味もなくががーっと増やしてみても、
> つねに上のようになります。% はいっぱい続けても1つの % になっ
> てしまうみたい? どう書けばいいですか?

すみません、バグでした。
パッチを付けます。

このパッチだと、

  ['わたなべ氏',
   'print eval %<%%Just another Ruby hacker,%%>']

と書けばよいはずです。
Rubyスクリプトに変換した時に、

  ['わたなべ氏',
   'print eval %<%%Just another Ruby hacker,%>']

となるのですが、最初の'<%%'が'<%'にならないのは<%,%>はネストしな
いので<%,%>内の<%はそのまま通るからです。
それとも<%,%>内の<%はエラーにした方がよいですかね。

-- 
前田 修吾

--- eruby.c.orig Tue Dec 7 11:28:07 1999 +++ eruby.c Tue Dec 7 11:37:43 1999 @@ -37,10 +37,14 @@ c = getc(in); again: if (c == eruby_end_delimiter[0]) { - if (prevc == eruby_end_delimiter[0]) - continue; c = getc(in); if (c == eruby_end_delimiter[1]) { + if (prevc == eruby_end_delimiter[0]) { + if (type != EMBEDDED_COMMENT) + putc(eruby_end_delimiter[1], out); + prevc = eruby_end_delimiter[1]; + continue; + } if (type == EMBEDDED_EXPR) fputs(")); ", out); else if (type == EMBEDDED_STMT && prevc != '\n') @@ -141,8 +145,7 @@ } else if (c == eruby_begin_delimiter[1]) { /* <%% => <% */ if (prevc < 0) fputs("print \"", out); - putc(eruby_begin_delimiter[0], out); - putc(eruby_begin_delimiter[1], out); + fwrite(eruby_begin_delimiter, 1, 2, out); prevc = eruby_begin_delimiter[1]; continue; }