5. The method of claim 1 , wherein generating the third finite-state automaton comprises: defining at least one initial state based on the topology; defining at least one final state based on the topology; and defining a plurality of edges representing active non-terminal symbols based on the topology, each edge labeled with one of the active non-terminal symbols and extending from at least one of an initial state and a final state of the third finite-state automaton.
7. The method of claim 5 , wherein expanding the third finite-state automaton based on at least one of the at least one generated second finite-state automaton comprises replacing, for each of the plurality of edges of the third finite-state automaton, that edge with one of the at least one second finite-state automaton based on the non-terminal symbol with which that edge is labeled.