public boolean equals(Object obj) {if (this == obj) return true;if (obj == null) return false;if (getClass() != obj.getClass()) return false;CompiledAutomaton other = (CompiledAutomaton) obj;if (type != other.type) return false;if (type == AUTOMATON_TYPE.SINGLE) {if (!term.equals(other.term)) return false;} else if (type == AUTOMATON_TYPE.NORMAL) {if (!runAutomaton.equals(other.runAutomaton)) return false;}return true;}

public override bool Equals(object obj){if (this == obj){return true;}if (obj == null){return false;}if (this.GetType() != obj.GetType()){return false;}CompiledAutomaton other = (CompiledAutomaton)obj;if (Type != other.Type){return false;}if (Type == AUTOMATON_TYPE.SINGLE || Type == AUTOMATON_TYPE.PREFIX){if (!Term.Equals(other.Term)){return false;}}else if (Type == AUTOMATON_TYPE.NORMAL){if (!RunAutomaton.Equals(other.RunAutomaton)){return false;}}return true;}
