compute.hoon 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. /= * /common/zeke
  2. |%
  3. ++ static
  4. =, constraint-util
  5. ^- static-table-common
  6. |%
  7. :: +name: name of the table
  8. :: +basic-column-names: names for base columns as terms
  9. :: +ext-column-names: names for extension columns as terms
  10. :: +column-names: names for all columns as terms
  11. ++ name %compute
  12. ++ column-names
  13. ^- (list col-name)
  14. ^~(:(weld basic-column-names ext-column-names mega-ext-column-names))
  15. ::
  16. ++ basic-column-names
  17. ^- (list col-name)
  18. :~ %pad
  19. %op0
  20. %op1
  21. %op2
  22. %op3
  23. %op4
  24. %op5
  25. %op6
  26. %op7
  27. %op8
  28. %op9
  29. ==
  30. ::
  31. ++ ext-column-names
  32. ^- (list col-name)
  33. %+ pelt-col %s-size
  34. %+ pelt-col %s-leaf
  35. %+ pelt-col %s-dyck
  36. %+ pelt-col %f-size
  37. %+ pelt-col %f-leaf
  38. %+ pelt-col %f-dyck
  39. %+ pelt-col %e-size
  40. %+ pelt-col %e-leaf
  41. %+ pelt-col %e-dyck
  42. %+ pelt-col %sf1-s-size
  43. %+ pelt-col %sf1-s-leaf
  44. %+ pelt-col %sf1-s-dyck
  45. %+ pelt-col %sf1-f-size
  46. %+ pelt-col %sf1-f-leaf
  47. %+ pelt-col %sf1-f-dyck
  48. %+ pelt-col %sf1-e-size
  49. %+ pelt-col %sf1-e-leaf
  50. %+ pelt-col %sf1-e-dyck
  51. %+ pelt-col %sf2-s-size
  52. %+ pelt-col %sf2-s-leaf
  53. %+ pelt-col %sf2-s-dyck
  54. %+ pelt-col %sf2-f-size
  55. %+ pelt-col %sf2-f-leaf
  56. %+ pelt-col %sf2-f-dyck
  57. %+ pelt-col %sf2-e-size
  58. %+ pelt-col %sf2-e-leaf
  59. %+ pelt-col %sf2-e-dyck
  60. %+ pelt-col %sf3-s-size
  61. %+ pelt-col %sf3-s-leaf
  62. %+ pelt-col %sf3-s-dyck
  63. %+ pelt-col %sf3-f-size
  64. %+ pelt-col %sf3-f-leaf
  65. %+ pelt-col %sf3-f-dyck
  66. %+ pelt-col %sf3-e-size
  67. %+ pelt-col %sf3-e-leaf
  68. %+ pelt-col %sf3-e-dyck
  69. %+ pelt-col %f-h-size
  70. %+ pelt-col %f-h-leaf
  71. %+ pelt-col %f-h-dyck
  72. %+ pelt-col %f-t-size
  73. %+ pelt-col %f-t-leaf
  74. %+ pelt-col %f-t-dyck
  75. %+ pelt-col %f-th-size
  76. %+ pelt-col %f-th-leaf
  77. %+ pelt-col %f-th-dyck
  78. %+ pelt-col %f-tt-size
  79. %+ pelt-col %f-tt-leaf
  80. %+ pelt-col %f-tt-dyck
  81. %+ pelt-col %f-tth-size
  82. %+ pelt-col %f-tth-leaf
  83. %+ pelt-col %f-tth-dyck
  84. %+ pelt-col %f-ttt-size
  85. %+ pelt-col %f-ttt-leaf
  86. %+ pelt-col %f-ttt-dyck
  87. %+ pelt-col %fcons-inv
  88. ~
  89. ::
  90. ++ mega-ext-column-names
  91. ^- (list col-name)
  92. %+ pelt-col %ln
  93. %+ pelt-col %sfcons-inv
  94. %+ pelt-col %opc
  95. %+ pelt-col %stack-kv
  96. %+ pelt-col %decode-mset
  97. %+ pelt-col %op0-mset
  98. ~
  99. ::
  100. ++ variables
  101. ^- (map col-name mp-mega)
  102. (make-vars:tlib column-names)
  103. ::
  104. ++ terminal-names
  105. ^- (list col-name)
  106. %+ pelt-col %compute-s-size
  107. %+ pelt-col %compute-s-leaf
  108. %+ pelt-col %compute-s-dyck
  109. %+ pelt-col %compute-f-size
  110. %+ pelt-col %compute-f-leaf
  111. %+ pelt-col %compute-f-dyck
  112. %+ pelt-col %compute-e-size
  113. %+ pelt-col %compute-e-leaf
  114. %+ pelt-col %compute-e-dyck
  115. %+ pelt-col %compute-decode-mset
  116. %+ pelt-col %compute-op0-mset
  117. ~
  118. --
  119. --