Example #1
0
        public void Parse_TextAndEmphasis_Successfully()
        {
            var text   = "break the ice _go for broke_";
            var tokens = tokenizer.Tokenize(text);

            var textNode = new TextNode();

            textNode.Add(new WordNode(WordType.SimpleWord, "break"));
            textNode.Add(new WordNode(WordType.SpacedWord, " the"));
            textNode.Add(new WordNode(WordType.SpacedWord, " ice"));
            textNode.Add(new WordNode(WordType.Space, " "));

            var emphasisNode = new TextNode(TextType.Emphasis);

            emphasisNode.Add(new WordNode(WordType.SimpleWord, "go"));
            emphasisNode.Add(new WordNode(WordType.SpacedWord, " for"));
            emphasisNode.Add(new WordNode(WordType.SpacedWord, " broke"));

            var expected = new SentenceNode();

            expected.Add(textNode);
            expected.Add(emphasisNode);

            Parser.ParseSentence(tokens)
            .Should()
            .BeEquivalentTo(expected);
        }
Example #2
0
        public static SentenceNode ParseSentence(Deque <Token> tokens)
        {
            var sentence = new SentenceNode();

            while (tokens.Count > 0)
            {
                var      currentToken = tokens.PeekFirst();
                TextNode newText;

                switch (currentToken.Type)
                {
                case TokenType.Text:
                case TokenType.Num:
                case TokenType.Space:
                    newText = ParseText(tokens);
                    sentence.Add(newText);
                    break;

                case TokenType.Underscore:
                    newText = ParseEmphasisText(tokens);
                    sentence.Add(newText);
                    break;

                case TokenType.DoubleUnderscore:
                    newText = ParseBoldText(tokens);
                    sentence.Add(newText);
                    break;

                default:
                    throw new NotSupportedException();
                }
            }

            return(sentence);
        }
Example #3
0
        public void Parse_TextEmphasisAndBold_Successfully()
        {
            var text   = "_the wrong_ barking up __tree__";
            var tokens = tokenizer.Tokenize(text);

            var textNode = new TextNode();

            textNode.Add(new WordNode(WordType.SpacedWord, " barking"));
            textNode.Add(new WordNode(WordType.SpacedWord, " up"));
            textNode.Add(new WordNode(WordType.Space, " "));

            var emphasisNode = new TextNode(TextType.Emphasis);

            emphasisNode.Add(new WordNode(WordType.SimpleWord, "the"));
            emphasisNode.Add(new WordNode(WordType.SpacedWord, " wrong"));

            var boldNode = new TextNode(TextType.Bold);

            boldNode.Add(new WordNode(WordType.SimpleWord, "tree"));

            var expected = new SentenceNode();

            expected.Add(emphasisNode);
            expected.Add(textNode);
            expected.Add(boldNode);

            Parser.ParseSentence(tokens)
            .Should()
            .BeEquivalentTo(expected);
        }
        public override void OnBodyGUI()
        {
            base.OnBodyGUI();
            SentenceNode    node  = target as SentenceNode;
            DialogNodeGraph graph = node.graph as DialogNodeGraph;

            if (GUILayout.Button("OpenSentenceEdiot"))
            {
                Debug.Log("OpenEditor");
            }
        }
        private static string GetNodeValue(SentenceNode sentenceNode)
        {
            var stringBuilder = new StringBuilder();

            foreach (var text in sentenceNode.Texts)
            {
                stringBuilder.Append(TextBuilder.Build(text));
            }

            return(stringBuilder.ToString());
        }
Example #6
0
        public void Parse_SimpleText_Successfully()
        {
            var text     = "hard pill to swallow";
            var tokens   = tokenizer.Tokenize(text);
            var textNode = new TextNode();

            textNode.Add(new WordNode(WordType.SimpleWord, "hard"));
            textNode.Add(new WordNode(WordType.SpacedWord, " pill"));
            textNode.Add(new WordNode(WordType.SpacedWord, " to"));
            textNode.Add(new WordNode(WordType.SpacedWord, " swallow"));
            var expected = new SentenceNode();

            expected.Add(textNode);

            Parser.ParseSentence(tokens)
            .Should()
            .BeEquivalentTo(expected);
        }
Example #7
0
        public void Parse_SingleTextStartingWithSpace_Successfully()
        {
            var text     = " an arm and a leg";
            var tokens   = tokenizer.Tokenize(text);
            var textNode = new TextNode();

            textNode.Add(new WordNode(WordType.SpacedWord, " an"));
            textNode.Add(new WordNode(WordType.SpacedWord, " arm"));
            textNode.Add(new WordNode(WordType.SpacedWord, " and"));
            textNode.Add(new WordNode(WordType.SpacedWord, " a"));
            textNode.Add(new WordNode(WordType.SpacedWord, " leg"));
            var expected = new SentenceNode();

            expected.Add(textNode);

            Parser.ParseSentence(tokens)
            .Should()
            .BeEquivalentTo(expected);
        }
Example #8
0
        public void Parse_SingleTextStartingAndEndingWithSpace_Successfully()
        {
            var text     = " everything but the kitchen sink ";
            var tokens   = tokenizer.Tokenize(text);
            var textNode = new TextNode();

            textNode.Add(new WordNode(WordType.SpacedWord, " everything"));
            textNode.Add(new WordNode(WordType.SpacedWord, " but"));
            textNode.Add(new WordNode(WordType.SpacedWord, " the"));
            textNode.Add(new WordNode(WordType.SpacedWord, " kitchen"));
            textNode.Add(new WordNode(WordType.SpacedWord, " sink"));
            textNode.Add(new WordNode(WordType.Space, " "));
            var expected = new SentenceNode();

            expected.Add(textNode);

            Parser.ParseSentence(tokens)
            .Should()
            .BeEquivalentTo(expected);
        }
Example #9
0
        public void Parse_SingleTextEndingWithSpace_Successfully()
        {
            var text     = "barking up the wrong tree ";
            var tokens   = tokenizer.Tokenize(text);
            var textNode = new TextNode();

            textNode.Add(new WordNode(WordType.SimpleWord, "barking"));
            textNode.Add(new WordNode(WordType.SpacedWord, " up"));
            textNode.Add(new WordNode(WordType.SpacedWord, " the"));
            textNode.Add(new WordNode(WordType.SpacedWord, " wrong"));
            textNode.Add(new WordNode(WordType.SpacedWord, " tree"));
            textNode.Add(new WordNode(WordType.Space, " "));
            var expected = new SentenceNode();

            expected.Add(textNode);

            Parser.ParseSentence(tokens)
            .Should()
            .BeEquivalentTo(expected);
        }
 public static string Build(SentenceNode sentenceNode)
 {
     return($"{GetNodeValue(sentenceNode)}");
 }
 public string Generate(SentenceNode abstractSyntaxTree)
 {
     return(SentenceBuilder.Build(abstractSyntaxTree));
 }