Thanks I've bookmarked your code, I'll have a look at this when I have time. Thanks again for your support.
El jueves, 16 de marzo de 2017, 9:01:13 (UTC+1), rns escribió: > > > > On Wed, Mar 15, 2017 at 9:42 PM, Daniel Blanch <[email protected] > <javascript:>> wrote: > >> >> Much clearer now, thanks a lot. >> >> El martes, 14 de marzo de 2017, 16:29:39 (UTC+1), Jeffrey Kegler escribió: >>> >>> "Bless" versus actions is just a TIMTOWTDI feature. I found bless less >>> useful, to the extent I considered removing it in the forthcoming R3 >>> Marpa. But it has its fans. >>> >>> If how bless works doesn't leap out at you, stick with actions -- >>> they're all I use. You can learn how to use bless later -- or never. >>> >>> The actions can generate an AST, or do all of the semantics >>> immediately. In fact you can generate an AST just using a default action: >>> >>> :default ::= action => [name, values] >>> >> >> This, with this: >> >> $Data::Dumper::Deepcopy = 1; # prints all node names >> >> Helped me to understand better what marpa does. >> >> >>> >>> This separates the parsing from the semantics, so it's easier to >>> visualize what's going on. Particularly for your first Marpa project, it's >>> often best to start with an AST. >>> >>> The AST method is also quite powerful and, in terms of speed, >>> reasonable, so that you may wind up sticking with it as your final way of >>> doing things. >>> >> >> what if i want to implement a visitor pattern, isn't it what bless method >> is for? >> > IMHO, yes, or the interpreter pattern, as is semantics_package > <https://metacpan.org/pod/distribution/Marpa-R2/pod/Scanless/R.pod#semantics_package> > option > of the recognizer > > BTW, I once wrote a helper module to work with Marpa::R2 ASTs > <https://github.com/rns/MarpaX-AST> and had my share of infatuation with > visitor > <https://github.com/rns/MarpaX-AST/search?utf8=%E2%9C%93&q=visitor> and > interpreter > <https://github.com/rns/MarpaX-AST/search?utf8=%E2%9C%93&q=interpreter> > patterns that, unfortunately, I had not time and/or focus to release or > maintain. Perhaps you’ll find it interesting and/or useful. > > >> >>> On Tue, Mar 14, 2017 at 8:08 AM, Daniel Blanch <[email protected] >>> > wrote: >>> >>>> Hi, I keep trying to understand the semantics of marpa. Forgive me if >>>> my questions are too basic. >>>> >>>> I've read the documentation, in particular this >>>> http://search.cpan.org/~jkegl/Marpa-R2-3.000000/pod/Semantics.pod. >>>> >>>> I've noticed that instead of using actions, it uses bless. I'm not sure >>>> if I have understand the reason well enough. What I understand is the >>>> following. >>>> >>>> 1) Marpa's bless, creates objects initializing it with the parse result >>>> of the rule instance >>>> 2) If the result of other subrules is blessed too, the parent rule will >>>> get a reference to the subrules blessed objects. >>>> 3) Doing so provides a somehow 'Semantic tree' >>>> 4) After parsing I'll get a reference of the root node i can use to >>>> traverse the whole tree and get the result this way. >>>> >>>> I'm I right? >>>> >>>> So, what's the difference with actions? Is it that with actions the >>>> result is computed on the fly? do actions use an AST then or do the parse >>>> and the result in just one step. >>>> >>>> What's the recomended way of using marpa to translate a language, bless >>>> adverb or action adverb? >>>> >>>> Than you very much in advance. >>>> >>>> >>>> >>>> >>>> >>>> On Monday, March 13, 2017 at 2:59:35 PM UTC+1, Daniel Blanch wrote: >>>>> >>>>> Hi Marpers, >>>>> >>>>> I've been using Marpa for a while, it seems promising, but I find it >>>>> difficult to understand how default actions and custom actions work >>>>> together when trying to get a result. Where can I find a tutorial or >>>>> documentation to understand it? How did you learn Marpa? Documentation is >>>>> a >>>>> bit confusing. >>>>> >>>>> Thank you very much in advance. >>>>> >>>>> Regards. >>>>> >>>>> Daniel. >>>>> >>>> -- >>>> 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 [email protected]. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >> 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 [email protected] <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > -- 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 [email protected]. For more options, visit https://groups.google.com/d/optout.
