On 06/20/2012 01:02 PM, Niklas Laxström wrote:
> No, this is not about a wikitext parser. Rather something much simpler.
> 
> Have a look at [1] and you will see rules like:
> n in 0..1
> n is 2
> n mod 10 in 3..4,9 and n mod 100 not in 10..19,70..79,90..99
> 
> Long ago when I wanted to compare the plural rules of MediaWiki and
> CLDR I wrote a parser for the CLDR rule format. Unfortunately my
> implementation uses regular expression and eval, which makes it
> unsuitable for production. Now, writing parsers is not my area of
> expertise, so can you please point me how to do this properly with
> PHP. Bonus points if it is also easily adaptable to JavaScript.

I like the ease of disambiguation in Parsing Expression Grammars (PEG).
Most PEG parser generators use memoization to achieve a runtime linear
in the input. I have no experience with PEG parser generators for PHP,
but am using PEG.js for the Parsoid tokenizer with good results.

If you try a PHP PEG generator, then please let us know about your results!

Gabriel


_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to