{A}介绍
XScript"是我在C#中一个简单的脚本语言。即使XScript不是可执行文件,它可以做复杂的数学运算。
的XScript可以用来作为脚本语言引擎或数学库。使用代码
要使用XScript的编译器,你将有导入库和宣布XSParser变量。XSParser xsParser = new XSParser();
使用quot; ParseMathExprquot;功能解析数学表达式,例如:{C}
XScript代码要返回一个变量(或变量数组),你要使用的功能:ParseReturnVariable
ParseReturnArray
XScript基本语法double var = xsParser.ParseReturnVariable(code);
double[] arr = xsParser.ParseReturnArray(code);
/在xscript函数需要每个命令宣布将在一个新行。声明一个变量/数组,使用quot; decquot;字:{体C3}
在第一行中,我们声明一个变量(名为"varquot ;),并在第二行中,我们声明一个数组(长度:5名为"arrquot的;)。
使用quot; setquot;字,设置一个值,你声明的变量:{的C4}
如果你想声明和设置在同一行的值数组,可以使用quot; dsetquot;字:
输出/返回变量/数组,使用quot; returnquot;字:{5233}
所有这些话XScript的基本语法的一部分。但XScript可以扩展它的语法。XArray
XArray的类是变量/在XScript数组形式。 XArray类有3个领域:名称(字符串)瓦尔(双打阵列)级别(INT)
名称是简单的数组的名称,瓦尔数组中的值,我将稍后解释有关水平
XArray的构造函数需要两个参数:数组名和数组的长度{ BR}可以使用XArray的类变量/数组解析数学表达式:{C7-}命令
每一个XScript的命令开始,这个词quot; doquot;{C8的}
XScriptLib"带有一个内置的命令:SumArray。随着SumArray,可以总结成一个数组变量:do tsum arr,var
,凡tsum是SumArray命令,arr是一个数组,var是一个变量。
到XScript要添加自己的命令,你需要创建一个类,从该类继承:quot; Commandquot;和覆盖功能:quot; OverrideCommandquot;{C10的}
我刚刚创建的命令是所谓:quot; myCmdquot;和它需要2个变量和调换它们的值
之前,你可以使用quot; myCmdquot;在你的代码,你需要来添加它到你的编译器的命令列表。 :{C11的}流程
在XScript中,进程是一个代码块。如果/当此块将运行...事情发生了。
*每次你进入到一个新的进程,您的代码水平的提高,在每一道工序结束时,所有的变量/以上,或在工艺水平与被删除的阵列*
XScriptLib"带有4内置流程:如果同时,对于功能
每个进程启动与词quot; beginquot;字的两端:quot; endquot;例如:{C12的}
可以运行其他进程内的流程:begin if(var=2)
dset index = 0
begin while(index < max)
set arr[index] = index*max
set index = index + 1
end
end
到XScript要添加您自己的过程,你需要创建一个类,从该类继承:quot; Processquot;覆盖功能:quot; OverrideProcessquot;class IfNotProcess : Process
{
public IfNotProcess() : base("IfNot"){}
protected override List<XArray> OverrideProcess
(string code, List<XArray> arrs, XSParser parser, string[] cons, int codeLevel)
{
if(cons.Length != 1)
throw new Exception("IfNot takes one parameter.");
if(!Helper.BooleanExpression(cons[0], arrs, parser))
arrs = Helper.OnlyBeneathLevel
(parser.ParseReturn(code, codeLevel+1, arrs), codeLevel);
return arrs;
}
}
我刚刚创建的过程,是所谓:quot; IfNotquot;,它需要一个条件/参数和运行代码虚假的条件,只有当
之前可以使用quot; IfNotquot;,你需要在你的代码。将它添加到你的编译器的进程列表:
布尔表达式xsParser.processes.Add(new IfNot());
在XScript,布尔表达式用于在条件(如果),循环(同时,)。这些是在XScript的逻辑运算:等号(=)较大(GT ;)小(LT ;)不等于(!)或(|)及(放;)功能
在XScript,你使用的功能申报重复的运营商,如:。SQRT,最小值,最大值,罪,COS等功能
是一个过程,与XScript数学分析器(XMParser)的连接
申报在XScript的功能,你使用quot; funcquot的;字:{C16的}
在这一行,我宣布一个被称为功能:"MyFuncquot;两个数组作为参数
里面的功能,您可以编写代码,并使用arr1的阵列和arr2:{C17的}
函数myfunc得到两个数组作为参数,并检查,如果第一个数组的长度等于第二个数组的长度。
如果是,该功能将是一个,否则将返回零。quot; paramsquot;参数
你可以使用之前,你的函数的参数的名称字的params使其一堆参数,用户可以输入数组。{C18的}
函数myfunc得到两个变量,并检查,如果第一个变量是等于第二个。历史
2011年10月,27日:初始后