bool.tin 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. #nop vim: set filetype=tt:;
  2. /*
  3. 本文件属于 PaoTin++ 的一部分。
  4. PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 享有并保留一切法律权利
  5. 你可以在遵照 GPLv3 协议的基础之上使用、修改及重新分发本程序。
  6. */
  7. #nop 本文件是 xtintin 的一部分,实现了一些布尔运算函数;
  8. ///=== {
  9. ///// 布尔运算函数:
  10. //
  11. // #@ true
  12. // 永远为真。
  13. //
  14. // #@ false
  15. // 永远为假。
  16. // };
  17. #func {true} {#return 1};
  18. #func {false} {#return 0};
  19. ///=== {
  20. // #@ isTrue <值>
  21. // 判断一个值是否为字符串 true 或者整数值 1,如果是则返回真,否则反之。
  22. //
  23. // #@ isFalse <值>
  24. // 判断一个值是否为字符串 false 或者整数值 0,如果是则返回真,否则反之。
  25. // };
  26. #func {isTrue} {
  27. #if { "%0" == "{true|1}" } {
  28. #return 1;
  29. };
  30. #else {
  31. #return 0;
  32. };
  33. };
  34. #func {isFalse} {
  35. #if { "%0" == "{false|0}" } {
  36. #return 1;
  37. };
  38. #else {
  39. #return 0;
  40. };
  41. };
  42. ///=== {
  43. // #@ allTrue <值1> [<值2> ...]
  44. // 判断多个值,是否全部为真,如果是则返回真,否则反之。
  45. // };
  46. #func {allTrue} {
  47. #local value {};
  48. #foreach {%0} {value} {
  49. #if @isFalse{$value} {
  50. #return 0;
  51. };
  52. };
  53. #return 1;
  54. };
  55. ///=== {
  56. // #@ allFalse <值1> [<值2> ...]
  57. // 判断多个值,是否全部为假,如果是则返回真,否则反之。
  58. // };
  59. #func {allFalse} {
  60. #local value {};
  61. #foreach {%0} {value} {
  62. #if @isTrue{$value} {
  63. #return 0;
  64. };
  65. };
  66. #return 1;
  67. };
  68. ///=== {
  69. // #@ anyTrue <值1> [<值2> ...]
  70. // 判断多个值,是否有任意一个为真,如果是则返回真,否则反之。
  71. // };
  72. #func {anyTrue} {
  73. #if @allFalse{%0} {
  74. #return 0;
  75. };
  76. #else {
  77. #return 1;
  78. };
  79. };
  80. ///=== {
  81. // #@ anyFalse <值1> [<值2> ...]
  82. // 判断多个值,是否有任意一个为假,如果是则返回真,否则反之。
  83. // };
  84. #func {anyFalse} {
  85. #if @allTrue{%0} {
  86. #return 0;
  87. };
  88. #else {
  89. #return 1;
  90. };
  91. };
  92. ///=== {
  93. // #@ if <条件> <值1> [<值2>]
  94. // 三元运算符。判断条件,如果条件成立则给出值1,否则给出值2,如果值2未提供则视同为空字符串。
  95. // };
  96. #func {if} {
  97. #local cond {%1};
  98. #local then {%2};
  99. #local else {%3};
  100. #if { $cond } {
  101. #return {$then};
  102. };
  103. #else {
  104. #return {$else};
  105. };
  106. };