Patent ID: 8504510

Claim:
A method for processing data, comprising: encoding a finite automaton, comprising states and transitions between the states that express a plurality of predefined patterns and labels of states defined by the transitions of the automaton, by grouping the states of the automaton into sets according to a common property comprising a suffix that is common to the labels of all the states in each set, and assigning codes to the states according to the grouping so that the codes of the states in each set have a respective common prefix, wherein the common suffix of the labels of all the states within each set is a label of another state without a last symbol of the label; storing the codes in an electronic memory, along with rules that are associated with the patterns; traversing the automaton in order to identify one or more of the patterns in an input sequence of data elements by iteratively reading out the codes from the memory responsively to the data elements and to the codes that have been previously read out; and upon identifying a given pattern in the input sequence, performing an associated action.