公告

联系我:我的126邮箱: billhsu。 Locations of visitors to this page
<2008年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

统计

  • 随笔 - 41
  • 文章 - 0
  • 评论 - 82
  • 引用 - 0

常用链接

留言簿(16)

随笔分类

随笔档案

相册

Game Dev

搜索

  •  

最新评论

阅读排行榜

评论排行榜

脚本引擎RapScript V0.0.0.1发布
这是最近完成的RapScript的0.0.0.1版的源代码。
这份代码目前比较糟糕,有点乱,而且没有错误处理,但开源是一种习惯。。。

先介绍一下怎么用:
把RapScript.h RapScript.cpp RapStack.h加入工程,然后在自己的main.cpp里加入
#include "RapScript.h"

RapScript XXX;

XXX是对象名,可以自己取。

关于函数互交:
比如说,你在C++中写了一个函数:
void test(int a,int b)
{
cout 
<<"In void test(int a,int b) a:"<<a<<" b: "<<b<<endl;
}
要调用它,要在写一个:
void rap_test()
{
int a=rapscript.para[0].v_int;//参数一
int b=rapscript.para[1].v_int;//参数二
test(a,b);

}
然后在合适的位置(比如int main()中)加入
rapscript.tmp_cmd.cmd_name="test";
rapscript.tmp_cmd.v_type
=rapscript.CMD_VOID;
rapscript.tmp_cmd.fp_void
=rap_test;
rapscript.cmd_list.push_back(rapscript.tmp_cmd);
调用rapscript.run_rap();
脚本就会执行了。
说明一下:
1.在脚本中写命令时要这样:test(a;b;);//我偷懒了
2.所有变量用前必须声明(如int a;string b;)
目前只支持int 和 string
3.Bug超多。
4.if()和 for()等暂时不支持
5.如果你愿意修改源代码,只要合理,就会被采用,名字也会加入Author里。。。

下载RapScript V0.0.0.1源代码
┏━┓   ┏━━┓   ┏┓     
┃┃┣━┳━┫━━╋━┳┳╋╋━┳━━┓
┃ ┫━┃┃┣━━┃┣┫┏┫┃┃┣┓┏┛
┗┻┻┻┫┏┻━━┻━┻┛┗┫┏┛┗┛ 
             ┗┛        ┗┛    


posted on 2008-08-10 11:05 Bill Hsu 阅读(1605) 评论(4)  编辑 收藏 引用 所属分类: Game Dev

评论

# re: 脚本引擎RapScript V0.0.0.1发布 2008-08-10 13:42 陈梓瀚(vczh)

不错不错,都开始做脚本引擎了

http://www.cppblog.com/vczh/archive/2008/07/01/55072.html

这个是我以前做的,支持C++和.NET,有函数,lambda表达式,普通循环和foreach循环,分支,类,命名空间,函数重载,操作符重载,类继承。对数组有特殊支持。

支持面向对象、函数式、泛型等多种范式。

可以在host program,也就是调用这个脚本引擎的C++和.NET程序里面,向脚本引擎插入类、命名空间和函数。

默认的函数支持正则表达式(也是自己写的)、上下文无关问法处理(也是自己写的)、异常处理、和反射。

上面的链接里面有我用这个脚本引擎自己开发的一套数据结构,大概跟STL的概念是差不多的,只是没有iterator。里面的容器都可以与脚本内置的foreach互相协调。
  回复  更多评论    

# re: 脚本引擎RapScript V0.0.0.1发布 2008-08-10 19:23 Bill Hsu

@陈梓瀚(vczh)
这个vczh太强了
  回复  更多评论    

# re: 脚本引擎RapScript V0.0.0.1发布 2009-04-24 11:05 dayu

good.交换个友情链接吧
dayuhome.blogbus.com
  回复  更多评论    

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理