• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# ParsingContext类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中ParsingContext的典型用法代码示例。如果您正苦于以下问题:C# ParsingContext类的具体用法?C# ParsingContext怎么用?C# ParsingContext使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



ParsingContext类属于命名空间,在下文中一共展示了ParsingContext类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: Execute

 public override CompileResult Execute(IEnumerable<FunctionArgument> arguments, ParsingContext context)
 {
     ValidateArguments(arguments, 2);
     var row = ArgToInt(arguments, 0);
     var col = ArgToInt(arguments, 1);
     ThrowExcelErrorValueExceptionIf(() => row < 0 && col < 0, eErrorType.Value);
     var referenceType = ExcelReferenceType.AbsoluteRowAndColumn;
     var worksheetSpec = string.Empty;
     if (arguments.Count() > 2)
     {
         var arg3 = ArgToInt(arguments, 2);
         ThrowExcelErrorValueExceptionIf(() => arg3 < 1 || arg3 > 4, eErrorType.Value);
         referenceType = (ExcelReferenceType)ArgToInt(arguments, 2);
     }
     if (arguments.Count() > 3)
     {
         var fourthArg = arguments.ElementAt(3).Value;
         if(fourthArg.GetType().Equals(typeof(bool)) && !(bool)fourthArg)
         {
             throw new InvalidOperationException("Excelformulaparser does not support the R1C1 format!");
         }
         if (fourthArg.GetType().Equals(typeof(string)))
         {
             worksheetSpec = fourthArg.ToString() + "!";
         }
     }
     var translator = new IndexToAddressTranslator(context.ExcelDataProvider, referenceType);
     return CreateResult(worksheetSpec + translator.ToAddress(col, row), DataType.ExcelAddress);
 }
开发者ID:GitOffice,项目名称:DataPie,代码行数:29,代码来源:Address.cs


示例2: Execute

 public override CompileResult Execute(IEnumerable<FunctionArgument> arguments, ParsingContext context)
 {
     ValidateArguments(arguments, 1);
     var nItems = 0d;
     Calculate(arguments, ref nItems, context, ItemContext.SingleArg);
     return CreateResult(nItems, DataType.Integer);
 }
开发者ID:GitOffice,项目名称:DataPie,代码行数:7,代码来源:Count.cs


示例3: Execute

 public override CompileResult Execute(IEnumerable<FunctionArgument> arguments, ParsingContext context)
 {
     ValidateArguments(arguments, 2);
     var n1 = ArgToDecimal(arguments, 0);
     var n2 = ArgToDecimal(arguments, 1);
     return new CompileResult(n1 % n2, DataType.Decimal);
 }
开发者ID:acinep,项目名称:epplus,代码行数:7,代码来源:Mod.cs


示例4: Execute

 public override CompileResult Execute(IEnumerable<FunctionArgument> arguments, ParsingContext context)
 {
     ValidateArguments(arguments, 2);
     var firstArg = arguments.ElementAt(0);
     var args = firstArg.Value as IEnumerable<FunctionArgument>;
     if (args == null && firstArg.IsExcelRange)
     {
         args = new List<FunctionArgument>(){ firstArg };
     }
     var criteria = arguments.ElementAt(1).Value;
     ThrowExcelErrorValueExceptionIf(() => criteria == null || criteria.ToString().Length > 255, eErrorType.Value);
     var retVal = 0d;
     if (arguments.Count() > 2)
     {
         var secondArg = arguments.ElementAt(2);
         var lookupRange = secondArg.Value as IEnumerable<FunctionArgument>;
         if (lookupRange == null && secondArg.IsExcelRange)
         {
             lookupRange = new List<FunctionArgument>() {secondArg};
         }
         retVal = CalculateWithLookupRange(args, criteria.ToString(), lookupRange, context);
     }
     else
     {
         retVal = CalculateSingleRange(args, criteria.ToString(), context);
     }
     return CreateResult(retVal, DataType.Decimal);
 }
开发者ID:Eagle-Chan,项目名称:KIS,代码行数:28,代码来源:AverageIf.cs


