今天实现了一个简单的语法分析器,支持的数据类型只有double,流程控制有if、while、break、return。支持一些内嵌的API,如cos、sin等。允许C++风格的双斜杠注释以及C风格的/* */注释。可以在函数内部定义局部变量,不一定要在函数开始的地方。
/* This is a test script */
double func1(double arg1) { return arg1 * 2; }
double func2(double arg1, double arg2) { //will test this function
double var = cos(1.5) + sin(1 + func1(arg1 + 1) * 2);
if (var > 1) var = var + arg2;
else if (var < 1) var = var - arg2;
else {
var = var - arg1;
var = var + arg2;
}
while(var < 0) var = var + 3;
while(var > 3) {var = var - 1; var = var - 1;}
return arg2 * (1 + var);
}
double func1(double arg1) { return arg1 * 2; }
double func2(double arg1, double arg2) { //will test this function
double var = cos(1.5) + sin(1 + func1(arg1 + 1) * 2);
if (var > 1) var = var + arg2;
else if (var < 1) var = var - arg2;
else {
var = var - arg1;
var = var + arg2;
}
while(var < 0) var = var + 3;
while(var > 3) {var = var - 1; var = var - 1;}
return arg2 * (1 + var);
}