public boolean run(String s) {int p = 0;int l = s.length();for (int i = 0, cp = 0; i < l; i += Character.charCount(cp)) {p = step(p, cp = s.codePointAt(i));if (p == -1) return false;}return accept.get(p);}

public virtual bool Run(string s){int p = m_initial;int l = s.Length;for (int i = 0, cp = 0; i < l; i += Character.CharCount(cp)){p = Step(p, cp = Character.CodePointAt(s, i));if (p == -1) return false;}return m_accept[p];}