示例5: Execute

 public override CompileResult Execute(IEnumerable<FunctionArgument> arguments, ParsingContext context)
 {
     ValidateArguments(arguments, 1);
     var val = arguments.ElementAt(0).ValueFirst;
     if (val is string) return CreateResult(val, DataType.String);
     return CreateResult(string.Empty, DataType.String);
 }
开发者ID:GitOffice,项目名称:DataPie,代码行数:7,代码来源:T.cs


示例6: Calculate

 private double Calculate(FunctionArgument arg, ParsingContext context)
 {
     var retVal = 0d;
     if (ShouldIgnore(arg))
     {
         return retVal;
     }
     if (arg.Value is IEnumerable<FunctionArgument>)
     {
         foreach (var item in (IEnumerable<FunctionArgument>)arg.Value)
         {
             retVal += Calculate(item, context);
         }
     }
     else if (arg.Value is ExcelDataProvider.IRangeInfo)
     {
         foreach (var c in (ExcelDataProvider.IRangeInfo)arg.Value)
         {
             if (ShouldIgnore(c, context) == false)
             {
                 CheckForAndHandleExcelError(c);
                 retVal += c.ValueDouble;
             }
         }
     }
     else
     {
         CheckForAndHandleExcelError(arg);
         retVal += ConvertUtil.GetValueDouble(arg.Value, true);
     }
     return retVal;
 }
开发者ID:acinep,项目名称:epplus,代码行数:32,代码来源:Sum.cs


示例7: Execute

 public override CompileResult Execute(IEnumerable<FunctionArgument> arguments, ParsingContext context)
 {
     ValidateArguments(arguments, 1);
     var arg = GetFirstValue(arguments);
     
     if (arg is bool)
     {
         var val = (bool) arg ? 1d : 0d;
         return CreateResult(val, DataType.Decimal);
     }
     else if (IsNumeric(arg))
     {
         var val = ConvertUtil.GetValueDouble(arg);
         return CreateResult(val, DataType.Decimal);
     }
     else if (arg is string)
     {
         return CreateResult(0d, DataType.Decimal);
     }
     else if (arg is ExcelErrorValue)
     {
         return CreateResult(arg, DataType.ExcelError);
     }
     throw new ExcelErrorValueException(eErrorType.Value);
 }
开发者ID:Eagle-Chan,项目名称:KIS,代码行数:25,代码来源:N.cs


示例8: Calculate

        private void Calculate(IEnumerable<FunctionArgument> items, ParsingContext context, ref double nItems)
        {
            foreach (var item in items)
            {
                var cs = item.Value as ExcelDataProvider.IRangeInfo;
                if (cs != null)
                {
                    foreach (var c in cs)
                    {
                        _CheckForAndHandleExcelError(c, context);
                        if (!ShouldIgnore(c, context) && ShouldCount(c.Value))
                        {
                            nItems++;
                        }
                    }
                }
                else if (item.Value is IEnumerable<FunctionArgument>)
                {
                    Calculate((IEnumerable<FunctionArgument>)item.Value, context, ref nItems);
                }
                else
                {
                    _CheckForAndHandleExcelError(item, context);
                    if (!ShouldIgnore(item) && ShouldCount(item.Value))
                    {
                        nItems++;
                    }
                }

            }
        }
开发者ID:acinep,项目名称:epplus,代码行数:31,代码来源:CountA.cs


示例9: _CheckForAndHandleExcelError

 private void _CheckForAndHandleExcelError(FunctionArgument arg, ParsingContext context)
 {
     if (context.Scopes.Current.IsSubtotal)
     {
         CheckForAndHandleExcelError(arg);
     }
 }
开发者ID:acinep,项目名称:epplus,代码行数:7,代码来源:CountA.cs


