In the last few days I've thrown together a prototype for Yet Another 
DSL-frontend for Marpa. The design problems are solved quite differently 
from the SLIF, as neither performance nor the quality of error reports were 
deemed important for this prototype. The DSL is therefore happy to 
autogenerate rule names for syntactic sugar like inline quantifiers or 
nested rules. For me, the most important feature is that actions are 
specified inside the grammar (and then "eval"'d).

Ultimately, the DSL intends to be (a) useful for prototyping of small 
(programming-)languages without too much boilerplate code and (b) a simpler 
interface for people not too familiar with parsing. It does not intend to 
be an unrestricted interface to Marpa.

The project can be found on https://github.com/latk/Marpa-Inline, and 
contains two examples in the "t/examples/" directory. A few topics are not 
addressed by this prototype, most importantly:

   - Error reporting
   - Operator Associativity
   - Events

Because of that (and the overengineered, buggy internals), I will likely 
rewrite it. I would be glad to include any feedback the list could offer in 
the rewrite. Especially, I'm not sure about:

   - … disallowing non-ranked alternatives. This should feel more 
   comfortable for people familiar with regexes or procedural parsing. I am 
   aware that this throws away one of Marpa's major strengths, but I see no 
   use cases.
   - … the name. Currently the classes reside in the 
   "MarpaX::DSL::InlineActions" namespace. The "MarpaX" namespace is loosely 
   organized, and e.g. has the `::Languages::Foo` section for tools using 
   Marpa operating on language Foo. What is the correct section for 
   alternative frontends? Would "::DSL::Foo" or "::Frontend::Foo" be a good 
   choice? Currently existing modules fitting this categorization would be 
   "MarpaX::Repa", "MarpaX::Simple::Rules", "MarpaX::Lex::Easy", none of which 
   are well-named.

-- 
You received this message because you are subscribed to the Google Groups 
"marpa parser" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to marpa-parser+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to