src/EasyFrameWork/RuleEngine/Scripting/Ast/AbstractSyntaxTree.cs

(完整代码) 1009B

/* http://www.zkea.net/ 
 * Copyright (c) ZKEASOFT. All rights reserved. 
 * http://www.zkea.net/licenses */

using System.Collections.Generic;

namespace Easy.RuleEngine.Scripting.Ast
{
    public class AbstractSyntaxTree
    {
        public AstNode Root { get; set; }

        public IEnumerable<ErrorAstNode> GetErrors()
        {
            return new ErrorNodeCollector().Collect(Root);
        }
    }

    public class ErrorNodeCollector : AstVisitor
    {
        private readonly List<ErrorAstNode> _errors = new List<ErrorAstNode>();

        public IEnumerable<ErrorAstNode> Collect(AstNode root)
        {
            this.Visit(root);
            return _errors;
        }

        public override object Visit(AstNode node)
        {
            var result = node.Accept(this);
            VisitChildren(node);
            return result;
        }

        public override object VisitError(ErrorAstNode node)
        {
            _errors.Add(node);
            return null;
        }
    }
}

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。