20 Star 125 Fork 24

木兰编程语言 / mulan-rework

 / 详情

【新人优先】补完增量赋值 *= ^= |= &= /= %= 等等

已完成
任务 拥有者
创建于  
2021-05-18 04:51

如果是第一次听说本项目,请查看 首个完成的悬赏任务 了解合作风格与流程要求。

任务目标

参考此 commit,补完余下的 *= ^= |= &= /= %=等等。逆向工程中的对应语法成分为 aug_assign。

刚完成的 悬赏任务 涉及相同的八个运算符,应该可以复用同一个 对照表,以避免代码重复。

评论 (41)

吴烜 创建了任务
吴烜 修改了描述
吴烜 修改了描述
吴烜 修改了标题
吴烜 修改了描述
吴烜 修改了标题
吴烜 置顶等级设置为
展开全部操作日志

@崔蕴刚 欢迎!如有任何问题,如项目开发环境搭建等等,欢迎随时在此提出,将尽力尽快回应。

384016 zhishi 1578922186 吴烜 拥有者
回复 吴烜 拥有者

@崔蕴刚 请问遇到了什么问题吗?

直接把悬赏链接转发到项目相关的交流群中,会有更多人来参与的呀😀

多谢指教~ 现在有一位合作者进展颇为顺利,非常感谢提供悬赏功能。也请官方给悬赏广场多些流量哈~

@ma-zeyan 欢迎!如有任何问题请随时告知,期待合作。

:blush: 你好,我是 Gitee Reward 的产品负责人,这次接单是在测试过期 Reward 的接单功能哈,不好意思

关于悬赏曝光流量的问题,我们已经推出了新的方案,届时曝光度会大幅度提升,敬请期待哟

幸会。非常期待。

@Bugging 欢迎!有任何问题(包括开发环境搭建等)请随时告知,期待合作。

你好,我用vscode打开了几个py文件发现编辑器提示有问题,我将项目中的所有py文件打开后,一共有297个问题,请问这些会影响运行吗?输入图片说明

你好,我用vscode打开了几个py文件发现编辑器提示有问题,我将项目中的所有py文件打开后,一共有297个问题,请问这些会影响运行吗?输入图片说明

@Bugging 请安装 rply-ulang 依赖库,详见 实现简介

只有rply那个解决了。其他的还是有问题

可否贴一下此命令的输出 $ pip show rply-ulang
另外,请帖一下剩余问题?

输入图片说明

剩余问题太多了,在这里说不太方便,能加一下QQ吗?

QQ号私聊发给你

还请在这讨论吧。方便后人遇到同样问题时参考。

好吧,有一部分是导入模块问题,

拿语法分析器.py来说,有几行是:from 木兰.分析器.xxx import xxx,而这个文件本身就在这个目录下,所以导致出现问题

之前并未特别注意 pylint 警告。可否先确认 运行测试 是否通过?

可以,只有一个文件不能通过

请贴一下错误输出?

没有错误输出,只有一行:失败: 优先级/运算.ul 期望:b'[1, 2, 4, 5, 8]' 实际:b''

由于时差(现在这里快早上九点),回复有时不大及时请见谅。

我刚在 win7 运行了 unittest 没复现此问题。是在修改代码前跑测试就会失败吗?

没有,没有做任何修改

是在运行 python 测试/运行所有.py 时报的错吗?如果是的话,应该不影响此任务,我会尽快修复。

应该已在 c6b7d84 修复,请更新代码。

如首页说明所言,运行所有.py 的测试目的是验证测试代码在原始木兰可执行文件下运行结果一致,暂时并未加到 CI 中,有时发布小版本时会疏忽此测试,抱歉。

@吴烜 请问,输入图片说明
求余赋值: 这里改怎么写?

不知看过 开发上手文档 了吗?如不确定实现方法,可参考逆向工程。比如 %= 在 此行

语法树构建相关方法如 ast.call 等封装在了 此类,请与其他部分一样用 语法树.新节点() 方法构建。

@吴烜 你好,我已完成了*=,^=,/=,%=。还剩下|=,&=,<<=,>>=。你看看还缺什么

请提交一下PR吧,方便一同审阅代码。
你的库 看到三个提交:
输入图片说明
似乎代码不全?也没看到测试用例。
另外,请勿提交 ulang-0.2.2.exe,可以在 .gitignore 中添加此项以避免纳入版本控制。

抱歉,之前没有测试,请问剩下的不用了?

请完成所有运算吧。PR 在创建之后还可以追加 commit,之前是想更方便地查看代码修改内容。
/= 和 %= 两个在逆向中的实现为何这么复杂,不知有头绪吗?

好的,/=,%=已经完成了

请看逆向实现,/= 调用了 __div__,而不是直接用 ast.Div。 __div__环境.py 此处 已有定制。

刚在 ulang-0.2.2.exe 里测了如下(结果不是 3.5 而是 3),请加到测试用例确保通过:

> a=7
> a/=2
> a
3

也就是说/=相当于取整?

是的。可以在 ulang-0.2.2.exe 中尝试。之前的 / 运算的行为也是如此,可以看这个测试用例 运算/除留整.ul

/ 的具体实现 在此,可与逆向一同参考。

也就是说/=相当于取整?

木兰的 除法定义 如下(采自逆向):

def __内置_除(a, b):
    if isinstance(a, int):
        if isinstance(b, int):
            return math.floor(a / b)
    return a / b

就是说:如果是两个整数相除,结果取整;否则并不取整。

@刘天扬 欢迎! 之前的进展可供参考, 有任何问题会尽快回应.

@Shen 你好,如有任何疑问请在此提出,以尽量避免走弯路。

@dp 已完成 !30:*= ^= |= &= /= %=,达成目标和要求。合作愉快!

吴烜 任务状态待办的 修改为已完成
吴烜 置顶等级 修改为不置顶
吴烜 添加了
 
悬赏
标签

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(4)
384016 zhishi 1578922186 8734150 yan fei 0511 admin 1627293148 8249553 ma zeyan admin 1656314487 8396921 python2008 1645495887
Python
1
https://gitee.com/MulanRevive/mulan-rework.git
git@gitee.com:MulanRevive/mulan-rework.git
MulanRevive
mulan-rework
mulan-rework

搜索帮助