因为erlang陈年关键字query导致的一个bug

某天使用erlang的重构工具wrangler进行重构的时候,发现有一个文件里的代码总是没有被重构。感到很蛋疼的我以为莫非是我的重构脚本出问题了?于是仔细检查,没有问题。那就是wrangler出问题了?然后查看了wrangler返回的结果,发现是在解析该文件的时候出错了,即parse的时候出现错误,返回了解析出错。好吧,那我们来调试wrangler。

wrangler代码简单分析

wrangler是用erlang写的erlang重构服务,他启动之后会在epmd注册一个wrangler服务,我们重构的时候只需要告诉他,在哪个文件的哪一行,我想要重构成什么即可。举个例子,比如我们想重明明某个变量,只需要通过erlang原生rpc调用

wrangler_refacs:rename_var(FileName, Line, Col, NewName, SearchPaths, Context, TabWidth) 

(由于版本不同,该函数名称可能会有差异)

即可完成预重构,此时会创造一个重构好的副本,而不是直接修改源文件。然后发送一个confirm指令,将重构
Legacy in the grammar
Try to use "query" as an atom in Erlang, e.g. {query, "SELECT * FROM foobar"}. What happens?
syntax error before:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值