福澤テクノロジー

おっさんプログラマーが、主に技術的な話をするブログ。

mrubyのヒアドキュメントのバグを修正

mrubyのヒアドキュメントのバグを修正しました

バグがある事はわかっていたのですが、まず使われる事のない文法に対する Syntax Error だったので、半年ほど放置していました。
これを修正し、既にmasterにマージされています。

修正箇所は3箇所。

配列リテラルの途中でのヒアドキュメント

p [1, <<AAA, 3,
2
AAA
   4]
# => [1, "2\n", 3, 4]

引数の途中でのヒアドキュメント

def f(*x)
  p x
end
f(11,<<AAA,13,
12
AAA
  14)
# => [11, "12\n", 13, 14]

式展開 #{} の中でのヒアドキュメント

p "21 #{<<AAA} 23"
x #{b = {b:<<BBB}} y
22
BBB
z
AAA
# => "21 x {:b=>\"22\\n\"} y\nz\n 23"
p b
# => {:b=>"22\n"}