/// <summary> /// ある文字クラスに属さない文字のクラス(集合の補集合)を生成します。 /// </summary> /// <param name="clazz">元になる文字クラス</param> /// <returns>新しい文字クラス</returns> public static CharClass Not(CharClass clazz) { return(new ComplementCharClass(clazz)); }
/// <summary> /// この文字クラスと別の文字クラスを統合した新しい文字クラスを生成します。 /// </summary> /// <param name="another">別の文字クラス</param> /// <returns>新しい文字クラス</returns> public virtual CharClass Union(CharClass another) { return(new UnionCharClass(this, another)); }
/// <summary> /// 文字クラスに属する文字からなる文字列にマッチするパーサーを返します。 /// </summary> /// <param name="clazz">文字クラス</param> /// <param name="min">最小の文字数</param> /// <returns>新しいパーサー</returns> protected static Parser CharsWhileIn(CharClass clazz, int min = 1) { return(new CharsWhileInParser(clazz, min)); }
/// <summary> /// 文字集合に属する文字からなる文字列にマッチするパーサーを返します。 /// </summary> /// <param name="chars">文字集合</param> /// <param name="min">最小の文字数</param> /// <returns>新しいパーサー</returns> protected static Parser CharsWhileIn(IEnumerable <char> chars, int min = 1) { return(new CharsWhileInParser(CharClass.AnyOf(chars), min)); }
/// <summary> /// 指定された文字の集合に属する文字にマッチするパーサーを返します。 /// </summary> /// <param name="chars">文字集合</param> /// <returns>新しいパーサー</returns> protected static CharParser CharIn(IEnumerable <char> chars) { return(new CharClassParser(CharClass.AnyOf(chars))); }
/// <summary> /// 指定された文字クラスに属する文字にマッチするパーサーを返します。 /// </summary> /// <param name="clazz">文字クラス</param> /// <returns>新しいパーサー</returns> protected static CharParser CharIn(CharClass clazz) { return(new CharClassParser(clazz)); }
/// <summary> /// 指定された範囲に該当する文字にマッチするパーサーを返します。 /// </summary> /// <param name="start">範囲の開始</param> /// <param name="end">範囲の終了</param> /// <returns>新しいパーサー</returns> protected static CharParser CharBetween(char start, char end) { return(new CharClassParser(CharClass.Between(start, end))); }