宋子桓写的第一个语言(Gwarf Language),存在内存泄漏。
|
5 жил өмнө | |
---|---|---|
demo | 5 жил өмнө | |
inter | 5 жил өмнө | |
log | 5 жил өмнө | |
mem | 5 жил өмнө | |
paser | 5 жил өмнө | |
.gitignore | 5 жил өмнө | |
LICENSE | 5 жил өмнө | |
README.md | 5 жил өмнө | |
gwarf.c | 5 жил өмнө |
import 'file' as xxx 导入模块并且明明为xxx
include 'file' 包含模块,等同于python的 from xxx import *
while 条件循环
for 循环
for i in xxx 遍历
if 条件分支
block 普通代码块
try 异常捕获
except 异常捕获
raise 诱发错误[抛出class时会转换为object, 需要指定[ErrorInfo]
throw 抛出错误
break n 跳出n层循环代码快[无视for循环第三表达式]
broken n 跳出n层代码块[无视for循环第三表达式]
continue n 重新执行循环代码快
continued n 重新执行代码块
restart n 重新执行循环代码块[无视条件]
restarted n 重新执行代码块[无视条件]
注意: 上述n不指定则默认为0
rego if马上跳到下一个条件的代码块并执行[无视条件]
rewent 当前if代码块执行完成后跳到下一个代码块执行
注意: else层的rego和rewent需要可以遗传
default <var name> n,<var name> n 指定变量默认调用层级, 也可以把<var name> n写为[n]<var name>
global <var name>,<var name>... 指定变量为全局变量
nonlocal <var name>,<var name>... 指定变量为非本地变量
+ - * / 加减乘除运算符
** ^ 指数运算
log 对数运算
sqrt 根试运算
= 赋值运算[左边为变量、索引(a[1])、和成员(a.name)]
True False bool值[本质为bool对象的实例]
None 空值[本质就是空值]
class 定义类
def 定义函数(函数本身就是function的实例)
return x n 函数返回值x,返回n层
'xxxx' "xxxx" 字符串
a,b,\* = 1,2,3,4,5,6
。也支持形参表,但不支持实参表。(xxx.zzz)()
的方式,为优先级错误[已经修复]。var_list
,也不会记录var_list
。var_list
的标签来判断to_error
和to_object
不用find_var
,在global的时候就设定好GWARF_value
的访问权限降低到base
,除非是self=true(1)的模式。<==
和 ==>
为非短路逻辑运算:蕴含<:=
和 =:>
为短路逻辑运算:蕴含<=>
为逻辑运算:同或门!==
为逻辑运算:异或门 and
和 or
为非短路逻辑运算符:与,或GWARF_result
to_object
会捕获异常的bug5 ** -2
而可以读取5 ** (-2)
的bugexcept
,except as
,else
,finally
为可选语句a.__iter__.__next__
会出现内存错误, 已经修复,原因是: 内置函数无self属性a.__iter__().__next__()
会出现解析错误, 已经修复,调整了.
运算符和call_back
为同级优先级__value__
无法调用的问题:原因是注册函数的时候使用了数字而不是枚举体[现在,使用{__value__func, 1}
取代了数字{3, 1}
]isinherited
检查继承关系,isinstance
检查是否为类的实例(忽略继承),isbelong
检查是否为类的实例, type
检查数据类型。
类型转换(list, str, int之间的转换)
魔法方法:__eq__(用于特殊赋值),__int__,__str__,__double__,__repo__,__list__,__tuple__,__dict__,__key__,__in__
魔法属性:__name__,__id__
数据类型:set(),link(),file()
内置类:range,exp(列表推导试)
内置函数:exit()[报出错误ExitException(Systemctl)], type()]
@装饰器语法
内存控制:控制var
链表,控制哈希表
,控制var_list
多重继承优化:super().__init__()
抽象类和接口类(纯抽象类)
goto语句
宏定义
yield生成器和列表推导试
模块化导入,读取__init__.gwf
文件
优化错误输出[行号]
规范内置函数的类型,使用枚举体而不是数组
最后更新时间 : 2020年05月09日 广州