到目前为止,GScript已经更新到V6版本,后面的时间可能会很忙,有空再做一些更新。而且现在也基本实现当初的想法:
制定一套可嵌入应用程序中,为应用程序提供灵活的扩展和定制功,语法与C/C++类似,面向对象编程的脚本语言。
这个目标可能和Lua类似,但GScript在"向对象编程"更胜一筹,而且无论从速度,灵活等方面都不亚于Lua,如果你喜欢C/C++ 语法,就选GScript吧!
V6更新内容:
增加言语层异常处理特性,增加关键字 try catch throw
修复核心解析引擎一个内存泄漏BUG。
增加了扩展库gs_mysql,支持对MySql数据库的访问。
增加了扩展库GSRegexpr,支持正则表达式处理。
增加了扩展库GSFileSystem,支持文件系统操作。
增加了ISAPI 模块(测式版),支持GScript 作为Web服务器脚本语言。
V5更新内容:
优化解析引擎,执行速度更快。
调整API接口,与宿主结合更加紧密。
优化GC算法,对象回收更高率。
V4更新内容:
取消语言上一些无用语法。
修正脚本表达式优先级错误。
更多以前版本,请参阅之前的博客。
示例1
//利用COM组件调用 ADO 操作SQL Server数据库
var ado=new GSCOMObject("ADODB.Connection");
string strConnect=@"Provider=SQLNCLI.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=mytest;Data Source=.\SQLEXPRESS";
try
{
ado.Open(strConnect);
string strSql="select * from Table1";
var rs=ado.Execute(strSql);
print("id\tname\n");
while(!rs.eof)
{
print(rs.Collect("id")+"\t"+rs.Collect("sname")+"\n");
rs.MoveNext();
}
rs.close();
ado.close();
}
catch(object e)
{
print(e.What()+"\n");
}
return 0;
示例2
//正则表达式测试
object rege=new GSRegexpr(@"/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/");
if(rege.Match("116096543@QQ.com"))
print("验证通过。");
string url = @"http://write.blog.youkuaiyun.com/postlist";//字符串前缀加上'@'表示为实字符串,不会解析转义符
object rege=new GSRegexpr(@"((http[s]?)?(://))?([^/]*)(/?.*)");
var v=rege.Match(url);
if(v)
print(v[4]);
由于目前http://sourceforge.net/一直无法访问,新更新的这部分暂时还没有发布到sourceforge.net。
V3开源地址:http://sourceforge.net/projects/g-script/
下一版本可能会增加一些新技术,如JIT等,脚本执行速度会更加迅速。
就写到这了,由于这段时间也是很快,就没有写一些能吸引眼球的示例了,不过我觉得做一些引擎更新,更有意义。