コード例 #1
0
ファイル: TextParser.cs プロジェクト: yduit/nodexr
        public static Node CreateTextWithQuantifier(IEnumerable <string> chars, Maybe <QuantifierNode> maybeQuant)
        {
            if (!maybeQuant.HasValue)
            {
                return(TextNode.CreateWithContents(string.Concat(chars)));
            }

            var quant = maybeQuant.Value;

            if (chars.Count() == 1)
            {
                var textNode = TextNode.CreateWithContents(chars.First());
                quant.InputContents.ConnectedNode = textNode;
                return(quant);
            }

            var mainText = TextNode.CreateWithContents(string.Concat(chars.SkipLast(1)));
            var lastChar = TextNode.CreateWithContents(chars.Last());

            quant.PreviousNode = mainText;
            quant.InputContents.ConnectedNode = lastChar;

            return(quant);
        }