expression.automaton(algo="auto")¶Generate an automaton from an expression.
The algo can be:
"auto": currently equivalent to "expansion", eventually should mix "standard" for basic expressions (faster) and "expansion" otherwise (more general)."derivation": use derivation-based expression.derived_term, trim and stripped."derived_term": same as "expansion""expansion": use expansion-based expression.derived_term, trim and stripped."standard": use expression.standard."thompson": use expression.thompson."zpc": use expression.zpc, trim."zpc_compact": use expression.zpc, "compact" version, trim.See also:
import vcsn
e = vcsn.Q.expression('\e+<2>a+<3>b')
e
e.automaton('derived_term')
e.automaton('standard')
e.automaton('thompson')
e.automaton('zpc')
e.automaton('zpc_compact')
The automata are guaranteed to be trim, even if the algorithm used by automaton generated useless states.
e = vcsn.Q.expression('abc&abd')
e.derived_term()
e.automaton('derived_term')
e = vcsn.Q.expression('a?')
e.zpc()
e.automaton('zpc')