返回首页

{A}介绍
XScript"是我在C#中一个简单的脚本语言。即使XScript不是可执行文件,它可以做复杂的数学运算。
的XScript可以用来作为脚本语言引擎或数学库。使用代码
要使用XScript的编译器,你将有导入库和宣布XSParser变量。

XSParser xsParser = new XSParser(); 

使用quot; ParseMathExprquot;功能解析数学表达式,例如:{C}
XScript代码要返回一个变量(或变量数组),你要使用的功能:ParseReturnVariable ParseReturnArray
double var = xsParser.ParseReturnVariable(code);

double[] arr = xsParser.ParseReturnArray(code);
XScript基本语法
/在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日:初始后

回答

评论会员:简单 时间:2012/02/06
linuxjr
评论会员::Southmountain 时间:2012/02/06
|?分享您的工作
感谢你有在xscript任何储备的话
它看起来类似的基本语法。

你让我5!
可用性真相
评论会员:游客 时间:2012/02/06
ArikLekar:是的,我发现他们中的一些文章中的集,DEC,DSET,这样做,首先,...
,Nishant西瓦库玛|我的5。 {S0的}
的问候,
NishMy技术博客:{A2的}

在我的WinRT / C系列的第2部分:{A3的}