On Apr 21, 2006, at 5:19 PM, James Edward Gray II wrote:
Filter the formulas through Ruby and we gain an instance programming language. You could even use const_missing() to spring the cell references to life as needed... :D Just a thought.
It's a good thought. I definitely need to retain the cell lookup functionality and have it look as much like Excel style as possible. I'm planning to add variables, probably as lowercase words, and the way the thing works now is that when the parser find command that is capitalized, like SUM(2,3,4), then it runs the function with name "sum" from the ParserDelegate instance. So one can add functionality by simply adding methods to this instance, though I haven't made that terribly transparent atm. These methods atm take one argument, which is an array of values to be processed.
Hm, I think I see what you mean by the const_missing idea. How about cells like C$5 though, or $C$5? Would they be as easy to work with? I definitely want the syntax to allow ranges like C$4:F$4 etc.
The whole design of the underlying Ruby classes leaves a lot to be desired, but I don't have the time to refactor and clean things up right now. That's one of my projects for the summer.
James Edward Gray II
Haris