分裂字符串上的Javascript switch语句失败

时间:2017-02-23 05:08:53

标签: javascript split switch-statement

我目前正在编写一个解释一种语言并输出结果的类项目。

我在一个文件中读取并用新行分割文档以获取字符串数组(也就是每一行)

然后将每一行进一步细分为和运算符,有时还为参数。我遇到的问题在于没有参数的运营商。

该语言的示例如下所示:

lvalue x //this declares a variable x
rvalue 5 //places the value 5 on the stack
:= //assign the value 5 to the variable x

我使用switch语句来读取运算符并确定要调用的函数

call(){
switch(opp)
 {
 case "lvalue":lvalue(param); break;
 case "rvalue":rvalue(param); break;
 case ":=": set(); break;
 }
}

我遇到的主要问题是switch语句完全跳过了“:=”的输入。

对于opp和param的输入,并通过基于空格分解每一行来创建。由于:=行中没有其他值,因此拆分的结果只是一个项目。我怀疑这是我的问题所在。

我这样调用我的switch语句:

var args=doc[i].split(' ');
var opp=args[0];
var param=args.splice(1,args.length).join(" ");

call(opp,param);

我注意到当我在输入文件中的:=之后放置空格时,switch语句会读取它。所以我确信这是正确解析字符串的问题。对于没有参数的其他操作员也会出现此问题(再次使用修复问题的空格)。

由于我无法保证输入中的空格,我需要一种方法来确保我的switch语句能够识别我的操作符。

由于

0 个答案:

没有答案