Refactored constraint syntax to use less lookahead