ruby-reference-manual:227
From: okkez <okkez000@g...>
Date: Sat, 23 Dec 2006 23:17:55 +0900
Subject: [ruby-reference-manual:227] BigDecimal#!=を書くとbc-methods/bitclustでエラーになる
こんばんは。
okkezです。
BigDecimal#!=をInstanceメソッドのエントリとして追加すると bc-methods --diffと bitclust
でそれぞれ以下のようなエラーがでます。
$ bc-methods -r bigdecimal --diff=src/bigdecimal.rd BigDecimal
/home/okkez/ruby/bitclust/lib/bitclust/rrdparser.rb:58:in
`parse_error': src/bigdecimal/BigDecimal:551: wrong method signature:
"--- !=(other)\n" (BitClust::ParseError)
from /home/okkez/ruby/bitclust/lib/bitclust/rrdparser.rb:255:in
`method_signature'
from /home/okkez/ruby/bitclust/lib/bitclust/rrdparser.rb:221:in
`read_chunk'
from /home/okkez/ruby/bitclust/lib/bitclust/rrdparser.rb:221:in `map'
from /home/okkez/ruby/bitclust/lib/bitclust/rrdparser.rb:221:in
`read_chunk'
from /home/okkez/ruby/bitclust/lib/bitclust/rrdparser.rb:211:in
`read_chunks'
from /home/okkez/ruby/bitclust/lib/bitclust/rrdparser.rb:209:in
`while_match'
from /home/okkez/ruby/bitclust/lib/bitclust/rrdparser.rb:209:in
`read_chunks'
from /home/okkez/ruby/bitclust/lib/bitclust/rrdparser.rb:188:in
`read_entries'
... 11 levels...
from /home/okkez/ruby/bitclust/lib/bitclust/rrdparser.rb:88:in
`parse_file'
from /home/okkez/ruby/bitclust/lib/bitclust/rrdparser.rb:70:in
`parse_stdlib_file'
from /home/okkez/bin/bc-methods:59:in `main'
from /home/okkez/bin/bc-methods:108
$ bitclust -d db update --stdlibtree=src
src/bigdecimal/BigDecimal:551: wrong method signature: "--- !=(other)\n"
一応、以下のパッチで動くようにはなります。
# もしかしてbc-methods --diff で追加するべきと出るのに追加しなくて良い例なのでしょうか。
# 同様に!~もエラーが出ますが、下のパッチでは対応してません。
Index: lib/bitclust/nameutils.rb
===================================================================
--- lib/bitclust/nameutils.rb (revision 945)
+++ lib/bitclust/nameutils.rb (working copy)
@@ -11,7 +11,7 @@
CONST_PATH_RE = /#{CONST_RE}(?:::#{CONST_RE})*/
CLASS_NAME_RE = /(?:#{CONST_RE}|fatal)/
CLASS_PATH_RE = /(?:#{CONST_PATH_RE}|fatal)/
- METHOD_NAME_RE =
/\w+[?!=]?|===|==|=~|<=>|<=|>=|\[\]=|\[\]|\*\*|>>|<<|\+@|\-@|[~+\-*\/%&|^<>`]/
+ METHOD_NAME_RE =
/\w+[?!=]?|===|==|!=|=~|<=>|<=|>=|\[\]=|\[\]|\*\*|>>|<<|\+@|\-@|[~+\-*\/%&|^<>`]/
TYPEMARK_RE = /(?:\.|\#|\.\#|::|\$)/
METHOD_SPEC_RE = /#{CLASS_PATH_RE}#{TYPEMARK_RE}#{METHOD_NAME_RE}/
GVAR_RE = /\$(?:\w+|-.|\S)/
--
okkez
okkez000@g...
--
ML: ruby-reference-manual@m...
使い方: http://QuickML.com/
-> 227 2006-12-23 15:17 [okkez000@g... ] BigDecimal#!=を書くとbc-methods/bitclustでエラーになる 228 2006-12-25 10:03 ┗[aamine@l... ] 229 2006-12-25 10:06 ┣[aamine@l... ] 231 2006-12-25 12:32 ┃┗[okkez000@g... ] 230 2006-12-25 12:27 ┗[okkez000@g... ]