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 }); } }
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)); }