示例10: Execute

 public override CompileResult Execute(IEnumerable<FunctionArgument> arguments, ParsingContext context)
 {
     if (arguments == null || arguments.Count() == 0)
     {
         return CreateResult(true, DataType.Boolean);
     }
     var result = true;
     foreach (var arg in arguments)
     {
         if (arg.Value is ExcelDataProvider.IRangeInfo)
         {                    
             var r=(ExcelDataProvider.IRangeInfo)arg.Value;
             if (r.GetValue(r.Address._fromRow, r.Address._fromCol) != null)
             {
                 result = false;
             }
         }
         else
         {
             if (arg.Value != null && (arg.Value.ToString() != string.Empty))
             {
                 result = false;
                 break;
             }
         }
     }
     return CreateResult(result, DataType.Boolean);
 }
开发者ID:Eagle-Chan,项目名称:KIS,代码行数:28,代码来源:IsBlank.cs


示例11: Execute

 public override void Execute(ParsingContext context)
 {
     var savedParserInput = context.CurrentParserInput;
     context.CurrentParserInput = GetResultNode(context);
     CompleteReduce(context);
     context.CurrentParserInput = savedParserInput;
 }
开发者ID:HyperSharp,项目名称:Hyperspace.DotLua,代码行数:7,代码来源:ReduceParserActions.cs


示例12: Execute

 public override CompileResult Execute(IEnumerable<FunctionArgument> arguments, ParsingContext context)
 {
     ValidateArguments(arguments, 1);
     var firstArg = arguments.ElementAt(0);
     if (firstArg.Value == null || firstArg.ValueIsExcelError) return CreateResult(false, DataType.Boolean);
     return CreateResult(!(firstArg.Value is string), DataType.Boolean);
 }
开发者ID:acinep,项目名称:epplus,代码行数:7,代码来源:IsNonText.cs


示例13: Parse

        public override LinkedList<IWikiElement> Parse(ParsingContext parsingContext, ElementContent containerContent)
        {
            var elements = new LinkedList<IWikiElement>();

            foreach (Match match in _linkExpression.Matches(containerContent.ToString()))
            {
                var elementContent = new ElementContent(containerContent, match);
                var innerContent = new ElementContent(containerContent, match.Groups["content"]);

                string originalAddress, normalizedAddress;

                if (match.Groups["url"].Success)
                {
                    originalAddress = match.Groups["url"].Value;
                    normalizedAddress = FormatUrl(originalAddress);
                }
                else if (match.Groups["email"].Success)
                {
                    originalAddress = match.Groups["email"].Value;
                    normalizedAddress = FormatEmail(originalAddress);
                }
                else
                    continue;

                string text = match.Groups["text"].Success ? match.Groups["text"].Value : originalAddress;
                bool noFollow = match.Groups["nofollow"].Success;

                var element = new LinkElement(parsingContext, elementContent, innerContent, normalizedAddress, text, noFollow);

                elements.AddLast(element);
            }

            return elements;
        }
开发者ID:kostrse,项目名称:MayMart.Wiki,代码行数:34,代码来源:LinkParser.cs


示例14: Execute

 public override CompileResult Execute(IEnumerable<FunctionArgument> arguments, ParsingContext context)
 {
     ValidateArguments(arguments, 1);
     var error = arguments.ElementAt(0);
     var isErrorFunc = context.Configuration.FunctionRepository.GetFunction("iserror");
     var isErrorResult = isErrorFunc.Execute(arguments, context);
     if (!(bool) isErrorResult.Result)
     {
         return CreateResult(ExcelErrorValue.Create(eErrorType.NA), DataType.ExcelError);
     }
     var errorType = error.ValueAsExcelErrorValue;
     int retValue;
     switch (errorType.Type)
     {
         case eErrorType.Null:
             return CreateResult(1, DataType.Integer);
         case eErrorType.Div0:
             return CreateResult(2, DataType.Integer);
         case eErrorType.Value:
             return CreateResult(3, DataType.Integer);
         case eErrorType.Ref:
             return CreateResult(4, DataType.Integer);
         case eErrorType.Name:
             return CreateResult(5, DataType.Integer);
         case eErrorType.Num:
             return CreateResult(6, DataType.Integer);
         case eErrorType.NA:
             return CreateResult(7, DataType.Integer);
     }
     return CreateResult(ExcelErrorValue.Create(eErrorType.NA), DataType.ExcelError);
 }
