Hmmm thinking about it, we can get away with '&' with minimal keyword conflict because there's such an easy (and natural-to-presume) fix - namely, rather than "x&attrkeyword" you use "x & attrkeyword". Now there's no problem, since the lexer only recognizes "&attrkeyword" as a unit, with no whitespace allowed.
Given that, here's my updated proposal, with 'c' standing for values of type count: s1 + s2 Set union s1 - s2 Set difference s1 | s2 Set union s1 & s2 Set intersection s1 ^ s2 Set symmetric difference s + e The set resulting from adding the element 'e' to the set 's' s - e The set resulting from removing the element 'e' from the set 's', if present s1 {+=, -=, |=, &=, ^=} s2 Perform the corresponding set operation between s1 and s2 and put the result in s1. s {+=, -=} e Add or remove the element e from the set s c1 | c2 c1 & c2 Bitwise or/and/xor of two count values c1 ^ c2 c1 {|=, &=, ^=} c2 Perform the corresponding bitwise operation between c1 and c2 and put the result in c1. v += e Append the element 'e' to the vector 'v' s += v Add the elements of 'v' to 's' s -= v Remove the elements of 'v' from 's', if present How does that sound? Vern _______________________________________________ bro-dev mailing list bro-dev@bro.org http://mailman.icsi.berkeley.edu/mailman/listinfo/bro-dev