当前位置: 首页>>代码示例>>C#>>正文


C# ScriptThread.ThrowScriptError方法代码示例

本文整理汇总了C#中Irony.Interpreter.ScriptThread.ThrowScriptError方法的典型用法代码示例。如果您正苦于以下问题:C# ScriptThread.ThrowScriptError方法的具体用法?C# ScriptThread.ThrowScriptError怎么用?C# ScriptThread.ThrowScriptError使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Irony.Interpreter.ScriptThread的用法示例。


在下文中一共展示了ScriptThread.ThrowScriptError方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: DoEvaluate

		protected override object DoEvaluate(ScriptThread thread)
		{
			// standard prolog
			thread.CurrentNode = this;

			var binding = thread.Bind(FunctionName, BindingRequestFlags.Read);
			var result = binding.GetValueRef(thread);
			if (result == null)
			{
				thread.ThrowScriptError("Unknown identifier: {0}", FunctionName);
				return null;
			}

			CallTarget = result as ICallTarget;
			if (CallTarget == null)
			{
				thread.ThrowScriptError("This identifier cannot be called: {0}", FunctionName);
				return null;
			}

			// set Evaluate pointer
			Evaluate = DoCall;

			// standard epilog is done by DoCall
			return DoCall(thread);
		}
开发者ID:Rezura,项目名称:LiveSplit,代码行数:26,代码来源:FunctionCall.cs

示例2: DoEvaluate

		protected override object DoEvaluate(ScriptThread thread)
		{
			// standard prolog
			thread.CurrentNode = this;

			if (EntryPoint == null)
			{
				thread.ThrowScriptError("No entry point defined (entry point is a function named «Go»)");
				return null;
			}

			// define built-in runtime library functions
			var libraryFunctions = LibraryFunction.ExtractLibraryFunctions(thread, new RefalLibrary(thread));
			foreach (var libFun in libraryFunctions)
			{
				var binding = thread.Bind(libFun.Name, BindingRequestFlags.Write | BindingRequestFlags.ExistingOrNew);
				binding.SetValueRef(thread, libFun);
			}

			// define functions declared in the compiled program
			foreach (var fun in FunctionList)
			{
				fun.Evaluate(thread);
			}

			// call entry point with an empty expression
			EntryPoint.Call(thread, new object[] { PassiveExpression.Build() });

			// standard epilog
			thread.CurrentNode = Parent;
			return null;
		}
开发者ID:androdev4u,项目名称:XLParser,代码行数:32,代码来源:Program.cs

示例3: DoEvaluate

 protected override object DoEvaluate(ScriptThread thread)
 {
     thread.CurrentNode = this;  //standard prolog
     var iCall = FunctionFactory.BindFunction(_targetName);
     if (iCall == null)
         thread.ThrowScriptError("Not callable", _targetName);
     var args = (object[])_arguments.Evaluate(thread);
     object result = iCall.Call(thread, args);
     thread.CurrentNode = Parent; //standard epilog
     return result;
 }
开发者ID:bacm,项目名称:irony-simple-formula,代码行数:11,代码来源:FunCallNode.cs

示例4: EvaluateNoTail

 // Evaluation for non-tail languages
 private object EvaluateNoTail(ScriptThread thread)
 {
     thread.CurrentNode = this;  //standard prolog
       var target = TargetRef.Evaluate(thread);
       var iCall = target as ICallTarget;
       if (iCall == null)
     thread.ThrowScriptError(Resources.ErrVarIsNotCallable, _targetName);
       var args = (object[])Arguments.Evaluate(thread);
       object result = iCall.Call(thread, args);
       thread.CurrentNode = Parent; //standard epilog
       return result;
 }
开发者ID:MarcusTheBold,项目名称:Irony,代码行数:13,代码来源:FunctionCallNode.cs

示例5: DoEvaluate

		protected override object DoEvaluate(ScriptThread thread)
		{
			// standard prolog
			thread.CurrentNode = this;

			foreach (var sentence in Sentences)
			{
				sentence.InputExpression = InputExpression;
				sentence.BlockPattern = BlockPattern;

				var result = sentence.Evaluate(thread);
				if (result != null)
				{
					// standard epilog
					thread.CurrentNode = Parent;
					return result;
				}
			}

			// standard Refal exception: input expression doesn't match any pattern
			thread.ThrowScriptError("Recognition impossible");
			return null;
		}
