> Based on this definition, I'm not sure if my module is a DFA or an NFA > state machine. In each state, you can define rules for transitioning to > other states. When you call the check() method, it checks each of these > in the order you defined them and transitions to the first state for > which the rule evaluates to a true value. This means that multiple > rules could evaluate to a true value, but since it short-circuits and > there is no backtracking, technically only one transition can occur. > > I guess that makes it a DFA, no?
IMO yes. However its also similar to the type of production system described by Church. (hefty IIRC on that :-) So long as there can only be one legal transition for a given configuration of the machine then its a DFA. Yves