public NodeTreeParserConfig With(IDelimiter delimiter)
        {
            this.delimiters.Add(delimiter);
            this.locators.Add(new LinkedTextLocator(delimiter));

            return this;
        }
Exemple #2
0
        IDelimiter delimi; // Delimiter用

        #endregion Fields

        #region Constructors

        public Form1()
        {
            InitializeComponent();

            // 起動時は NullObject 設定
            delimi = new NullObjDelimter();
        }
Exemple #3
0
 public AstNode GetAstNode(IDelimiter delimiter, int position)
 {
     if (delimiter.GetDelimiterType() == DelimiterType.Single)
     {
         return(new AstNode(astNodeTypes[delimiter.GetName()], delimiter.GetName()));
     }
     return(null);
 }
        /// <summary>
        ///     Reads the next word without advancing the stream
        /// </summary>
        /// <returns>The next word from the stream.</returns>
        /// <param name="delimiter">
        ///     The delimiter that defines word boundaries.
        ///     <see cref="Read(IDelimiter)"/>
        /// </param>
        public string Peek(IDelimiter delimiter)
        {
            long   oldPosition = BaseStream.Position;
            string ret         = Read(delimiter);

            Seek(oldPosition);
            return(ret);
        }
Exemple #5
0
 public Func <int, bool> GetStopFunction(IDelimiter delimiter, string markdown, int position)
 {
     return((pos) =>
     {
         if (pos < markdown.Length)
         {
             return (delimiter as ISingleDelimiter).IsEndOfVisibleArea(markdown[pos]);
         }
         return (delimiter as ISingleDelimiter).IsEndOfVisibleArea((char)0);
     });
 }
 private AstNode AstDoubleDelimiter(IDelimiter delimiter, int position)
 {
     if (delimiter.GetDelimiterType() == DelimiterType.Double)
     {
         if (correctDoubleDelimitersPositions.ContainsKey(position))
         {
             return(new AstNode(astNodeTypes[delimiter.GetName()], delimiter.GetName()));
         }
         return(new AstNode(AstNodeType.Text, delimiter.GetName()));
     }
     return(null);
 }
 public void SetDelimiter()
 {
     if (_sequence.DelimiterString == null)
     {
         _delimiter = new SimpleDelimiter("");
     }
     else
     {
         string bracketCheckRegex = @"\[.+\]";
         var    matches           = Regex.Matches(_sequence.DelimiterString, bracketCheckRegex);
         _delimiter = (matches.Count == 0 ? new OptionalDelimiter(@"\/\/(.*?)\n") : new OptionalDelimiter(@"\[(.*?)\]|\/\/(.)\n"));
     }
 }
Exemple #8
0
        IDelimiter delimi;      // Delimiter用

        private void Form1_Load(object sender, EventArgs e)
        {
            string commandBaseStr = "Command1";
            string commandStr     = "";

            // delimi を NullObjDelmiter にしてあるので
            // if(delimi!=null) の判断しない。
            // AddDelimier を callしても 例外にならない。
            // 処理も何もしない、引数で受けたものをそのまま返す。
            commandStr    = delimi.AddDelimiter(commandBaseStr);
            textBox1.Text = commandStr;
            commandStr    = "";

            // delimiter を設定
            delimi        = new Delimiter(";");                  // delimiterを';'とした
            commandStr    = delimi.AddDelimiter(commandBaseStr); // 引数に Delimiter追加
            textBox2.Text = commandStr;
        }
Exemple #9
0
        private void Form1_Load(object sender, EventArgs e)
        {
            string commandBaseStr = "Command1";
            string commandStr = "";

            // delimi を NullObjDelmiter にしてあるので
            // if(delimi!=null) の判断しない。
            // AddDelimier を callしても 例外にならない。
            // 処理も何もしない、引数で受けたものをそのまま返す。
            commandStr = delimi.AddDelimiter(commandBaseStr);
            textBox1.Text = commandStr;
            commandStr = "";

            // delimiter を設定
            delimi = new Delimiter(";");                        // delimiterを';'とした
            commandStr = delimi.AddDelimiter(commandBaseStr);   // 引数に Delimiter追加
            textBox2.Text = commandStr;
        }
        /// <summary>
        ///     Reads the next word using the given IDelimiters. If a delimiter
        ///     can be matched to the beginning of the string, it will be
        ///     preferred. Otherwise, the text up to the first delimiter will be
        ///     returned.
        /// </summary>
        /// <returns>The next word from the stream.</returns>
        /// <param name="delimiter">
        ///     The delimiter that defines word boundaries. In practice, DelimiterCollection is
        ///     likely the best type to use here.
        /// </param>
        public string Read(IDelimiter delimiter)
        {
            // Read until we have a match.
            string word = Read(s =>
            {
                var m = delimiter.Match(s);
                if (!m.Success)
                {
                    return(-1);
                }
                return(m.Index);
            });

            // Read until we find a delimiter match.
            if (String.IsNullOrEmpty(word))
            {
                word = Read(s =>
                {
                    int matchLength = delimiter.Match(s).Length;
                    return(matchLength == 0 || matchLength == s.Length ? -1 : matchLength);
                });
            }
            return(word);
        }
 public CommonActionResult(IRequestRepository requestRepo, IEnumerable<IViewModel> viewModels, IDelimiter pattern)
 {
     this.ViewModels = new List<IViewModel>(viewModels);
     this.Delimiter = pattern;
     this.RequestRepo = requestRepo;
 }
 public static char GetValue(this IDelimiter delimiter)
 {
     return(delimiter?.Value ?? ',');
 }
 public AstNode GetAstNode(IDelimiter delimiter, int position)
 {
     return(AstDoubleDelimiter(delimiter, position));
 }
 public Func <int, bool> GetStopFunction(IDelimiter delimiter, string mardown, int position)
 {
     return((pos) => pos == correctDoubleDelimitersPositions[position]);
 }
 public InjectableStringUserType(IDelimiter delimiter)
 {
     this.delimiter = delimiter;
 }
 public static string ToViewModelString(this IList<IViewModel> viewModelList, IDelimiter pattern)
 {
     return ResultBuilder.BuildInstanceList<IViewModel>(viewModelList, pattern);
 }
 public CommonActionResult(IRequestRepository requestRepo, IViewModel viewModel, IDelimiter pattern)
 {
     this.ViewModels = new List<IViewModel> { viewModel };
     this.Delimiter = pattern;
     this.RequestRepo = requestRepo;
 }
Exemple #18
0
 public virtual string ToViewModelString(IDelimiter pattern)
 {
     return ResultBuilder.BuildInstance(this, pattern);
 }
 public InjectableStringUserType(IDelimiter delimiter)
 {
     this.delimiter = delimiter;
 }
Exemple #20
0
 public string ToViewModelString(IDelimiter pattern)
 {
     return this.Value.ToString();
 }
        public LinkedTextLocator(IDelimiter delimiter)
            : this((ITextLocator)delimiter)
        {
            if (delimiter == null)
                throw new ArgumentNullException("delimiter");

            this.delimiter = delimiter;
            this.type = LocatorType.Delimiter;
        }
 public ChildCommonActionResult(IRequestRepository requestRepo, IViewModel model, IDelimiter pattern)
     : base(requestRepo, model, pattern)
 {
 }
Exemple #23
0
 public string ToViewModelString(IDelimiter pattern)
 {
     return "TestViewModel";
 }