Forum: Ruby on Rails ruby mathematical expression parser

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Sean B. (Guest)
on 2006-06-06 17:28
(Received via mailing list)
Hi,

Has anyone come across a Ruby mathematical expression parser, capable
of parsing out token, replacing them with values then executing the
mathematical formula? Nothing too heavy, A * (44/12) * ... etc. where
A is can be replaced with a value.

In Java there are serveral, like JEP, but I'd prefer it we could get a
Ruby one now we have moved over to Rails, otherwise we will have to
have some sort of Java calculation web service which would be quite
faffy.

Thanks

Sean
Daniel Völkerts (Guest)
on 2006-06-07 13:31
(Received via mailing list)
Sean B. schrieb:
> Hi,
>
> Has anyone come across a Ruby mathematical expression parser, capable
> of parsing out token, replacing them with values then executing the
> mathematical formula? Nothing too heavy, A * (44/12) * ... etc. where
> A is can be replaced with a value.

Mmh, I've looking similar. Whats about

formular.gsub!(/A/,"0.2")

result = eval(formular)

?

g,
Tom L. (Guest)
on 2006-06-07 16:33
(Received via mailing list)
On 6/6/06, Sean B. <removed_email_address@domain.invalid> wrote:
> Has anyone come across a Ruby mathematical expression parser, capable
> of parsing out token, replacing them with values then executing the
> mathematical formula? Nothing too heavy, A * (44/12) * ... etc. where
> A is can be replaced with a value.
>
> In Java there are serveral, like JEP, but I'd prefer it we could get a
> Ruby one now we have moved over to Rails, otherwise we will have to
> have some sort of Java calculation web service which would be quite
> faffy.

I don't know of one exactly, but what if you stripped out everything
but 0-9, ., *, /, (, and ), then passed it to a Ruby eval method? Are
there any safety concerns I'm neglecting?

> Thanks
>
> Sean

Sincerely,

Tom L.
http://AllTom.com/
http://GadgetLife.org/
Brad L. (Guest)
on 2009-09-02 04:00
Sean B. wrote:
> Hi,
>
> Has anyone come across a Ruby mathematical expression parser, capable
> of parsing out token, replacing them with values then executing the
> mathematical formula? Nothing too heavy, A * (44/12) * ... etc. where
> A is can be replaced with a value.
>
[stuff deleted]

Try this...

http://www.chipstips.com/?p=119
Markus R. (Guest)
on 2009-09-02 04:28
(Received via mailing list)
> Sean B. wrote:
>> Hi,
>>
>> Has anyone come across a Ruby mathematical expression parser, capable
>> of parsing out token, replacing them with values then executing the
>> mathematical formula? Nothing too heavy, A * (44/12) * ... etc. where
>> A is can be replaced with a value.

Here's how I do it:

http://github.com/MarkusQ/ruby-symbolic-expression...

-- MarkusQ
Marnen L. (Guest)
on 2009-09-03 03:03
Sean B. wrote:
> Hi,
>
> Has anyone come across a Ruby mathematical expression parser, capable
> of parsing out token, replacing them with values then executing the
> mathematical formula? Nothing too heavy, A * (44/12) * ... etc. where
> A is can be replaced with a value.
>
> In Java there are serveral, like JEP, but I'd prefer it we could get a
> Ruby one now we have moved over to Rails, otherwise we will have to
> have some sort of Java calculation web service which would be quite
> faffy.
>
> Thanks
>
> Sean

Ridiculous.  You won't need a calculation Web service.  Even if nothing
exists off the shelf in Ruby, it would be very easy to generate a parser
with Treetop.

Best,
--
Marnen Laibow-Koser
http://www.marnen.org
removed_email_address@domain.invalid
This topic is locked and can not be replied to.