@Cached
    @DontLabel
    public Rule sequence(final Object[] rules)
    {
        Objects.requireNonNull(rules);
        return rules.length == 1 ? toRule(rules[0])
            : new SequenceMatcher(toRules(rules));
    }
@Cached
    @DontLabel
    public Rule sequence(final Object[] rules)
    {
        Objects.requireNonNull(rules);
        return rules.length == 1 ? toRule(rules[0])
            : new SequenceMatcher(toRules(rules));
    }
@ Cached @ DontLabel public Rule sequence ( final Object [ ] rules ) { Objects . requireNonNull ( rules ) ; return rules . length == 1 ? toRule ( rules [ 0 ] ) : new SequenceMatcher ( toRules ( rules ) ) ; }
Match a given set of rules, exactly once

@param rules the rules
@return a rule
Match a given set of rules exactly once