sawine@0: pattern = "pattern" id "(" pattern_term ")" sawine@0: pattern_term = int_pt int_op int sawine@0: | (char_pt | string_pt) string_op string sawine@0: | string_array_pt string_array_op string_array sawine@0: | string_array string_array_op string_array_pt sawine@0: | string string_string_array_op sawine@0: (string_array_pt | char_array_pt ) sawine@0: | pattern_term ("or" | "and") pattern_term sawine@0: | "not" pattern_term sawine@0: | "(" pattern_term ")"