⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flip-flop

📁 UNIX下perl实现代码
💻
字号:
PP(pp_range){    if (GIMME == G_ARRAY)        return NORMAL;    if (SvTRUEx(PAD_SV(PL_op->op_targ)))	return cLOGOP->op_other;    else	return NORMAL;}pp_range is a LOGOP.In list context, it just returns op_next.In scalar context it checks the truth of targ and returnsop_other if true, op_next if false.flip is an UNOP.It "looks after" its child which is always a pp_range LOGOP.In list context, it just returns the child's op_other.In scalar context, there are three possible outcomes:  (1) set child's targ to 1, our targ to 1 and return op_next.  (2) set child's targ to 1, our targ to 0, sp-- and return child's op_other.  (3) Blank targ and  TOPs and return op_next.Case 1 happens for a "..." with a matching lineno... or true TOPs.Case 2 happens for a ".." with a matching lineno... or true TOPs.Case 3 happens for a non-matching lineno or false TOPs.               $a = lhs..rhs;        ,------->  range        ^         /     \        |    true/       \false        |       /         \   first|     lhs        rhs        |      \   first   /        ^--- flip <----- flop                 \       /                  \     /                  sassign/* range */if (SvTRUE(curpad[op->op_targ]))    goto label(op_other);/* op_next */.../* flip *//* For "..." returns op_next. For ".." returns op_next or op_first->op_other *//* end of basic block */goto out;label(range op_other):.../* flop */out:...

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -