From: "Ondřej Bílka" Date: 2012-03-16T07:26:36+09:00 Subject: amethyst - a pattern matching for ruby Amethyst is generalization of ometa PEG parser and tool for generic pattern matching. Amethyst tries to be better alternative to regular expressions. Example follows: x=y=nil (| int:x "+" int:y |).match("2+2") puts x+y # -> 4 pattern = (| 'a'| 'b' |) puts puts pattern.match("b") #-> b puts puts pattern.match("abc") #-> FAIL puts Amethyst.find("abc",pattern) #->"a" For describing more complex grammars see how parser of amethyst is done. http://kam.mff.cuni.cz/~ondra/amethyst/parser.ame.html And how is syntax highligthing of above done. http://kam.mff.cuni.cz/~ondra/amethyst/parser_highlight.ame.html We allow pattern matching of arbitrary ruby objects. A example of semigeneric traverser is following http://kam.mff.cuni.cz/~ondra/amethyst/traverser.ame.html A source can be found at https://github.com/neleai/mthyst/ comments are welcome. -- Fatal error right in front of screen