littleshame / AIL

the AIL Programming Language

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AIL 2.1 alpha 1

AIL badge python badge version badge license badge

AIL 是一门运行在 Python 虚拟机上的面向对象的编程语言。支持 Python 的诸多特性的同时,也拥有 AIL 自身的特性。

注意:从 2.1 版本开始,AIL 自带的虚拟机和编译器已经被禁用,默认启用 Python 兼容模式

Hello World

Hello World with one statement

print 'Hello World';

..or..

console.writeln('Hello World!');

Hello World in lambda

(() -> console.writeln('Hello World'))();

Hello World in function

func helloWorld() {
    print "Hello World!";
}

helloWorld();

Hello World in anonymous function

(func () {
    print "Hello World!";
})();

Hello World in class

class Hello {
    func helloWorld(self) {
        print "Hello World!";
    }
}

Hello().helloWorld();

更多例子

代码均已在 AIL 2.1 alpha 0 下测试通过

斐波那契数列
func fib(n) {
    if n == 1 or n == 2 {
        return 1;
    } elif n >= 2 {
        return fib(n - 2) + fib(n - 1);
    }
}
单例模式
class CandyFactory {
    __instance = null;

    func __new__(cls) {
        if cls.__instance == null {
            instance = super().__new__(cls);
            cls.__instance = instance;
        }
        return cls.__instance;
    }
}


factory_a = CandyFactory();
factory_b = CandyFactory();

print id(factory_a), id(factory_b), factory_a === factory_b;

VIM 语法高亮支持

AIL 为 vim 专门编写了其语法高亮文件,写代码的时候妈妈再也不会担心敲错关键字了!

提供了如下高亮支持:

  • 关键字
  • 字符串、数字
  • 基本类型注解
  • AIL 内置函数、常量 (并未高亮 Python 的内置函数与常量)

vim highlight

配置

  1. plugin/vim/syntax/ail.vimplugin/vim/ftdetect/ail.vim 分别复制到 {VIM_HOME}/syntax/{VIM_HOME}/ftdetect/

  2. 重新启动 vim 即可

安装 AIL

运行 AIL 事先准备好的 setup.py 可以非常快速地在您的电脑上配置好 AIL。

python setup.py install

在终端中输入:

ail

或者

python3 -m ail

Windows下应确保 {PYTHON_HOME}/Script/ 已添加到 PATH 中 Linux/Mac OS 下应确保当前用户的 bin 目录已添加到 PATH 中

若进入 AIL 的交互环境,则安装成功。

文档

AIL 的文档仍然在完善中。具体的进度可以在 /docs/ 中查看。

AIL 语句

文档 AIL语句 简要地描述了 AIL 的语句

AIL 代码转换细节

想要了解 AIL 代码是如何转换成 Python 语法树的,可以查看:

ail_in_python

tree.txt

这是最早期 AIL 语法分析器生成的语法树

对应的程序应该可以在早期 commit 中找到

About

the AIL Programming Language

License:GNU General Public License v3.0


Languages

Language:Python 95.8%Language:Vim Script 4.0%Language:Shell 0.1%Language:Batchfile 0.0%