fp.tin 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #nop vim: set filetype=tt:;
  2. /*
  3. 本文件属于 PaoTin++ 的一部分。
  4. PaoTin++ © 2020~2022 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 享有并保留一切法律权利
  5. 你可以在遵照 GPLv3 协议的基础之上使用、修改及重新分发本程序。
  6. */
  7. #function {filter} {
  8. #local table {%1};
  9. #local cond {%2};
  10. #replace {cond} {KEY} {$$key};
  11. #replace {cond} {VALUE} {$$value};
  12. #local newTable {};
  13. #local key {};
  14. #foreach {*table[]} {key} {
  15. #local value {$table[$key]};
  16. #line sub var #if { $cond } {
  17. #cat newTable {{$key}{$value}};
  18. };
  19. };
  20. #return {$newTable}
  21. };
  22. #function {filterMap} {
  23. #local table {%1};
  24. #local cond {%2};
  25. #local body {%3};
  26. #replace {cond} {KEY} {$$key};
  27. #replace {cond} {VALUE} {$$value};
  28. #replace {body} {KEY} {$$key};
  29. #replace {body} {VALUE} {$$value};
  30. #local newTable {};
  31. #local key {};
  32. #foreach {*table[]} {key} {
  33. #local value {$table[$key]};
  34. #line sub var #if { $cond } {
  35. #cat newTable {{$key}{$body}};
  36. };
  37. };
  38. #return {$newTable}
  39. };
  40. #function {mapIf} {
  41. #local table {%1};
  42. #local cond {%2};
  43. #local body {%3};
  44. #replace {cond} {KEY} {$$key};
  45. #replace {cond} {VALUE} {$$value};
  46. #replace {body} {KEY} {$$key};
  47. #replace {body} {VALUE} {$$value};
  48. #local newTable {};
  49. #local key {};
  50. #foreach {*table[]} {key} {
  51. #local value {$table[$key]};
  52. #line sub var {
  53. #if { $cond } {
  54. #cat newTable {{$key}{$body}};
  55. };
  56. #else {
  57. #cat newTable {{$key}{$value}};
  58. };
  59. };
  60. };
  61. #return {$newTable}
  62. };
  63. #function {map} {
  64. #local table {%1};
  65. #local body {%2};
  66. #replace {body} {KEY} {$$key};
  67. #replace {body} {VALUE} {$$value};
  68. #local newTable {};
  69. #local key {};
  70. #foreach {*table[]} {key} {
  71. #local value {$table[$key]};
  72. #cat newTable {{$key}{$body}};
  73. };
  74. #return {$newTable}
  75. };