On 20/06/12 21:02, 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. > > [1] > http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html
For input which is guaranteed to be small, a recursive descent parser is a reasonable choice -- maybe not the fastest method, but easy to understand and fun to write. There's lots of useful reference material available with a web search, e.g.: http://teaching.idallen.com/cst8152/98w/recursive_decent_parsing.html -- Tim Starling _______________________________________________ Wikitech-l mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/wikitech-l
