From: nobu.nokada@... Date: 2004-07-16T15:57:35+09:00 Subject: Re: Do you want ":=" operator? Hi, At Fri, 16 Jul 2004 15:02:19 +0900, Xiangyu Yang wrote in [ruby-talk:106622]: > It seems that I need more words to explain my CPU model. I'll show why > it is *impossible* to impletement *register assignment* by "=". Isn't this acceptable? class CPU > class Reg > attr_accessor :value, :new_value, :data_enb > > def initialize() > @value=@new_value=0 > @data_enb=false > end > > def assign(data) > @new_value = data > @data_enb=true > end > > def update > @value, @data_enb=@new_value, false if @data_enb > end > > end def initialize(regnum = 32) @regset = Array.new(regnum) {Reg.new} end def [](idx) (0...@regset.size) === idx or raise RangeError @regset[idx] end def []=(idx, data) (0...@regset.size) === idx or raise RangeError @regset[idx].assign(data) end end R = CPU.new -- Nobu Nakada