开发者ID:androdev4u,项目名称:XLParser,代码行数:23,代码来源:Block.cs

示例6: DoEvaluate

 protected override object DoEvaluate(ScriptThread thread)
 {
     thread.CurrentNode = this;  //standard prolog
       thread.ThrowScriptError(Resources.ErrConstructNotSupported, Name);
       return null; //never happens
 }
开发者ID:MarcusTheBold,项目名称:Irony,代码行数:6,代码来源:NotSupportedNode.cs

示例7: Call

 public override object Call(ScriptThread thread, object[] parameters)
 {
     thread.ThrowScriptError("Calling external function is not supported");
     return null;
 }
开发者ID:MarcusTheBold,项目名称:Irony,代码行数:5,代码来源:ExternalFunction.cs

示例8: DoEvaluate

        protected override object DoEvaluate(ScriptThread thread)
        {
            // standard prolog
            thread.CurrentNode = this;
            object result = null;

            // is this variable a part of a pattern?
            if (UseType == NodeUseType.Name)
            {
                // don't evaluate it
                result = CreateVariable();
            }
            else
            {
                // get last recognized pattern
                var pattern = thread.GetLastPattern();
                if (pattern == null)
                {
                    thread.ThrowScriptError("No pattern recognized!");
                    return null;
                }

                // read variable from the last recognized pattern
                result = pattern.GetVariable(Index);
            }

            // standard epilog
            thread.CurrentNode = Parent;
            return result;
        }
开发者ID:MarcusTheBold,项目名称:Irony,代码行数:30,代码来源:Variable.cs

示例9: EvaluateWithTailCheck

 private object EvaluateWithTailCheck(ScriptThread thread)
 {
     thread.CurrentNode = this;  //standard prolog
       var target = TargetRef.Evaluate(thread);
       var iCall = target as ICallTarget;
       if (iCall == null)
     thread.ThrowScriptError(Resources.ErrVarIsNotCallable, _targetName);
       var args = (object[])Arguments.Evaluate(thread);
       object result = null;
       result = iCall.Call(thread, args);
       //Note that after invoking tail we can get another tail.
       // So we need to keep calling tails while they are there.
       while (thread.Tail != null) {
     var tail = thread.Tail;
     var tailArgs = thread.TailArgs;
     thread.Tail = null;
     thread.TailArgs = null;
     result = tail.Call(thread, tailArgs);
       }
       thread.CurrentNode = Parent; //standard epilog
       return result;
 }
开发者ID:MarcusTheBold,项目名称:Irony,代码行数:22,代码来源:FunctionCallNode.cs

示例10: DoEvaluate

 protected override object DoEvaluate(ScriptThread thread) {
   thread.CurrentNode = this;  //standard prolog
   thread.ThrowScriptError(Resources.ErrNullNodeEval, this.Term);
   return null; //never happens
 }
开发者ID:Rezura,项目名称:LiveSplit,代码行数:5,代码来源:NullNode.cs

示例11: DoEvaluate

		protected override object DoEvaluate(ScriptThread thread)
		{
			// standard prolog
			thread.CurrentNode = this;

			// evaluate expression
			var expression = Expression.EvaluateExpression(thread);
			object result = null;

			// extract last recognized pattern (it contains bound variables)
			var lastPattern = thread.GetLastPattern();
			if (lastPattern == null)
			{
				thread.ThrowScriptError("Internal error: last recognized pattern is lost.");
				return null; // never gets here
			}

			// with-clause
			if (Block != null)
			{
				Block.InputExpression = expression;
				Block.BlockPattern = lastPattern;
				result = Block.Evaluate(thread);
			}

			// where-clause
			else if (Pattern != null)
			{
				result = EvaluateWhereClause(expression, lastPattern, thread);
			}

			// internal compiler error
			else
			{
				thread.ThrowScriptError("Internal error: AST node doen't represent neither where- nor when-clause.");
				return null; // never get here
			}

			// standard epilog
			thread.CurrentNode = Parent;
			return result;
		}
开发者ID:androdev4u,项目名称:XLParser,代码行数:42,代码来源:Conditions.cs


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