本文整理汇总了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;未经允许,请勿转载。 |
请发表评论