If I get more serious about this, I may need to work on the meta-problem -- I can write stuff to handle specific card powers, but new ones will no doubt be created, and any changes in word usage by Wizards would require significant changes in the code. What I'd really like to do is create something that parses the power, determines if there's a cost and a side effect, and tries to write the attribute-grabbing code for me.
And don't get me started on powers. I could understand it if they were using it for compression purposes -- i.e., that 'flying' actually meant that the card wouldn't include the rules text for 'flying'. The cards are printed with the text that could be removed. None of the powers have been so significant that they could not have just left the rules off there, and yet the rules are there. It's as if Wizards got bored and decided they needed lots more words on each card.
Rant over. Once I've got all the current powers parsing properly, I'll push prodigiously to produce powerful potential power parsing.
Also, I'll add something to rate cards on an arbitrary complexity scale.