AIL 是一门开源的运行在 Python 虚拟机上的面向对象的编程语言。支持 Python 的大多数特性的同时,还额外增加了如 match 表达式,匿名函数,名称空间等 AIL 自身的特性。
具有完整标准库的 Python3.8
推荐使用 cpython 解释器,其他 Python 解释器并未进行过测试。
print 'Hello World';
..or..
console.writeln('Hello World!');
(() -> console.writeln('Hello World'))();
func helloWorld() {
print "Hello World!";
}
helloWorld();
(func () {
print "Hello World!";
})();
class Hello {
func helloWorld(self) {
print "Hello World!";
}
}
Hello().helloWorld();
func fib(n) {
if n == 1 or n == 2 {
return 1;
} elif n >= 2 {
return fib(n - 2) + fib(n - 1);
}
}
以上例子均在 AIL 3.0 alpha 0 版本下测试通过
以下例子均已在 AIL 2.3 版本下通过编译
for i = 0, j = len(x); i < len(x); i += 1, j -= 1 {
// ...
}
for {
// forever...
}
foreach i in range(100) {
// ...
}
namespace Vegetables {
cabbage = 'cabbage';
leaf_mustard = 'mustard';
}
namespace Fruits {
apple = 'apple';
tomato = 'tomato';
}
print 'An %s a day keeps the doctor away' % Fruits.apple;
name = match lang_name {
'Python': 'py',
'Java': 'java',
'AIL': 'ail',
}
(match point {
Point! { x: 5, y: 6 }: () -> {
// handle it...
},
else: () -> {
// handle it...
}
})();
a = 10;
func f() {
a := a;
}
在 AIL 中可以直接导入 Python 模块,使用类似 Python 的 import 语句:
import! os.path as ospath;
import! numpy as np;
from PIL import Image;
Image.open('klee.jpg').show();
亦或是在 AIL 程序中直接插入 Python 代码:
func gen(n) {
#return [x**n for x in range(n)]
}
print gen(5);
运行 AIL 事先准备好的 setup.py 可以非常快速地在您的电脑上配置好 AIL。
python3 setup.py install
在终端中输入:
ail
或者
python3 -m ail
Windows下应确保 {PYTHON_HOME}/Script/ 已添加到 PATH 中 Linux/Mac OS 下应确保当前用户的 bin 目录已添加到 PATH 中
若进入 AIL 的交互环境,则安装成功。
AIL 的文档仍然在完善中。具体的进度可以在 /docs/
中查看。
文档 AIL语句 简要地描述了 AIL 的语句
AIL 为 vim 专门编写了其语法高亮文件,写代码的时候妈妈再也不会担心敲错关键字了!
提供了如下高亮支持:
- 关键字
- 字符串、数字
- 基本类型注解
- AIL 与 Python 内置函数、常量
- 将 plugin/vim/syntax/ail.vim 与 plugin/vim/ftdetect/ail.vim 分别复制到 {VIM_HOME}/syntax/ 和 {VIM_HOME}/ftdetect/
- 重新启动 vim 即可
这是最早期 AIL 语法分析器生成的语法树
对应的程序应该可以在早期 commit 中找到