示例#1
0
        public void Test2()
        {
            var path = Path.Combine(AssemblyDirectory, @"Data\Test.types");
            var source = File.ReadAllText(path);
            var grammer = new SchematraGrammer();

            var valid = grammer.IsValid(source);
            Assert.IsTrue(valid, "Grammer is invalid");

            var root = grammer.GetRoot(source);
            grammer.DisplayTree(root, 1);
        }
示例#2
0
        /// <summary>
        /// Build Parse tree from the String
        /// </summary>
        private ParseTree BuildParseTree(String source, String filePath)
        {
            var grammer = new SchematraGrammer();
            var tree = grammer.ParseTree(source);

            if (tree.HasErrors() && tree.ParserMessages.Count > 0)
            {
                var message = tree.ParserMessages[0];
                var error = BuildErrorMessage(message.Message, filePath, message.Location.Line + 1, message.Location.Column);
                throw new Exception(error);
            }

            return tree;
        }