Hi,

For Moose related questions, there exists a dedicated mailing list:
http://www.moosetechnology.org/about/contact

Related to your problem, "not" does consume the input. You want to use
"negate", which is implemented as:
PPParser>>negate
"Answer a new parser consumes any input token but the receiver."
^ self not , #any asParser ==> #second

Keep the questions flowing :)

Cheers,
Doru


On Sat, Feb 22, 2014 at 5:25 PM, PBK Research <pe...@pbkresearch.co.uk>wrote:

>  Hello All
>
> Not sure whether this is the right forum for this question - please excuse
> and point me in the right direction if I'm wrong.
>
> I have been playing with Moose 4.8, downloaded last October, mainly
> because I am interested in PetitParser. I have been constructing fairly
> trivial parsers to get to understand the system. I took as an example a
> typical HTML tag, i.e. any text enclosed in angle brackets <>. My first
> attempt was:
>
> ($< asParser, $> asParser not star, $> asParser).
>
> This seemed to send the parser into a loop, except in the case where there
> was no text between the brackets. Floundering around, I tried:
>
>  ($< asParser, (PPPredicateObjectParser anyExceptAnyOf: '>') star, $>
> asParser).
>
> This worked as expected, but I was not happy with the apparent clumsiness
> of the middle term. So I tried:
>
>  ($< asParser, (PPPredicateObjectParser char: $>) not star, $> asParser).
>
> This again sent the parser into a loop.
>
> It looks as though I have some fundamental misunderstanding of the
> function of 'not' in a parser, or else it is not working as specified.
> Could someone kindly explain to an inquisitive idiot what is going wrong?
>
> Many thanks in advance
>
> Peter Kenny
>



-- 
www.tudorgirba.com

"Every thing has its own flow"

Reply via email to