作品说明
SimL语法:
注释:# 行注释;#** 块注释 **# 语句以 ; 结尾
类型:数字 3.14|字符串 "…" 或 '…'(转义 \ ' " \n \t)|布尔 true/false|列表 [1,2]|对象 {a:1}
变量:let x = 表达式; 赋值 x = 表达式;
运算:
算术 + - * /(+ 可拼字符串);% 取余;// 整除;** 幂(右结合)
比较 == != < > <= >=(真1 假0)
成员 in:子串 in 字符串、值 in 列表、键 in 对象
逻辑 ! && ||;位 & | ^ ~ << >>
三目 条件 ? a : b;一元 - 负号
控制流:
if (条件) { } else if (条件) { } else { }
while (条件) { }
for (初始化; 条件; 步进) { }
for [键, 值] in 列表/对象 { }(仅循环内有效)
函数:function 名(a, b=默认) { return 值; } 支持递归、命名参数 名=值
列表:a[i](从0,支持负索引)、a[i][j] 多维、a[1]=9
操作说明
切片:s[start:end:gap],左闭右开,负步长反转(s[::-1])
对象:p.name 或 p["name"] 读写;p.keys 键列表;p.values 值列表
内置函数(不可重定义):
print(v1,v2,...,end="\n") input([提示],end="\n") len(v) push(列表,v) int(x) 向下取整 type(v) 返回 number/string/boolean/list/object/function/NaN/infinity/undefined
内置库(库名.函数):
random()、random.int(a,b) [a,b]、random.float(a,b) [a,b)、random.choice(列表)
number.int(v)、number.float(v)、number.infinity()、number.NaN()
string.value(v)(任意类型转字符串)
Boolean.value(v)(0/空串/undefined/null 为假,其余为真)
——————
低质的语言解释器,实现的内容并不多