Fix 400

This pull request implements the precedence DFA feature described by #400.