不知道有没有人有兴趣和我一起完善一个脚本解释器(暂时命名为VScript),散分.
10.1时候无聊写了一个类似 javascript 的脚本解释器(VScript,我也不知道是什么意思),支持一元操作符 + - ~ ! ++ -- isvalid typeof , 二元操作符 + - * / div << >> >>> & | ^ < > = != <= >= && || ( 同C/C++ 短路处理 ) , 赋值运算 = += -= *= /= div= <<= >>= >>>= &= |= ^= , 三元操作符 ? : , 支持程序控制语句 break continue return if else for while do while ( 打算加上 switch , 不支持 goto. ). 支持对象属性,方法调用( 可通过这种方法扩展脚本功能. ) 16M 次空循环( while( i++ <= 0X1000000 ); )的运行时间大概是7秒( C2.1G ),经过简单的优化可以达到大概3秒吧( 打算用 C 改写以便于移植到嵌入式环境 ).
现在主要还有以下工作没有完成:
1 : 移植到 linux .
2 : 编写大量的实用库.
3 : 脚本调试器.
如果有人有兴趣可以与我联系( msn : LL79_1@hotmail.com ) , 另外程序应该做成 free 还是 GPL .
实例脚本如下:
function fact( n )
{
return n <= 1 ? 1 : n * fact( n - 1 );
}
function showarr( arr )
{
for( var i = 0; i < arr.size; ++i )
utility.print( arr(i) + "\t" );
utility.print( '\n' );
}
function foo()
{
var arr = utility.Array( 1 , 2 , 3 , 4 , 5 , 6 );
showarr( arr );
arr.sort();
showarr( arr );
arr.sort( false );
showarr( arr );
}