[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

• Subject: Re: OT(slightly): parser generator for expression with custom operators
• From: Lorenzo Donati <lorenzodonatibz@...>
• Date: Wed, 29 Jun 2011 17:48:52 +0200

```Hi Steve!

On 29/06/2011 17.24, steve donovan wrote:
```
```On Wed, Jun 29, 2011 at 5:13 PM, Lorenzo Donati
<lorenzodonatibz@interfree.it>  wrote:
```
```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 Italy) ;-)
```
```
```
steve d.

```
```
cheers,
-- Lorenzo

```

• Follow-Ups:
• References: