今天实现了一个简单的语法分析器,支持的数据类型只有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);
}