do not throw UnsupportedOperationException in EarleyRecognizer
extract variables for debugging
fix computation of 'or' of presence conditions in Earley recognizer
override equals() and hashCode() for formulae and presence conditions