Exemple #1
0
        public void TestParameterParsing()
        {
            string input = @"#define test(a, b, c) abc";

            TreeNode.NodeBase node;

            using(var reader = new LocatedTextReaderWrapper(input)) {
                var parser = new Parser(reader);
                node = parser.ReadNode();
            }

            Assert.IsInstanceOf(typeof(TreeNode.DefineNode), node);

            TreeNode.DefineNode define = node as TreeNode.DefineNode;

            Assert.IsTrue(define.FunctionParameters.SequenceEqual(new string[] { "a", "b", "c" }));
        }
Exemple #2
0
        /// <summary>
        /// Reads the sub-nodes required by this node.
        /// </summary>
        /// <param name="parser">The parser to read sub-nodes from.</param>
        /// <exception cref="MissingDataException">Closing directive node was not available.</exception>
        private void ReadSubNodes(Parser parser)
        {
            NodeBase curNode = this;

            while(!this.EndsWith(curNode)) {
                curNode = parser.ReadNode();

                if(curNode == null) {
                    throw new MissingDataException("Closing #" + this.DirectiveName + " directive", this.Location);
                }

                this.ChildrenNodes.Add(curNode);
            }
        }