踱步狼注释移除状态机算法2019.10

本文详细介绍了踱步狼注释移除状态机算法,包括处理转义字符、行注释、块注释、字符串和正则表达式等情况。通过状态切换和条件判断,确保有效代码被保留,注释被正确移除。
摘要由CSDN通过智能技术生成

踱步狼注释移除,状态机算法:

switch(…):

case 1.转义字符为最优先处理。

入口条件:只要当前字符是,即必须进来处理。
紧跟在转义字符后面的char, 一般我们是无条件写回客户端的,
但如果此时是在处理,诸如块注释,单行注释,多行注释时,我们不写。
这边为了后面处理回车换行方便,对于\后面如果是xd和xa,我们也顺便处理,即写回xd,xa到客户端,
只要\后面还有一个字符,我们都无条件写回客户端。
这是转义符号的处理,最高优先级!

case 2:如果状态是行注释,但是当前字符既不是0xd,也不是0xa,或者是块注释,但当前字符又不是*

那我们直接丢弃

case 3:如是是在处理单引号,但是当前字符又不是’,

或者在处理双引号,但是当前字符又不是“,
或者在处理js正则,但是当前字符又不是/,
那我们全部写回客户端。

case 4.处理"

入口条件:当处在 js正则表达式, 单引号, #if 0注释, 行注释, 块注释, 状态下,不得进入处理。
且当前状态包含double_quotes_doing,或当前字符正好就是"则必须进来处理。
进入此入口的字符,一律写回客户端。
然后我们重新修改状态机标志:
如果之前没有置double_quotes_doi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值