one parser for multiple guards