apolloxlua 介绍

news/2024/5/18 22:51:57

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 输入文件 输出文件


http://www.niftyadmin.cn/n/4388919.html

相关文章

PHP如何下载远程文件到指定目录

PHP用curl可以轻松实现下载远程文件到指定目录&#xff1a; <?php class Download {public static function get($url, $file){return file_put_contents($file, file_get_contents($url));}public static function curlGet($url, $file){$ch curl_init();curl_setopt($ch…

高并发分布式系统中生成全局唯一(订单号)Id

1、GUID数据因毫无规律可言造成索引效率低下&#xff0c;影响了系统的性能&#xff0c;那么通过组合的方式&#xff0c;保留GUID的10个字节&#xff0c;用另6个字节表示GUID生成的时间&#xff08;DateTime&#xff09;&#xff0c;这样我们将时间信息与GUID组合起来&#xff0…

全国计算机三级网络工程技术20天指南

这篇文章&#xff0c;可能会有人在之前看到过&#xff0c;不过不影响。因为我也是在前者的基础上&#xff0c;添加了部分新内容的总结&#xff0c;或许不多。但应对三级考试足够了。不用担心你没基础&#xff0c;这篇指南就是给特别懒的你准备的0基础指南。郑重声明&#xff1a…

Android项目集成穿山甲开屏/插屏/横幅广告教程大全

Android项目集成穿山甲开屏/插屏/横幅广告教程大全 开发及项目环境说明 Android Studio 2020.3.1 Patch 4/203.7717.56.2031.7935034 jdk11.0.9 Android Gradle Plugin Version 7.0.4 Gradle Version 7.0.2 compileSdk 31 minSdk 21 targetSdk 31 穿山甲com.pangle.cn:ads-…

php上传文件找不到临时文件夹

错误原因&#xff1a; 一、配置文件没有设置临时文件夹 二、临时文件夹没有或者上级文件夹没有相应的权限 处理方式&#xff1a; 找到PHP配置文件php.ini&#xff0c;找到以下代码 ;upload_tmp_dir 改为&#xff1a; upload_tmp_dir "C:\Windows\Temp" //后面的文…

[Andrioid开发] Splash界面/用户协议与隐私政策弹窗/界面开发

[Andrioid开发] Splash界面/用户协议与隐私政策弹窗/界面开发 启动页界面开发、首次启动时的启动页用户协议与隐私政策弹窗&#xff0c;只要不点击同意每次打开都会显示弹窗&#xff0c;同意后立即跳转到主界面&#xff0c;当下次再进入软件就是两秒后自动跳转到主界面。 Splas…

c语言中自定义bool函数模板

首先&#xff0c;c语言中没有bool函数类型&#xff0c;只有c中有&#xff0c;所以需要自定义&#xff0c;即c中表示bool类型的方法&#xff1a; 1.模板1 typedef int bool; #define false 0 #define true 12.模板2 typedef int bool; enum { false, true };3.模板3 typede…

[安卓逆向]apktool实现APK反编译、重打包、签名

apktool实现APK反编译、重打包、签名 写在前面 apktool 主要用于逆向apk文件。它可以将资源解码&#xff0c;并在修改后可以重新构建它们。 下载apktool APKtool官网&#xff1a;https://ibotpeaches.github.io/Apktool/ APKtool下载&#xff1a;https://bitbucket.org/iB…