Well, i am talking out of my ass mostly but if you've already studied an incomplete solution you should be able to (mostly) reuse their approaches to add the missing features. Unless of course you are of the opinion those approaches weren't optimal but then you should be knowing superior solutions anyways. Parsing code doesn't get all that different after all. Parse text, check for correctness, make events happen, maybe remember some kind of state, repeat.