不知道有没有人有兴趣和我一起完善一个脚本解释器(暂时命名为VScript),散分.

时间:2021-09-14 17:07:13
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 );
}

20 个解决方案

#1


先占一楼100年不可动摇.

#2


:)

#3


支持一把

#4


不知楼主用了yacc&lex吗?
还是都是自己实现的?

#5


ding

#6


没有用 yacc&lex , 呵呵,主要是想在嵌入式环境使用,用了可能不好移植。主要的是我不会用

#7


呵呵,你到这来打广告来了.. :)
支持...
不过这种语法我不喜欢.

#8


佩服——

#9


我不是打广告啊,如果有人感兴趣,我会发源码地,不过现在没有写文档,程序结构也比较混乱,呵呵.
redleaves(ID最吊的网友) 你的 msn 多少,把你的脚本也给我看看吧. 呵呵,你的 __interface 好像只有 M$的有, js 却几乎出现在每个网页上,我想熟悉 js 的人更多,因此脚本就仿照 js 来搞了.

#10


ding

#11


不是__interface,是interface.
倒不是我非要抄MS,只不过这个名字来定义接口要直观点.不习惯的也可以用class或struct来定义,呵呵.我就是为了让有不同习惯的人都习惯这个定义,才加了几个同义的关键字.结果让你不习惯....^_^
而且会JS的人不会比会C/C++的更多吧?而且按你的目标应用领域来说,学C更明智些.而且大多用惯了C/C++的人,用JS这一类的东西会比较不爽,其它还好.
不知道你的这个东西有什么特色不?说来听听.

另外,我的机器出毛病了,上不去MSN,又不想重装系统.....我忍.....

#12


真神奇...居然今天可以上MSN了.... 我的MSN是scu319hy@msn.com,有空和我联系吧.

#13


:(

#14


#15



可惜我不会

#16


都是你自己实现得么???

#17


虽然写的很差,不过每行都是我打进去的,咔咔

#18


#19


佩服,佩服

#20


结帐.

#1


先占一楼100年不可动摇.

#2


:)

#3


支持一把

#4


不知楼主用了yacc&lex吗?
还是都是自己实现的?

#5


ding

#6


没有用 yacc&lex , 呵呵,主要是想在嵌入式环境使用,用了可能不好移植。主要的是我不会用

#7


呵呵,你到这来打广告来了.. :)
支持...
不过这种语法我不喜欢.

#8


佩服——

#9


我不是打广告啊,如果有人感兴趣,我会发源码地,不过现在没有写文档,程序结构也比较混乱,呵呵.
redleaves(ID最吊的网友) 你的 msn 多少,把你的脚本也给我看看吧. 呵呵,你的 __interface 好像只有 M$的有, js 却几乎出现在每个网页上,我想熟悉 js 的人更多,因此脚本就仿照 js 来搞了.

#10


ding

#11


不是__interface,是interface.
倒不是我非要抄MS,只不过这个名字来定义接口要直观点.不习惯的也可以用class或struct来定义,呵呵.我就是为了让有不同习惯的人都习惯这个定义,才加了几个同义的关键字.结果让你不习惯....^_^
而且会JS的人不会比会C/C++的更多吧?而且按你的目标应用领域来说,学C更明智些.而且大多用惯了C/C++的人,用JS这一类的东西会比较不爽,其它还好.
不知道你的这个东西有什么特色不?说来听听.

另外,我的机器出毛病了,上不去MSN,又不想重装系统.....我忍.....

#12


真神奇...居然今天可以上MSN了.... 我的MSN是scu319hy@msn.com,有空和我联系吧.

#13


:(

#14


#15



可惜我不会

#16


都是你自己实现得么???

#17


虽然写的很差,不过每行都是我打进去的,咔咔

#18


#19


佩服,佩服

#20


结帐.

#21