开发者ID:PavelPZ,项目名称:NetNew,代码行数:31,代码来源:ErrorType.cs


示例15: Execute

 public override CompileResult Execute(IEnumerable<FunctionArgument> arguments, ParsingContext context)
 {
     if (arguments == null || arguments.Count() == 0)
     {
         return CreateResult(false, DataType.Boolean);
     }
     foreach (var argument in arguments)
     {
         if (argument.Value is ExcelDataProvider.IRangeInfo)
         {
             var r = (ExcelDataProvider.IRangeInfo)argument.Value;
             if (ExcelErrorValue.Values.IsErrorValue(r.GetValue(r.Address._fromRow, r.Address._fromCol)))
             {
                 return CreateResult(true, DataType.Boolean);
             }
         }
         else
         {
             if (ExcelErrorValue.Values.IsErrorValue(argument.Value))
             {
                 return CreateResult(true, DataType.Boolean);
             }
         }                
     }
     return CreateResult(false, DataType.Boolean);
 }
开发者ID:acinep,项目名称:epplus,代码行数:26,代码来源:IsError.cs


示例16: Execute

 public override CompileResult Execute(IEnumerable<FunctionArgument> arguments, ParsingContext context)
 {
     ValidateArguments(arguments, 1);
     var number = ArgToInt(arguments, 0);
     ThrowExcelErrorValueExceptionIf(() => number < 1 || number > 255, eErrorType.Value);
     return CreateResult(((char) number).ToString(), DataType.String);
 }
开发者ID:Eagle-Chan,项目名称:KIS,代码行数:7,代码来源:CharFunction.cs


示例17: Execute

 public override CompileResult Execute(IEnumerable<FunctionArgument> arguments, ParsingContext context)
 {
     ValidateArguments(arguments, 1);
     var dateObj = arguments.ElementAt(0).Value;
     System.DateTime date = ParseDate(arguments, dateObj);
     return CreateResult(date.Second, DataType.Integer);
 }
开发者ID:Eagle-Chan,项目名称:KIS,代码行数:7,代码来源:Second.cs


示例18: Execute

 public override CompileResult Execute(IEnumerable<FunctionArgument> arguments, ParsingContext context)
 {
     ValidateArguments(arguments, 1);
     var dateInt = ArgToInt(arguments, 0);
     var date = System.DateTime.FromOADate(dateInt);
     return CreateResult(WeekNumber(date), DataType.Integer);
 }
开发者ID:acinep,项目名称:epplus,代码行数:7,代码来源:IsoWeekNum.cs


示例19: Compile

        public override CompileResult Compile(IEnumerable<Expression> children, ParsingContext context)
        {
            if (children.Count() != 2) return new CompileResult(eErrorType.Value);
            var args = new List<FunctionArgument>();
            Function.BeforeInvoke(context);
            var firstChild = children.First();
            var lastChild = children.ElementAt(1);
            try
            {
                var result = firstChild.Compile();
                if (result.DataType == DataType.ExcelError && (Equals(result.Result,
                    ExcelErrorValue.Create(eErrorType.NA))))
                {
                    args.Add(new FunctionArgument(lastChild.Compile().Result));
                }
                else
                {
                    args.Add(new FunctionArgument(result.Result));
                }

            }
            catch (ExcelErrorValueException)
            {
                args.Add(new FunctionArgument(lastChild.Compile().Result));
            }
            return Function.Execute(args, context);
        }
开发者ID:princeoffoods,项目名称:EPPlus,代码行数:27,代码来源:IfNaFunctionCompiler.cs


示例20: Execute

 public override CompileResult Execute(IEnumerable<FunctionArgument> arguments, ParsingContext context)
 {
     ValidateArguments(arguments, 1);
     var arg = ArgToDecimal(arguments, 0);
     var result = System.Math.Sqrt((double)arg);
     return CreateResult((double)result, DataType.Decimal);
 }
开发者ID:Eagle-Chan,项目名称:KIS,代码行数:7,代码来源:Sqrt.cs



注:本文中的ParsingContext类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# ParsingFunction类代码示例发布时间:2022-05-24
下一篇:
C# ParserToken类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap