On Thu, Jun 26, 2014 at 2:46 AM, Raphaël Pinson < [email protected]> wrote:
> Hello, > > > I'm not sure if you're reporting a bug (in which case it would help to > file it on the bugtracker [0]) or asking for help. I'll suppose the latter. > > Here is a lens that parses your example. I suppose there must still be an > issue (which is linked to the restrictions I had to put in the comment > regexp —no "[" allowed as first character— but your example doesn't expose > it then: > Hi, You're right - there are additional restrictions which I failed to demonstrate in the unit test, though I expressed them in the lenses (which compared from you examples had other shortcomings, ie not resetting the counter). let comments=" [A_COMMENT: ] <-- this is a comment [NOT_A_COMMENT: 5 : 6 ][A_COMMENT: ] <--- only the last [] is a comment " Since this is my first lens (just started using Augeas) I was seeking confirmation that this particular grammar is very difficult to express in Augeas, and if so hoping to prompt further development by some suggestions. I had just opened a github issue (#138, [1]) after posting this thread, with alternative solutions in addition to the original proposal of greedy operators. For the record, I believe this is a common problem parsers face, (dangling-else, [2]), something parsing expression grammars [3] do not suffer, which can be solved, among other strategies, by "maximal munch" (greedy) [4]. [1] https://github.com/hercules-team/augeas/issues/138 [2] http://en.wikipedia.org/wiki/Ambiguous_grammar#Dangling_else [3] http://stackoverflow.com/questions/1044600/difference-between-an-ll-and-recursive-descent-parser [4] http://en.wikipedia.org/wiki/Maximal_munch
_______________________________________________ augeas-devel mailing list [email protected] https://www.redhat.com/mailman/listinfo/augeas-devel
