| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- #nop vim: set filetype=tt:;
- /*
- 本文件属于 PaoTin++ 的一部分。
- PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 享有并保留一切法律权利
- 你可以在遵照 GPLv3 协议的基础之上使用、修改及重新分发本程序。
- */
- #nop 本文件是 xtintin 的一部分,实现了一些布尔运算函数;
- ///=== {
- ///// 布尔运算函数:
- //
- // #@ true
- // 永远为真。
- //
- // #@ false
- // 永远为假。
- // };
- #func {true} {#return 1};
- #func {false} {#return 0};
- ///=== {
- // #@ isTrue <值>
- // 判断一个值是否为字符串 true 或者整数值 1,如果是则返回真,否则反之。
- //
- // #@ isFalse <值>
- // 判断一个值是否为字符串 false 或者整数值 0,如果是则返回真,否则反之。
- // };
- #func {isTrue} {
- #if { "%0" == "{true|1}" } {
- #return 1;
- };
- #else {
- #return 0;
- };
- };
- #func {isFalse} {
- #if { "%0" == "{false|0}" } {
- #return 1;
- };
- #else {
- #return 0;
- };
- };
- ///=== {
- // #@ allTrue <值1> [<值2> ...]
- // 判断多个值,是否全部为真,如果是则返回真,否则反之。
- // };
- #func {allTrue} {
- #local value {};
- #foreach {%0} {value} {
- #if @isFalse{$value} {
- #return 0;
- };
- };
- #return 1;
- };
- ///=== {
- // #@ allFalse <值1> [<值2> ...]
- // 判断多个值,是否全部为假,如果是则返回真,否则反之。
- // };
- #func {allFalse} {
- #local value {};
- #foreach {%0} {value} {
- #if @isTrue{$value} {
- #return 0;
- };
- };
- #return 1;
- };
- ///=== {
- // #@ anyTrue <值1> [<值2> ...]
- // 判断多个值,是否有任意一个为真,如果是则返回真,否则反之。
- // };
- #func {anyTrue} {
- #if @allFalse{%0} {
- #return 0;
- };
- #else {
- #return 1;
- };
- };
- ///=== {
- // #@ anyFalse <值1> [<值2> ...]
- // 判断多个值,是否有任意一个为假,如果是则返回真,否则反之。
- // };
- #func {anyFalse} {
- #if @allTrue{%0} {
- #return 0;
- };
- #else {
- #return 1;
- };
- };
- ///=== {
- // #@ if <条件> <值1> [<值2>]
- // 三元运算符。判断条件,如果条件成立则给出值1,否则给出值2,如果值2未提供则视同为空字符串。
- // };
- #func {if} {
- #local cond {%1};
- #local then {%2};
- #local else {%3};
- #if { $cond } {
- #return {$then};
- };
- #else {
- #return {$else};
- };
- };
- ///=== {
- // #@ ifEqual <值1> <值2> <结果1> <结果2>
- // 判断值1和值2是否相等,如果相等则返回结果1,否则返回结果2。
- // };
- #func {ifEqual} {
- #local left {%1};
- #local right {%2};
- #local then {%3};
- #local else {%4};
- #if { "$left" === "$right" } {
- #return {$then};
- };
- #else {
- #return {$else};
- };
- };
- ///=== {
- // #@ ifMatch <值> <模式> <结果1> <结果2>
- // 判断值和模式是否匹配,如果匹配则返回结果1,否则返回结果2。
- // };
- #func {ifMatch} {
- #local value {%1};
- #local pattern {%2};
- #local then {%3};
- #local else {%4};
- #if { "$value" == "$pattern" } {
- #return {$then};
- };
- #else {
- #return {$else};
- };
- };
- ///=== {
- // #@ ifEmpty <值> <结果1> <结果2>
- // 判断值是否为空,如果是则返回结果1,否则返回结果2。
- // };
- #func {ifEmpty} {
- #local value {%1};
- #local then {%2};
- #local else {%3};
- #if { "$value" === "" } {
- #return {$then};
- };
- #else {
- #return {$else};
- };
- };
|