[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Can LPeg do basic arithmetic?
- From: Sean Conner <sean@...>
- Date: Tue, 5 Jul 2016 17:34:15 -0400
It was thus said that the Great Soni L. once stated:
>
>
> On 05/07/16 05:18 PM, Sean Conner wrote:
> >It was thus said that the Great Soni L. once stated:
> >>As you may or may not know by now, regex can do basic arithmetic, with
> >>unary integers.[1] Can LPeg do better, say with binary integers, or
> >>binary floats, or even full-blown decimal?
> >
> > Yup. You can do the regex approach with a substitution capture
> >(lpeg.Cs()) or even a full blown calculator (there's an example on the LPeg
> >web page).
>
> Too bad it's not pure LPeg, instead deferring to a Lua function for it.
What? Is not lpeg.Cf() LPeg, just because it accepts a Lua function as a
parameter? So,
lpeg.R"09" / { ['o'] = 0 , ['1'] = 1 , ['2'] = 2 ... }
is fine, but not?
lpeg.R"09" / tonumber
If LPeg allows it, it's LPeg.
But okay, fine! If you restrict the domain to single digits, then:
lpeg.P"0+0" * lpeg.Cc(0)
+ lpeg.P"0+1" * lpeg.Cc(1)
+ lpeg.P"0+2" * lpeg.Cc(2)
+ lpeg.P"0+3" * lpeg.Cc(3)
... and so on. Go crazy with this.
-spc (Stop moving the goal posts!)