Bu, Ruby yorumlayıcısından farklı ayrıştırma kurallarına sahip Ruby hata ayıklayıcısının sonucudur. Aslında, irb
veya ruby
komutundan çağrılan normal Ruby hata ayıklayıcısı, bu davranışı gösterir. Sadece tek bir noktalı virgül oluşan edebi bir dize oluşturmak ters eğik çizgi bunu kaçış:
$ irb
> require 'debugger'
=> true
> debugger
(rdb:1) ';'
*** SyntaxError Exception: /usr/local/rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/irb/context.rb:166: unterminated string meets end of file
(rdb:1) '\;'
";"
O Ruby ayıklayıcı komut satırı ayrıştırıcı değil olduğuna dikkat etmek önemlidir geçici çözüm, ancak, basittir irb
veya ruby
yorumlayıcı tarafından kullanılan ayrıştırıcı aynı: bu ayrıştırma ayıklayıcı komutlarının tasarlanmıştır (irb
durumunda kabuk benzeri uzantılar ile) Ruby dil ayrıştırma gibi backtrace
vb break
ve değildir. Ruby (veya Ruby tarzı) ifadelerini değerlendirmek için sınırlı bir desteğe sahiptir. Bu elbette Ruby programlarının etkin hata ayıklaması için çok önemlidir. Ancak, irb
veya ruby
komutunun kendisinin her şeyi aynı şekilde ayrıştırması veya ayrıştırması için her şeyi ayrıştırmasını beklememelisiniz. Bazı durumlarda, bunun gibi, belirli ifadeleri işleyebilir, ancak Ruby'nin kendisinin aksine hata ayıklayıcısını ayrıştırma kurallarına tabi tutmaları gerekir.
Raylar konsol irb
üzerine inşa ve böylece bir Ruby kabuk ve sadece irb
ve ruby
gibi Yakut dilinin ayrıştırma kurallarına saygılı olduğunu.
Aynı problemi gsub ('\;', ',') kullanarak yaptım - yorumlayıcı bir şey yaptı, hata ayıklama istemi başka bir şey yaptı – Mitch