当前位置: 首页 > 软件库 > 开发工具 > 编译器 >

Moon#

C# 实现的 Lua 解释器
授权协议 BSD
开发语言 C# Lua
所属分类 开发工具、 编译器
软件类型 开源软件
地区 不详
投 递 者 鲍理
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Moon# 是一个完全用 C# 实现的 Lua 解释器,可用于 .NET、Mono、Xamarin 和 Unity3D 平台。

特性:

  • 99%与Lua 5.2兼容(唯一不受支持的功能是对弱表的支持)
  • 支持metalua风格的匿名函数(lambda风格)
  • 易于使用的API
  • 调试器对Visual Studio Code的支持(不支持PCL目标)
  • 可通过Web浏览器和Flash访问的远程调试器(不支持PCL目标)
  • 在.NET 3.5,.NET 4.x,.NET Core,Mono,Xamarin和Unity3D上运行
  • 在iOS等超前平台上运行
  • 在IL2CPP转换后的代码上运行
  • 在需要.NET 4.x便携式类库的平台上运行(例如Windows Phone)
  • 没有外部依赖关系,在尽可能少的目标中实现
  • 与CLR对象轻松高效地互操作,并在支持的情况下生成运行时代码
  • 与方法,扩展方法,重载,字段,属性和索引器互操作
  • 支持完整的Lua标准库,只有很少的例外(大多数位于'debug'模块上)和一些扩展(大部分在字符串库中)
  • .NET 4.x目标的异步方法
  • 支持转储/加载字节码以进行混淆,并在运行时更快地进行解析
  • 嵌入式JSON解析器(无依赖项),可在JSON和Lua表之间进行转换
  • 轻松选择退出Lua标准库模块以沙盒哪些脚本可以访问
  • 易于使用的错误处理(脚本错误是例外)
  • 支持协程,包括将协程作为C#迭代器进行调用
  • REPL解释器,以及可在几行代码中轻松实现自己的REPL的功能
  • 完整的XML帮助以及http://www.moonsharp.org上的演练

示例代码:

double MoonSharpFactorial()
{
    string script = @"    
        -- defines a factorial function
        function fact (n)
            if (n == 0) then
                return 1
            else
                return n*fact(n - 1)
            end
        end

        return fact(5)";

    DynValue res = Script.RunString(script);
    return res.Number;
}
 相关资料
  • 本文向大家介绍Lua中类的实现,包括了Lua中类的实现的使用技巧和注意事项,需要的朋友参考一下 概述      一个类就是像是一个创建对象的模具,对于Lua这种没有类的概念的语言,为了模拟类,方法是为要创建的对象制定一个原型(prototype)。这个原型相当于其他语言中的类。但是原型同时也是一种常规的对象,当其他的对象(看成是原型的实例)遇到一个未知的操作时,就会去原型中查找。因此,在Lua这种

  • Moon 一个极小,但速度极快的 UI 库。项目受 Vue 启发,旨在打造成一个快速灵活的前端 JavaScript 库。 特性 非常小 (7kb minified + gzip) 速度极快 API 直观且易于学习 指令强大 支持插件 示例

  • 本文向大家介绍C语言拓展实现Lua sleep函数,包括了C语言拓展实现Lua sleep函数的使用技巧和注意事项,需要的朋友参考一下 这几天在做一个小项目,其中用到了一些基本的API, 例如sleep,获取当前目录等等,lua标准库中没有提供这些接口,虽然所第三方库中也都有实现,但是要用的就那么几个函数,在一个嵌入式系统中安装那么多第三方库有点浪费资源,于是@胜利哥 写了一个socket的C实现

  • 本文向大家介绍C++与Lua交互原理实例详解,包括了C++与Lua交互原理实例详解的使用技巧和注意事项,需要的朋友参考一下 首先,不同语言交互,我们一般把这种编程方式称为混合编程。开发中为什么要多语言混合使用,只用c++不行吗?答案是因为脚本语言语法糖多使用方便、沙盒式安全机制使系统更稳定、简单易学降低开发成本等,那么,只用脚本不行吗?那也是不合理的,因为与系统api的接口、计算密集性模块的性能要

  • 本文向大家介绍Lua中类的实现原理探讨(Lua中实现类的方法),包括了Lua中类的实现原理探讨(Lua中实现类的方法)的使用技巧和注意事项,需要的朋友参考一下 Lua中没有类的概念,但我们可以利用Lua本身的语言特性来实现类。 下文将详细的解释在Lua中实现类的原理,涉及到的细节点将拆分出来讲,相信对Lua中实现类的理解有困难的同学将会释疑。 类是什么? 想要实现类,就要知道类到底是什么。 在我看

  • Pale Moon 是一个专为 Windows 下的 Firefox 进行优化的版本,提升了性能。Pale Moon 针对上网冲浪的性能对 Firefox 的源码进行了调整,关闭一些特性。 Pale Moon 主要特性: 为主流的处理器进行了高度优化 100% 基于 Firefox 源码 通过禁用一些冗余的和可选的代码降低了内存的占用 显著提升页面绘制和脚本的执行速度 更加稳定 支持 SVG an