Rename `Parser` trait to `Recognizer`
Make `Recognizer` trait abstract class