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