1 // ================================================================================================
3 // テキスト全体のような文字列の解析処理用パーサーのインタフェースソース</summary>
5 // <copyright file="ITextParser.cs" company="honeplusのメモ帳">
6 // Copyright (C) 2012 Honeplus. All rights reserved.</copyright>
9 // ================================================================================================
11 namespace Honememo.Parsers
14 using System.Text.RegularExpressions;
17 /// <see cref="TryParseToEndCondition"/>の終了条件を判定するためのデリゲート。
19 /// <param name="s">解析対象の文字列。</param>
20 /// <param name="index">処理インデックス。</param>
21 /// <returns>終了条件を満たす場合<c>true</c>。</returns>
22 public delegate bool IsEndCondition(string s, int index);
25 /// テキスト全体のような文字列の解析処理用パーサーのインタフェースです。
27 /// <remarks>特定の要素だけを解析するのではなく、XMLテキスト全体のような文章を解析するパーサー用の仕組みを定義。</remarks>
28 public interface ITextParser : IParser
33 /// 渡された文字列に対して、指定された文字列に遭遇するまで解析を行う。
35 /// <param name="s">解析対象の文字列。</param>
36 /// <param name="result">解析結果。</param>
37 /// <param name="delimiters">解析を終了する文字列(複数指定可)。</param>
38 /// <returns>解析に成功した場合<c>true</c>。</returns>
39 /// <remarks>指定された文字列が出現しない場合、最終位置まで解析を行う。</remarks>
40 bool TryParseToDelimiter(string s, out IElement result, params string[] delimiters);
43 /// 渡された文字列に対して、指定された終了条件を満たすまで解析を行う。
45 /// <param name="s">解析対象の文字列。</param>
46 /// <param name="condition">解析を終了するかの判定を行うデリゲート。</param>
47 /// <param name="result">解析結果。</param>
48 /// <returns>解析に成功した場合<c>true</c>。</returns>
49 /// <remarks>指定された終了条件を満たさない場合、最終位置まで解析を行う。</remarks>
50 bool TryParseToEndCondition(string s, IsEndCondition condition, out IElement result);