Fixed: Added 'id' as a token and enforce that protocol can only follow 'id' as a Objective-J type
Fixed: Allow some tokens to be identifiers
Fixed: Handle '@required' before any method declarations
Fixed: Moved incorrect positioned parenthesis to handle '@required' token
Updated version