コード例 #1
0
ファイル: EqlBuilder.cs プロジェクト: wdr1990123/WebVella-ERP
        private ParseTree Parse(string source, List <EqlError> errors)
        {
            if (string.IsNullOrWhiteSpace(source))
            {
                throw new EqlException("Source is empty.");
            }

            if (errors == null)
            {
                errors = new List <EqlError>();
            }

            var grammar  = new EqlGrammar();
            var language = new LanguageData(grammar);
            var parser   = new Parser(language);
            var tree     = parser.Parse(source);

            if (tree.HasErrors())
            {
                foreach (var error in tree.ParserMessages.Where(x => x.Level == Irony.ErrorLevel.Error))
                {
                    EqlError err = new EqlError {
                        Message = error.Message
                    };
                    err.Line   = error.Location.Line;
                    err.Column = error.Location.Column;
                    errors.Add(err);
                }
            }

            return(tree);
        }
コード例 #2
0
 public EqlException(EqlError error) : base(error?.Message ?? "One or more Eql errors occurred.")
 {
     Errors.Add(error);
 }