returns a list of rules
        a single line may yield multiple rules

def parse(cls, rule_string):
        """
        returns a list of rules
        a single line may yield multiple rules
        """
        result = parser.parseString(rule_string)
        rules = []
        # breakout port ranges into multple rules

        kwargs = {}

        kwargs['address'] = result.ip_and_mask or None
        kwargs['group'] = result.security_group or None
        kwargs['group_name'] = result.group_name or None

        for x,y in result.ports:
            r = Rule(result.protocol, x, y, **kwargs)
            rules.append(r)
        return rules