OSDN Git Service

Wikipedia翻訳支援ツール Ver1.10時点のソース
[wptscs/wpts.git] / HmLib / Parsers / ITextParser.cs
1 // ================================================================================================
2 // <summary>
3 //      テキスト全体のような文字列の解析処理用パーサーのインタフェースソース</summary>
4 //
5 // <copyright file="ITextParser.cs" company="honeplusのメモ帳">
6 //      Copyright (C) 2012 Honeplus. All rights reserved.</copyright>
7 // <author>
8 //      Honeplus</author>
9 // ================================================================================================
10
11 namespace Honememo.Parsers
12 {
13     using System;
14     using System.Text.RegularExpressions;
15
16     /// <summary>
17     /// <see cref="TryParseToEndCondition"/>の終了条件を判定するためのデリゲート。
18     /// </summary>
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);
23
24     /// <summary>
25     /// テキスト全体のような文字列の解析処理用パーサーのインタフェースです。
26     /// </summary>
27     /// <remarks>特定の要素だけを解析するのではなく、XMLテキスト全体のような文章を解析するパーサー用の仕組みを定義。</remarks>
28     public interface ITextParser : IParser
29     {
30         #region メソッド
31
32         /// <summary>
33         /// 渡された文字列に対して、指定された文字列に遭遇するまで解析を行う。
34         /// </summary>
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);
41
42         /// <summary>
43         /// 渡された文字列に対して、指定された終了条件を満たすまで解析を行う。
44         /// </summary>
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);
51
52         #endregion
53     }
54 }