コード例 #1
0
        protected override IEnumerable <string> GetValidationErrors()
        {
            try
            {
                ResolvedTreeRoot root;
                try
                {
                    var tokenizer = new DothtmlTokenizer();
                    tokenizer.Tokenize(Code);
                    var parser   = new DothtmlParser();
                    var node     = parser.Parse(tokenizer.Tokens);
                    var resolver = new DefaultControlTreeResolver(DotvvmConfiguration.CreateDefault());
                    root = (ResolvedTreeRoot)resolver.ResolveTree(node, Guid.NewGuid() + ".dothtml");
                }
                catch (Exception ex)
                {
                    throw new CodeValidationException("Syntax error in the DOTHTML code.", ex);
                }
                Validator.Validate(root);

                return(Enumerable.Empty <string>());
            }
            catch (CodeValidationException ex)
            {
                return(new[] { ex.Message });
            }
        }
コード例 #2
0
        private IAbstractTreeRoot ResolveControlTree(string filePath, DotvvmConfiguration dotvvmConfiguration)
        {
            var fileContent = File.ReadAllText(filePath, Encoding.UTF8);

            var tokenizer = new DothtmlTokenizer();

            tokenizer.Tokenize(fileContent);

            var parser   = new DothtmlParser();
            var rootNode = parser.Parse(tokenizer.Tokens);

            var treeResolver = new DefaultControlTreeResolver(dotvvmConfiguration);

            return(treeResolver.ResolveTree(rootNode, filePath));
        }