apolloxlua 介绍

简介:

apolloxlua 目前是开发中的版本, 还未发布稳定版本。

项目介绍 star

apolloxlua 目前支持javascript到lua的翻译。可以在openresty和luajit里使用。这个工具分为两种模式, 一种是web模式,可以通过网页使用。另> 这里输入引用文本外一种是tool模式, 通常作为大规模翻译文件的工具使用。
agent.zy 于 18.07.21 晚

特色

  1. 支持switch case 语句
  2. 支持trycatch 语句
  3. 可以自定义语法和后端实现
  4. 无缝对接lua标准库和三方库
  5. 支持array 和 数学库
  6. 支持面向对象开发 OOP
  7. 支持macro宏预处理
  8. 支持面向切面开发 AOP

代码示例:

//[NameSpace("core")] 
class Person{
    hellow(){
         console.log("base Person")
         console.log(this.age)
    }
    
    setAge(v) {
        this.age = v;
    }
    
    static staticSmethod (...args) {
         console.log(args[1], args[2]);
         console.log("i am static method");
    }
}
 
class Person2 extends Person{
    Person2 (name) {
        this.name = name;
        console.log("constructor..");
    }
    
    hellow(){
        console.log("override ");
        console.log("name=" + this.name + ",age=" + this.age);
    }
}

var p1 = Person  >>> New();
var p2 = Person2 >>> New("agent.zy");

p1 >>> setAge(10);
p2 >>> setAge(20);

p1 >>> hellow();
p2 >>> hellow();

如何扩展语法?

1可以使用luajit的ffi或swig扩展你的服务器。在语法分析里添加相应的标准库。
2可以集成现有的lua库,包括但不限于resty*和nginx-lua-*。
3可以通过本工具的js语法,实现库的自举。

示例

控制台示例

项目预览

安装

下载后解压到你的目录, 通过控制台找到项目目录

生成web模式的js文件 make web

生成工具模式的js文件 make tool

生成两种模式文件 make all

使用方式:

web模式 : 在apolloxlua.js载入浏览器后使用一个全局的包装叫apolloxLua的变量包含一个parse的方法, 接受一个js代码串,返回lua代码串。
tool模式: 使用的方式 node apolloxlua 输入文件 输出文件

相关文章
|
4月前
|
消息中间件 Java Unix
MQ产品使用合集之消费订单状态,订单消费待支付消息失败,是否会导致其他订单也没法消费
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
4月前
|
存储 JSON JavaScript
Node.js 上开发一个 HTTP 服务器,监听某个端口,接收 HTTP POST 请求并处理传入的数据
Node.js 上开发一个 HTTP 服务器,监听某个端口,接收 HTTP POST 请求并处理传入的数据
|
4月前
|
算法 安全 Java
Java表达式和规则引擎的比较与考量
Java表达式和规则引擎的比较与考量
183 0
|
算法 安全 小程序
牛客网Python入门103题练习|(05--运算符(2))
牛客网Python入门103题练习|(05--运算符(2))
183 2
|
4月前
|
JSON C# 数据格式
C# | 使用DataGridView展示JSON数组
你想展示一个复杂的JSON数组数据吗?但是你却不知道该如何展示它,是吗?没问题,因为本文就是为解决这个问题而生的!使用DataGridView轻松地将JSON数组数据以表格的形式呈现出来,这样你就可以更加清晰地了解和处理数据了。 让我们一起来探索如何实现吧!
139 0
C# | 使用DataGridView展示JSON数组
|
弹性计算 Windows
阿里云Windows Server 2008云服务器操作系统镜像支持
阿里云服务器ECS可以安装Windows Server 2008操作系统,有同学在找Windows 2008操作系统,微软停止对Windows Server 2008扩展支持,了解风险并同意《申请续用 Windows Server 2008 镜像服务协议》即可使用Windows2008。
829 0
阿里云Windows Server 2008云服务器操作系统镜像支持
|
边缘计算 并行计算 算法
Opencv+ZBar识别条形码、二维码
Opencv+ZBar识别条形码、二维码
712 0
Opencv+ZBar识别条形码、二维码
|
SQL 存储 负载均衡
SQL Server 高可用性(八)负载平衡
高可用与负载平衡是两种不同的技术,却经常被混淆。
540 1
SQL Server 高可用性(八)负载平衡
|
安全 机器学习/深度学习 容器
【云上未来】从Elasticsearch到ElasticStack的技术演进之路 |(附视频)
在2019云栖大会【Elasticsearch开发者生态专场】上,Elastic中国首席架构师朱杰(Jerry),为大家详细介绍了从“Elasticsearch”到“Elastic Stack”的产品和技术的演进趋势,并确立云上ES战略的意义。
3425 0
【云上未来】从Elasticsearch到ElasticStack的技术演进之路 |(附视频)
|
数据采集 存储 算法
央视网的融媒体数据中台实践
作为中央电视台新媒体平台,央视网在不断升级建设“一网(中央重点新闻网站)+一端(移动客户端)+新媒体集成播控平台(IPTV、手机电视、互联网电视)+市场端口连接”的全新传播格局,打造“无处不在”新入口的同时也深刻认识到,需要让大数据成为驱动整个企业发展的核心动能。
3040 0
央视网的融媒体数据中台实践