9 Star 46 Fork 4

Junruoyu-Zheng / Ligral

 / 详情

增加函数、分支、循环、类的支持

已关闭
拥有者
创建于  
2020-12-23 00:12

为扩展 ligral 功能,考虑在常数声明之外,新增对函数、分支、循环、类的支持。在运行 simulink 之前,用户经常会在 matlab 脚本中进行一些参数配置。如果有一个图灵完备且方便的脚本语言能为 ligral 仿真提供参数计算,会方便很多。把这些语法融合进 ligral 是个不错的选择。

第一步

支持内置函数。

  • 新建Function类,在Functions命名空间实现一些基本的函数,如sinlqr等等。
  • 添加调用函数语法,func(params)以调用内置函数。

第二步

支持循环和分支。语法如下:

if (BOOL_EXPR)
    STATEMENTS;
end

for (ITER: COLLECTION)
    STATEMENTS;
end

while (BOOL_EXPR)
    STATEMENTS;
end

第三步

支持自定义函数。函数如果没有声明返回值类型,则没有返回值。参数也必须声明返回值。

def FUNC_NAME: TYPE(PARAM: TYPE, ...)
    STATEMENTS;
end

第四步

支持赋值语句VAR_NAME = VAR_EXPR。赋值语句仅出现在函数内部,一是没有必要出现在函数外部,二是语法上可能和连接语句存在歧义(如果改成 LR(1) 可能就不会有问题)。

第五步

支持类的定义。类的参数会自动成为类的成员,此外也可以自行定义成员。在实例化时会执行类内部的全部代码,相当于解开构造函数,构造函数的参数就是类的参数。

class CLS_NAME: BASE_NAME(PARAM: TYPE, ...)
    STATEMENTS; ...
    def FUNC_NAME(...
        STATEENTS;
    end
end

评论 (1)

Junruoyu-Zheng 创建了任务
Junruoyu-Zheng 关联仓库设置为Junruoyu-Zheng/Ligral
Junruoyu-Zheng 添加了
 
feature
标签
Junruoyu-Zheng 任务状态待办的 修改为已取消
Junruoyu-Zheng 任务状态已取消 修改为待办的
展开全部操作日志

无需实现,可以调用python解决。见issue

Junruoyu-Zheng 任务状态待办的 修改为已取消

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(1)
C#
1
https://gitee.com/junruoyu-zheng/ligral.git
git@gitee.com:junruoyu-zheng/ligral.git
junruoyu-zheng
ligral
Ligral

搜索帮助