[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: OT(slightly): parser generator for expression with custom operators
- From: Lorenzo Donati <lorenzodonatibz@...>
- Date: Wed, 29 Jun 2011 17:48:52 +0200
On 29/06/2011 17.24, steve donovan wrote:
On Wed, Jun 29, 2011 at 5:13 PM, Lorenzo Donati
As an end user of a programming language like Lua, in which I often write
simple DSLs, I'd like to be able to define such a parser by only defining
the operators and their characteristics, not to write down a grammar.
It does sound like an interesting problem, but why not use Lua itself?
That's a non-rhetorical question, that is,
-what features do you need that could not be done in Lua?
Arbitrary custom operators.
-are they essential to the DSL?
Well, not that often, I admit. As I said, the post had also a
"philosophical" twist :-)
Still, sometimes doing without custom operators is a pain. Especially
when mapping concepts from math.
For example, consider math vectors:
W = V1 :x: V2 + V3
W = V1:cross_product(V2) + V3 -- less readable
a = (V1 [.] V2) / |V1 [.] V2|
a = V1:dot_product(V2) / V1:dot_product(V2):abs() -- less readable
(I won't start gong on about lexical preprocessing since I probably won't stop)
I wonder if LuaMacro could be of any help here - I only skimmed over the
readme, but I did not dare "put more meat on the grill" (as we say in