http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 16371|回复: 9

[C#语言基础] 纯c#编写的脚本引擎(非CodeDom)|提供源码下载

[复制链接]
发表于 2012-9-28 16:12:23 | 显示全部楼层 |阅读模式
前段时间有个项目,因为其中需要使用脚本做模板数据的计算,因此让我对脚本引擎产生了兴趣,于是上网到处寻找资料,于是找到了《龙书》、CodeDom。于是又找了半天,找不到开源的脚本引擎源码,脑袋一热,干脆自己写一个,于是就有了这个用纯c#(非CodeDom)编写的脚本引擎。编写过程中收获良多,目前还不是很完善,效率也不高,仅供学习用,后面会上传源代码。  下面说明一下:语法参考Javascript,基本的javascript语法都已实现,但是有些内建对象没实现,例如 Date,数据类型支持 数值,字符串(考虑到在代码中执行代码,所以字符串的定义用 '字符串' 而非 "字符串"),对象,布尔值,数组。语法方面基本参考Javascript就行了。在编写这个东西的时候顺带学习了下CodeDom(感叹枉费我弄C#也4年多了,现在才知道这东西,看来水还是太深了),在考虑语法分析的时候就参考了CodeDom的对象结构,如下:
2012092617273356.png
命名空间定义:

    ScriptEngin.Code :词法分析器
    ScriptEngin.CodeDom:编译后的解释模型,就是上图的结构(都说了是参考CodeDom)
    ScriptEngin.Exceptions:自定义的异常类
     ScriptEngin.Parser:语法分析器
    ScriptEngin.RunTime:运行时解释执行器
    ScriptEngin.RunTimeType:处理c#对象和脚本对象的映射(还未完善)

    下面贴一段调用代码:
目前未做大量测试,可能会存在些许Bug,如果大家发现了请告诉我,谢谢。
源码下载:[post=1] [2012-09-26]脚本引擎Beta(V1.0).zip (343.39 KB, 下载次数: 117)

本帖被以下淘专辑推荐:



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2012-11-16 15:09:00 | 显示全部楼层
很好,下来看看
发表于 2013-5-10 15:21:11 | 显示全部楼层
看看是什么~~~~~~~~~~
发表于 2013-5-21 20:50:05 | 显示全部楼层
什么 看下
发表于 2013-6-28 22:35:07 | 显示全部楼层
努力学习脚本中...
发表于 2013-6-29 11:35:10 | 显示全部楼层
膜拜中……,谢谢分享
发表于 2013-9-3 12:58:53 | 显示全部楼层
还是看不明白,老大可以用LUA脚本做一个吗?
LUA做的人多

发表于 2014-7-13 13:01:02 | 显示全部楼层
接口,枚举,类,结构,数组都有了,看起来不错、、、、、、、、、、、
发表于 2014-12-23 02:08:10 | 显示全部楼层
努力学习
回复

使用道具 举报

发表于 2016-1-16 22:18:16 | 显示全部楼层
留个脚印表示我来过!
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-4-25 09:29

© 2014-2021

快速回复 返回顶部 返回列表