Instead of adding a new token, you can use lookahead for those keywords (`(?=::)`) and clump `::` together with general punctuation. Just an idea, haven't thought it through.