stupidedi 1.3.23 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2005) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -4
  3. data/Rakefile +17 -92
  4. data/bin/edi-ed +8 -12
  5. data/bin/edi-obfuscate +8 -9
  6. data/bin/edi-pp +31 -25
  7. data/doc/{Transcribing.md → Defining.md} +0 -0
  8. data/doc/{unwritten/Parsing.md → Parsing.md} +0 -0
  9. data/doc/{unwritten/Tokenizing.md → Tokenizing.md} +0 -0
  10. data/doc/{unwritten/Validating.md → Validating.md} +0 -0
  11. data/lib/ruby/array.rb +1 -4
  12. data/lib/ruby/blank.rb +0 -3
  13. data/lib/ruby/exception.rb +13 -33
  14. data/lib/ruby/hash.rb +0 -2
  15. data/lib/ruby/module.rb +1 -3
  16. data/lib/ruby/object.rb +0 -13
  17. data/lib/ruby/string.rb +12 -3
  18. data/lib/ruby/to_d.rb +20 -25
  19. data/lib/ruby/to_date.rb +0 -3
  20. data/lib/ruby/to_time.rb +0 -3
  21. data/lib/ruby/try.rb +0 -3
  22. data/lib/stupidedi.rb +27 -41
  23. data/lib/stupidedi/builder.rb +3 -22
  24. data/lib/stupidedi/color.rb +4 -6
  25. data/lib/stupidedi/config.rb +77 -69
  26. data/lib/stupidedi/config/code_list_config.rb +0 -2
  27. data/lib/stupidedi/config/editor_config.rb +0 -2
  28. data/lib/stupidedi/config/functional_group_config.rb +3 -2
  29. data/lib/stupidedi/config/interchange_config.rb +5 -6
  30. data/lib/stupidedi/config/transaction_set_config.rb +17 -48
  31. data/lib/stupidedi/contrib.rb +41 -6
  32. data/lib/stupidedi/editor.rb +0 -3
  33. data/lib/stupidedi/editor/00401.rb +0 -3
  34. data/lib/stupidedi/editor/004010.rb +4 -8
  35. data/lib/stupidedi/editor/004010/N4.rb +0 -4
  36. data/lib/stupidedi/editor/00501.rb +0 -3
  37. data/lib/stupidedi/editor/005010.rb +5 -9
  38. data/lib/stupidedi/editor/005010/N4.rb +0 -4
  39. data/lib/stupidedi/editor/X12.rb +0 -5
  40. data/lib/stupidedi/editor/X222-HC837.rb +0 -5
  41. data/lib/stupidedi/editor/abstract_ed.rb +0 -2
  42. data/lib/stupidedi/editor/claim_ack.rb +0 -2
  43. data/lib/stupidedi/editor/implementation_ack.rb +2 -3
  44. data/lib/stupidedi/editor/interchange_ack.rb +0 -2
  45. data/lib/stupidedi/editor/result.rb +1 -6
  46. data/lib/stupidedi/editor/result_set.rb +1 -3
  47. data/lib/stupidedi/editor/transaction_set_ed.rb +23 -19
  48. data/lib/stupidedi/editor/transmission_ed.rb +0 -3
  49. data/lib/stupidedi/either.rb +0 -5
  50. data/lib/stupidedi/exceptions/invalid_element_error.rb +0 -2
  51. data/lib/stupidedi/exceptions/invalid_schema_error.rb +0 -2
  52. data/lib/stupidedi/exceptions/output_error.rb +0 -2
  53. data/lib/stupidedi/exceptions/parse_error.rb +0 -2
  54. data/lib/stupidedi/exceptions/stupidedi_error.rb +0 -2
  55. data/lib/stupidedi/exceptions/tokenize_error.rb +0 -2
  56. data/lib/stupidedi/exceptions/zipper_error.rb +0 -2
  57. data/lib/stupidedi/guides.rb +7 -3
  58. data/lib/stupidedi/inspect.rb +1 -4
  59. data/lib/stupidedi/interchanges.rb +11 -0
  60. data/lib/stupidedi/interchanges/00200.rb +12 -0
  61. data/lib/stupidedi/interchanges/00200/element_defs.rb +104 -0
  62. data/lib/stupidedi/interchanges/00200/interchange_def.rb +59 -0
  63. data/lib/stupidedi/interchanges/00200/segment_defs.rb +12 -0
  64. data/lib/stupidedi/interchanges/00200/segment_defs/IEA.rb +17 -0
  65. data/lib/stupidedi/interchanges/00200/segment_defs/ISA.rb +31 -0
  66. data/lib/stupidedi/interchanges/00200/segment_defs/TA1.rb +20 -0
  67. data/lib/stupidedi/interchanges/00300.rb +12 -0
  68. data/lib/stupidedi/interchanges/00300/element_defs.rb +105 -0
  69. data/lib/stupidedi/interchanges/00300/interchange_def.rb +59 -0
  70. data/lib/stupidedi/interchanges/00300/segment_defs.rb +12 -0
  71. data/lib/stupidedi/interchanges/00300/segment_defs/IEA.rb +17 -0
  72. data/lib/stupidedi/interchanges/00300/segment_defs/ISA.rb +31 -0
  73. data/lib/stupidedi/interchanges/00300/segment_defs/TA1.rb +20 -0
  74. data/lib/stupidedi/interchanges/00400.rb +12 -0
  75. data/lib/stupidedi/interchanges/00400/element_defs.rb +97 -0
  76. data/lib/stupidedi/interchanges/00400/interchange_def.rb +59 -0
  77. data/lib/stupidedi/interchanges/00400/segment_defs.rb +12 -0
  78. data/lib/stupidedi/interchanges/00400/segment_defs/IEA.rb +17 -0
  79. data/lib/stupidedi/interchanges/00400/segment_defs/ISA.rb +31 -0
  80. data/lib/stupidedi/interchanges/00400/segment_defs/TA1.rb +20 -0
  81. data/lib/stupidedi/interchanges/00401.rb +12 -0
  82. data/lib/stupidedi/interchanges/00401/element_defs.rb +96 -0
  83. data/lib/stupidedi/interchanges/00401/interchange_def.rb +59 -0
  84. data/lib/stupidedi/interchanges/00401/segment_defs.rb +12 -0
  85. data/lib/stupidedi/interchanges/00401/segment_defs/IEA.rb +17 -0
  86. data/lib/stupidedi/interchanges/00401/segment_defs/ISA.rb +31 -0
  87. data/lib/stupidedi/interchanges/00401/segment_defs/TA1.rb +20 -0
  88. data/lib/stupidedi/interchanges/00501.rb +12 -0
  89. data/lib/stupidedi/interchanges/00501/element_defs.rb +130 -0
  90. data/lib/stupidedi/interchanges/00501/interchange_def.rb +59 -0
  91. data/lib/stupidedi/interchanges/00501/segment_defs.rb +12 -0
  92. data/lib/stupidedi/interchanges/00501/segment_defs/IEA.rb +17 -0
  93. data/lib/stupidedi/interchanges/00501/segment_defs/ISA.rb +31 -0
  94. data/lib/stupidedi/interchanges/00501/segment_defs/ISB.rb +15 -0
  95. data/lib/stupidedi/interchanges/00501/segment_defs/ISE.rb +15 -0
  96. data/lib/stupidedi/interchanges/00501/segment_defs/TA1.rb +20 -0
  97. data/lib/stupidedi/interchanges/00501/segment_defs/TA3.rb +15 -0
  98. data/lib/stupidedi/interchanges/element_types.rb +11 -0
  99. data/lib/stupidedi/interchanges/element_types/separator_val.rb +79 -0
  100. data/lib/stupidedi/interchanges/element_types/special_val.rb +48 -0
  101. data/lib/stupidedi/parser.rb +32 -0
  102. data/lib/stupidedi/parser/builder_dsl.rb +289 -0
  103. data/lib/stupidedi/parser/constraint_table.rb +488 -0
  104. data/lib/stupidedi/parser/generation.rb +147 -0
  105. data/lib/stupidedi/parser/identifier_stack.rb +248 -0
  106. data/lib/stupidedi/parser/instruction.rb +112 -0
  107. data/lib/stupidedi/parser/instruction_table.rb +222 -0
  108. data/lib/stupidedi/parser/navigation.rb +786 -0
  109. data/lib/stupidedi/parser/state_machine.rb +62 -0
  110. data/lib/stupidedi/parser/states/abstract_state.rb +325 -0
  111. data/lib/stupidedi/parser/states/failure_state.rb +69 -0
  112. data/lib/stupidedi/parser/states/functional_group_state.rb +98 -0
  113. data/lib/stupidedi/parser/states/initial_state.rb +62 -0
  114. data/lib/stupidedi/parser/states/interchange_state.rb +93 -0
  115. data/lib/stupidedi/parser/states/loop_state.rb +80 -0
  116. data/lib/stupidedi/parser/states/table_state.rb +94 -0
  117. data/lib/stupidedi/parser/states/transaction_set_state.rb +118 -0
  118. data/lib/stupidedi/parser/states/transmission_state.rb +59 -0
  119. data/lib/stupidedi/parser/tokenization.rb +195 -0
  120. data/lib/stupidedi/reader.rb +0 -2
  121. data/lib/stupidedi/reader/input.rb +0 -3
  122. data/lib/stupidedi/reader/input/abstract_input.rb +4 -6
  123. data/lib/stupidedi/reader/input/delegated_input.rb +0 -5
  124. data/lib/stupidedi/reader/input/file_input.rb +10 -11
  125. data/lib/stupidedi/reader/position.rb +13 -8
  126. data/lib/stupidedi/reader/result.rb +5 -5
  127. data/lib/stupidedi/reader/segment_dict.rb +0 -3
  128. data/lib/stupidedi/reader/separators.rb +5 -4
  129. data/lib/stupidedi/reader/stream_reader.rb +3 -6
  130. data/lib/stupidedi/reader/token_reader.rb +0 -5
  131. data/lib/stupidedi/reader/tokens/component_element_tok.rb +4 -4
  132. data/lib/stupidedi/reader/tokens/composite_element_tok.rb +6 -5
  133. data/lib/stupidedi/reader/tokens/repeated_element_tok.rb +9 -2
  134. data/lib/stupidedi/reader/tokens/segment_tok.rb +7 -5
  135. data/lib/stupidedi/reader/tokens/simple_element_tok.rb +2 -4
  136. data/lib/stupidedi/schema.rb +17 -20
  137. data/lib/stupidedi/schema/abstract_def.rb +4 -6
  138. data/lib/stupidedi/schema/abstract_element_def.rb +35 -0
  139. data/lib/stupidedi/schema/abstract_element_use.rb +38 -0
  140. data/lib/stupidedi/schema/abstract_use.rb +6 -4
  141. data/lib/stupidedi/schema/code_list.rb +6 -5
  142. data/lib/stupidedi/schema/component_element_use.rb +74 -0
  143. data/lib/stupidedi/schema/composite_element_def.rb +103 -0
  144. data/lib/stupidedi/schema/composite_element_use.rb +73 -0
  145. data/lib/stupidedi/schema/element_req.rb +1 -4
  146. data/lib/stupidedi/schema/functional_group_def.rb +9 -3
  147. data/lib/stupidedi/schema/interchange_def.rb +9 -3
  148. data/lib/stupidedi/schema/loop_def.rb +11 -9
  149. data/lib/stupidedi/schema/repeat_count.rb +0 -3
  150. data/lib/stupidedi/schema/segment_def.rb +6 -4
  151. data/lib/stupidedi/schema/segment_req.rb +2 -3
  152. data/lib/stupidedi/schema/segment_use.rb +1 -4
  153. data/lib/stupidedi/schema/simple_element_def.rb +51 -0
  154. data/lib/stupidedi/schema/simple_element_use.rb +81 -0
  155. data/lib/stupidedi/schema/syntax_note.rb +1 -12
  156. data/lib/stupidedi/schema/table_def.rb +55 -18
  157. data/lib/stupidedi/schema/transaction_set_def.rb +25 -4
  158. data/lib/stupidedi/sets.rb +0 -3
  159. data/lib/stupidedi/transaction_sets.rb +14 -0
  160. data/lib/stupidedi/transaction_sets/002001.rb +11 -0
  161. data/lib/stupidedi/transaction_sets/002001/implementations.rb +23 -0
  162. data/lib/stupidedi/transaction_sets/002001/implementations/FA997.rb +66 -0
  163. data/lib/stupidedi/transaction_sets/002001/implementations/PO830.rb +160 -0
  164. data/lib/stupidedi/transaction_sets/002001/implementations/SH856.rb +190 -0
  165. data/lib/stupidedi/transaction_sets/002001/standards.rb +14 -0
  166. data/lib/stupidedi/transaction_sets/002001/standards/FA997.rb +31 -0
  167. data/lib/stupidedi/transaction_sets/002001/standards/PO830.rb +45 -0
  168. data/lib/stupidedi/transaction_sets/002001/standards/SH856.rb +38 -0
  169. data/lib/stupidedi/transaction_sets/003010.rb +11 -0
  170. data/lib/stupidedi/transaction_sets/003010/implementations.rb +24 -0
  171. data/lib/stupidedi/transaction_sets/003010/implementations/PC860.rb +140 -0
  172. data/lib/stupidedi/transaction_sets/003010/implementations/PO850.rb +132 -0
  173. data/lib/stupidedi/transaction_sets/003010/implementations/PS830.rb +150 -0
  174. data/lib/stupidedi/transaction_sets/003010/implementations/RA820.rb +158 -0
  175. data/lib/stupidedi/transaction_sets/003010/standards.rb +15 -0
  176. data/lib/stupidedi/transaction_sets/003010/standards/PC860.rb +49 -0
  177. data/lib/stupidedi/transaction_sets/003010/standards/PO850.rb +49 -0
  178. data/lib/stupidedi/transaction_sets/003010/standards/PS830.rb +49 -0
  179. data/lib/stupidedi/transaction_sets/003010/standards/RA820.rb +40 -0
  180. data/lib/stupidedi/transaction_sets/003040.rb +12 -0
  181. data/lib/stupidedi/transaction_sets/003040/implementations.rb +21 -0
  182. data/lib/stupidedi/transaction_sets/003040/implementations/WA142.rb +153 -0
  183. data/lib/stupidedi/transaction_sets/003040/standards.rb +12 -0
  184. data/lib/stupidedi/transaction_sets/003040/standards/WA142.rb +53 -0
  185. data/lib/stupidedi/transaction_sets/003050.rb +12 -0
  186. data/lib/stupidedi/transaction_sets/003050/implementations.rb +21 -0
  187. data/lib/stupidedi/transaction_sets/003050/implementations/PO850.rb +77 -0
  188. data/lib/stupidedi/transaction_sets/003050/standards.rb +12 -0
  189. data/lib/stupidedi/transaction_sets/003050/standards/PO850.rb +41 -0
  190. data/lib/stupidedi/transaction_sets/004010.rb +12 -0
  191. data/lib/stupidedi/transaction_sets/004010/implementations.rb +38 -0
  192. data/lib/stupidedi/transaction_sets/004010/implementations/AR943.rb +72 -0
  193. data/lib/stupidedi/transaction_sets/004010/implementations/FA997.rb +65 -0
  194. data/lib/stupidedi/transaction_sets/004010/implementations/GF990.rb +40 -0
  195. data/lib/stupidedi/transaction_sets/004010/implementations/IM210.rb +221 -0
  196. data/lib/stupidedi/transaction_sets/004010/implementations/OW940.rb +98 -0
  197. data/lib/stupidedi/transaction_sets/004010/implementations/PO850.rb +108 -0
  198. data/lib/stupidedi/transaction_sets/004010/implementations/PS830.rb +143 -0
  199. data/lib/stupidedi/transaction_sets/004010/implementations/QM214.rb +106 -0
  200. data/lib/stupidedi/transaction_sets/004010/implementations/RE944.rb +63 -0
  201. data/lib/stupidedi/transaction_sets/004010/implementations/SH856.rb +156 -0
  202. data/lib/stupidedi/transaction_sets/004010/implementations/SM204.rb +391 -0
  203. data/lib/stupidedi/transaction_sets/004010/implementations/SQ866.rb +103 -0
  204. data/lib/stupidedi/transaction_sets/004010/implementations/SS862.rb +154 -0
  205. data/lib/stupidedi/transaction_sets/004010/implementations/SW945.rb +99 -0
  206. data/lib/stupidedi/transaction_sets/004010/implementations/X091A1-HP835.rb +481 -0
  207. data/lib/stupidedi/transaction_sets/004010/standards.rb +28 -0
  208. data/lib/stupidedi/transaction_sets/004010/standards/AR943.rb +34 -0
  209. data/lib/stupidedi/transaction_sets/004010/standards/FA997.rb +31 -0
  210. data/lib/stupidedi/transaction_sets/004010/standards/GF990.rb +21 -0
  211. data/lib/stupidedi/transaction_sets/004010/standards/HP835.rb +61 -0
  212. data/lib/stupidedi/transaction_sets/004010/standards/IM210.rb +47 -0
  213. data/lib/stupidedi/transaction_sets/004010/standards/OW940.rb +43 -0
  214. data/lib/stupidedi/transaction_sets/004010/standards/PO850.rb +50 -0
  215. data/lib/stupidedi/transaction_sets/004010/standards/PR855.rb +35 -0
  216. data/lib/stupidedi/transaction_sets/004010/standards/PS830.rb +43 -0
  217. data/lib/stupidedi/transaction_sets/004010/standards/QM214.rb +41 -0
  218. data/lib/stupidedi/transaction_sets/004010/standards/RE944.rb +34 -0
  219. data/lib/stupidedi/transaction_sets/004010/standards/SC832.rb +37 -0
  220. data/lib/stupidedi/transaction_sets/004010/standards/SH856.rb +40 -0
  221. data/lib/stupidedi/transaction_sets/004010/standards/SM204.rb +85 -0
  222. data/lib/stupidedi/transaction_sets/004010/standards/SQ866.rb +32 -0
  223. data/lib/stupidedi/transaction_sets/004010/standards/SS862.rb +42 -0
  224. data/lib/stupidedi/transaction_sets/004010/standards/SW945.rb +43 -0
  225. data/lib/stupidedi/transaction_sets/005010.rb +11 -0
  226. data/lib/stupidedi/transaction_sets/005010/implementations.rb +88 -0
  227. data/lib/stupidedi/transaction_sets/005010/implementations/X212-HR276.rb +329 -0
  228. data/lib/stupidedi/transaction_sets/005010/implementations/X214-HN277.rb +356 -0
  229. data/lib/stupidedi/transaction_sets/005010/implementations/X220-BE834.rb +15 -0
  230. data/lib/stupidedi/transaction_sets/005010/implementations/X220A1-BE834.rb +623 -0
  231. data/lib/stupidedi/transaction_sets/005010/implementations/X221-HP835.rb +15 -0
  232. data/lib/stupidedi/transaction_sets/005010/implementations/X221A1-HP835.rb +556 -0
  233. data/lib/stupidedi/transaction_sets/005010/implementations/X222-HC837.rb +15 -0
  234. data/lib/stupidedi/transaction_sets/005010/implementations/X222-HC837P.rb +15 -0
  235. data/lib/stupidedi/transaction_sets/005010/implementations/X222A1-HC837.rb +2033 -0
  236. data/lib/stupidedi/transaction_sets/005010/implementations/X222A1-HC837P.rb +15 -0
  237. data/lib/stupidedi/transaction_sets/005010/implementations/X223-HC837.rb +15 -0
  238. data/lib/stupidedi/transaction_sets/005010/implementations/X223-HC837I.rb +15 -0
  239. data/lib/stupidedi/transaction_sets/005010/implementations/X223A1-HC837.rb +15 -0
  240. data/lib/stupidedi/transaction_sets/005010/implementations/X223A2-HC837.rb +2390 -0
  241. data/lib/stupidedi/transaction_sets/005010/implementations/X223A3-HC837.rb +2595 -0
  242. data/lib/stupidedi/transaction_sets/005010/implementations/X231-FA999.rb +15 -0
  243. data/lib/stupidedi/transaction_sets/005010/implementations/X231A1-FA999.rb +106 -0
  244. data/lib/stupidedi/transaction_sets/005010/implementations/X279-HB271.rb +749 -0
  245. data/lib/stupidedi/transaction_sets/005010/implementations/X279-HS270.rb +533 -0
  246. data/lib/stupidedi/transaction_sets/005010/implementations/X279A1-HB271.rb +751 -0
  247. data/lib/stupidedi/transaction_sets/005010/implementations/X279A1-HS270.rb +533 -0
  248. data/lib/stupidedi/transaction_sets/005010/standards.rb +22 -0
  249. data/lib/stupidedi/transaction_sets/005010/standards/BE834.rb +171 -0
  250. data/lib/stupidedi/transaction_sets/005010/standards/FA997.rb +31 -0
  251. data/lib/stupidedi/transaction_sets/005010/standards/FA999.rb +35 -0
  252. data/lib/stupidedi/transaction_sets/005010/standards/HB271.rb +95 -0
  253. data/lib/stupidedi/transaction_sets/005010/standards/HC837.rb +161 -0
  254. data/lib/stupidedi/transaction_sets/005010/standards/HI278.rb +62 -0
  255. data/lib/stupidedi/transaction_sets/005010/standards/HN277.rb +71 -0
  256. data/lib/stupidedi/transaction_sets/005010/standards/HP835.rb +65 -0
  257. data/lib/stupidedi/transaction_sets/005010/standards/HR276.rb +54 -0
  258. data/lib/stupidedi/transaction_sets/005010/standards/HS270.rb +50 -0
  259. data/lib/stupidedi/transaction_sets/005010/standards/RA820.rb +238 -0
  260. data/lib/stupidedi/transaction_sets/builder.rb +184 -0
  261. data/lib/stupidedi/transaction_sets/common.rb +8 -0
  262. data/lib/stupidedi/transaction_sets/common/implementations.rb +11 -0
  263. data/lib/stupidedi/transaction_sets/common/implementations/element_reqs.rb +37 -0
  264. data/lib/stupidedi/transaction_sets/common/implementations/segment_reqs.rb +31 -0
  265. data/lib/stupidedi/transaction_sets/validation.rb +9 -0
  266. data/lib/stupidedi/transaction_sets/validation/ambiguity.rb +391 -0
  267. data/lib/stupidedi/transaction_sets/validation/implementation.rb +12 -0
  268. data/lib/stupidedi/values.rb +0 -1
  269. data/lib/stupidedi/values/abstract_element_val.rb +0 -4
  270. data/lib/stupidedi/values/abstract_val.rb +3 -4
  271. data/lib/stupidedi/values/composite_element_val.rb +3 -8
  272. data/lib/stupidedi/values/functional_group_val.rb +3 -4
  273. data/lib/stupidedi/values/interchange_val.rb +3 -4
  274. data/lib/stupidedi/values/invalid_envelope_val.rb +2 -6
  275. data/lib/stupidedi/values/invalid_segment_val.rb +16 -9
  276. data/lib/stupidedi/values/loop_val.rb +3 -4
  277. data/lib/stupidedi/values/repeated_element_val.rb +5 -7
  278. data/lib/stupidedi/values/segment_val.rb +7 -11
  279. data/lib/stupidedi/values/segment_val_group.rb +0 -4
  280. data/lib/stupidedi/values/simple_element_val.rb +2 -7
  281. data/lib/stupidedi/values/table_val.rb +3 -4
  282. data/lib/stupidedi/values/transaction_set_val.rb +3 -4
  283. data/lib/stupidedi/values/transmission_val.rb +5 -5
  284. data/lib/stupidedi/version.rb +1 -2
  285. data/lib/stupidedi/versions.rb +11 -3
  286. data/lib/stupidedi/versions/002001.rb +14 -0
  287. data/lib/stupidedi/versions/002001/element_defs.rb +10576 -0
  288. data/lib/stupidedi/versions/002001/element_reqs.rb +12 -0
  289. data/lib/stupidedi/versions/002001/element_types.rb +28 -0
  290. data/lib/stupidedi/versions/002001/element_types/an.rb +11 -0
  291. data/lib/stupidedi/versions/002001/element_types/dt.rb +11 -0
  292. data/lib/stupidedi/versions/002001/element_types/float_val.rb +11 -0
  293. data/lib/stupidedi/versions/002001/element_types/id.rb +11 -0
  294. data/lib/stupidedi/versions/002001/element_types/nn.rb +11 -0
  295. data/lib/stupidedi/versions/002001/element_types/tm.rb +11 -0
  296. data/lib/stupidedi/versions/002001/functional_group_def.rb +24 -0
  297. data/lib/stupidedi/versions/002001/segment_defs.rb +88 -0
  298. data/lib/stupidedi/versions/002001/segment_defs/AK1.rb +17 -0
  299. data/lib/stupidedi/versions/002001/segment_defs/AK2.rb +17 -0
  300. data/lib/stupidedi/versions/002001/segment_defs/AK3.rb +18 -0
  301. data/lib/stupidedi/versions/002001/segment_defs/AK4.rb +20 -0
  302. data/lib/stupidedi/versions/002001/segment_defs/AK5.rb +22 -0
  303. data/lib/stupidedi/versions/002001/segment_defs/AK9.rb +23 -0
  304. data/lib/stupidedi/versions/002001/segment_defs/AT7.rb +29 -0
  305. data/lib/stupidedi/versions/002001/segment_defs/AT8.rb +25 -0
  306. data/lib/stupidedi/versions/002001/segment_defs/ATH.rb +21 -0
  307. data/lib/stupidedi/versions/002001/segment_defs/B1.rb +20 -0
  308. data/lib/stupidedi/versions/002001/segment_defs/B10.rb +26 -0
  309. data/lib/stupidedi/versions/002001/segment_defs/B2.rb +27 -0
  310. data/lib/stupidedi/versions/002001/segment_defs/B2A.rb +17 -0
  311. data/lib/stupidedi/versions/002001/segment_defs/BEG.rb +28 -0
  312. data/lib/stupidedi/versions/002001/segment_defs/BFR.rb +27 -0
  313. data/lib/stupidedi/versions/002001/segment_defs/BSN.rb +24 -0
  314. data/lib/stupidedi/versions/002001/segment_defs/CTT.rb +25 -0
  315. data/lib/stupidedi/versions/002001/segment_defs/CUR.rb +51 -0
  316. data/lib/stupidedi/versions/002001/segment_defs/DTM.rb +25 -0
  317. data/lib/stupidedi/versions/002001/segment_defs/FST.rb +24 -0
  318. data/lib/stupidedi/versions/002001/segment_defs/G61.rb +22 -0
  319. data/lib/stupidedi/versions/002001/segment_defs/G62.rb +22 -0
  320. data/lib/stupidedi/versions/002001/segment_defs/G69.rb +16 -0
  321. data/lib/stupidedi/versions/002001/segment_defs/GE.rb +18 -0
  322. data/lib/stupidedi/versions/002001/segment_defs/GS.rb +24 -0
  323. data/lib/stupidedi/versions/002001/segment_defs/HL.rb +20 -0
  324. data/lib/stupidedi/versions/002001/segment_defs/J2X.rb +18 -0
  325. data/lib/stupidedi/versions/002001/segment_defs/K1.rb +18 -0
  326. data/lib/stupidedi/versions/002001/segment_defs/L11.rb +21 -0
  327. data/lib/stupidedi/versions/002001/segment_defs/L3.rb +37 -0
  328. data/lib/stupidedi/versions/002001/segment_defs/L5.rb +29 -0
  329. data/lib/stupidedi/versions/002001/segment_defs/LFH.rb +25 -0
  330. data/lib/stupidedi/versions/002001/segment_defs/LH1.rb +29 -0
  331. data/lib/stupidedi/versions/002001/segment_defs/LH2.rb +32 -0
  332. data/lib/stupidedi/versions/002001/segment_defs/LH3.rb +21 -0
  333. data/lib/stupidedi/versions/002001/segment_defs/LIN.rb +47 -0
  334. data/lib/stupidedi/versions/002001/segment_defs/LX.rb +16 -0
  335. data/lib/stupidedi/versions/002001/segment_defs/M7.rb +21 -0
  336. data/lib/stupidedi/versions/002001/segment_defs/MAN.rb +17 -0
  337. data/lib/stupidedi/versions/002001/segment_defs/MEA.rb +22 -0
  338. data/lib/stupidedi/versions/002001/segment_defs/MS1.rb +33 -0
  339. data/lib/stupidedi/versions/002001/segment_defs/MS2.rb +22 -0
  340. data/lib/stupidedi/versions/002001/segment_defs/MS3.rb +21 -0
  341. data/lib/stupidedi/versions/002001/segment_defs/N1.rb +19 -0
  342. data/lib/stupidedi/versions/002001/segment_defs/N2.rb +17 -0
  343. data/lib/stupidedi/versions/002001/segment_defs/N3.rb +17 -0
  344. data/lib/stupidedi/versions/002001/segment_defs/N4.rb +25 -0
  345. data/lib/stupidedi/versions/002001/segment_defs/N7.rb +42 -0
  346. data/lib/stupidedi/versions/002001/segment_defs/N9.rb +25 -0
  347. data/lib/stupidedi/versions/002001/segment_defs/NTE.rb +18 -0
  348. data/lib/stupidedi/versions/002001/segment_defs/PER.rb +28 -0
  349. data/lib/stupidedi/versions/002001/segment_defs/PID.rb +29 -0
  350. data/lib/stupidedi/versions/002001/segment_defs/PLD.rb +21 -0
  351. data/lib/stupidedi/versions/002001/segment_defs/PO1.rb +52 -0
  352. data/lib/stupidedi/versions/002001/segment_defs/PO4.rb +20 -0
  353. data/lib/stupidedi/versions/002001/segment_defs/REF.rb +20 -0
  354. data/lib/stupidedi/versions/002001/segment_defs/S5.rb +29 -0
  355. data/lib/stupidedi/versions/002001/segment_defs/SDP.rb +17 -0
  356. data/lib/stupidedi/versions/002001/segment_defs/SE.rb +19 -0
  357. data/lib/stupidedi/versions/002001/segment_defs/SN1.rb +24 -0
  358. data/lib/stupidedi/versions/002001/segment_defs/ST.rb +17 -0
  359. data/lib/stupidedi/versions/002001/segment_defs/TD1.rb +27 -0
  360. data/lib/stupidedi/versions/002001/segment_defs/TD3.rb +20 -0
  361. data/lib/stupidedi/versions/002001/segment_defs/TD5.rb +21 -0
  362. data/lib/stupidedi/versions/002001/segment_defs/UNT.rb +16 -0
  363. data/lib/stupidedi/versions/002001/segment_defs/W01.rb +37 -0
  364. data/lib/stupidedi/versions/002001/segment_defs/W03.rb +25 -0
  365. data/lib/stupidedi/versions/002001/segment_defs/W04.rb +35 -0
  366. data/lib/stupidedi/versions/002001/segment_defs/W05.rb +24 -0
  367. data/lib/stupidedi/versions/002001/segment_defs/W06.rb +29 -0
  368. data/lib/stupidedi/versions/002001/segment_defs/W07.rb +30 -0
  369. data/lib/stupidedi/versions/002001/segment_defs/W08.rb +26 -0
  370. data/lib/stupidedi/versions/002001/segment_defs/W12.rb +43 -0
  371. data/lib/stupidedi/versions/002001/segment_defs/W14.rb +20 -0
  372. data/lib/stupidedi/versions/002001/segment_defs/W17.rb +26 -0
  373. data/lib/stupidedi/versions/002001/segment_defs/W20.rb +28 -0
  374. data/lib/stupidedi/versions/002001/segment_defs/W27.rb +26 -0
  375. data/lib/stupidedi/versions/002001/segment_defs/W66.rb +26 -0
  376. data/lib/stupidedi/versions/002001/segment_defs/W76.rb +24 -0
  377. data/lib/stupidedi/versions/002001/segment_reqs.rb +11 -0
  378. data/lib/stupidedi/versions/002001/syntax_notes.rb +14 -0
  379. data/lib/stupidedi/versions/003010.rb +14 -0
  380. data/lib/stupidedi/versions/003010/element_defs.rb +9152 -0
  381. data/lib/stupidedi/versions/003010/element_reqs.rb +13 -0
  382. data/lib/stupidedi/versions/003010/element_types.rb +28 -0
  383. data/lib/stupidedi/versions/003010/element_types/an.rb +11 -0
  384. data/lib/stupidedi/versions/003010/element_types/dt.rb +11 -0
  385. data/lib/stupidedi/versions/003010/element_types/float_val.rb +11 -0
  386. data/lib/stupidedi/versions/003010/element_types/id.rb +11 -0
  387. data/lib/stupidedi/versions/003010/element_types/nn.rb +11 -0
  388. data/lib/stupidedi/versions/003010/element_types/tm.rb +11 -0
  389. data/lib/stupidedi/versions/003010/functional_group_def.rb +24 -0
  390. data/lib/stupidedi/versions/003010/segment_defs.rb +94 -0
  391. data/lib/stupidedi/versions/003010/segment_defs/AK1.rb +17 -0
  392. data/lib/stupidedi/versions/003010/segment_defs/AK2.rb +17 -0
  393. data/lib/stupidedi/versions/003010/segment_defs/AK3.rb +18 -0
  394. data/lib/stupidedi/versions/003010/segment_defs/AK9.rb +23 -0
  395. data/lib/stupidedi/versions/003010/segment_defs/AT7.rb +29 -0
  396. data/lib/stupidedi/versions/003010/segment_defs/AT8.rb +25 -0
  397. data/lib/stupidedi/versions/003010/segment_defs/B1.rb +20 -0
  398. data/lib/stupidedi/versions/003010/segment_defs/B10.rb +26 -0
  399. data/lib/stupidedi/versions/003010/segment_defs/B2.rb +27 -0
  400. data/lib/stupidedi/versions/003010/segment_defs/B2A.rb +17 -0
  401. data/lib/stupidedi/versions/003010/segment_defs/BCH.rb +22 -0
  402. data/lib/stupidedi/versions/003010/segment_defs/BEG.rb +21 -0
  403. data/lib/stupidedi/versions/003010/segment_defs/BFR.rb +29 -0
  404. data/lib/stupidedi/versions/003010/segment_defs/BPS.rb +32 -0
  405. data/lib/stupidedi/versions/003010/segment_defs/BSN.rb +24 -0
  406. data/lib/stupidedi/versions/003010/segment_defs/CTT.rb +18 -0
  407. data/lib/stupidedi/versions/003010/segment_defs/CUR.rb +19 -0
  408. data/lib/stupidedi/versions/003010/segment_defs/DTM.rb +17 -0
  409. data/lib/stupidedi/versions/003010/segment_defs/FOB.rb +22 -0
  410. data/lib/stupidedi/versions/003010/segment_defs/FST.rb +24 -0
  411. data/lib/stupidedi/versions/003010/segment_defs/G61.rb +22 -0
  412. data/lib/stupidedi/versions/003010/segment_defs/G62.rb +22 -0
  413. data/lib/stupidedi/versions/003010/segment_defs/G69.rb +16 -0
  414. data/lib/stupidedi/versions/003010/segment_defs/GE.rb +18 -0
  415. data/lib/stupidedi/versions/003010/segment_defs/GS.rb +24 -0
  416. data/lib/stupidedi/versions/003010/segment_defs/HL.rb +20 -0
  417. data/lib/stupidedi/versions/003010/segment_defs/ITD.rb +28 -0
  418. data/lib/stupidedi/versions/003010/segment_defs/K1.rb +18 -0
  419. data/lib/stupidedi/versions/003010/segment_defs/L11.rb +21 -0
  420. data/lib/stupidedi/versions/003010/segment_defs/L3.rb +37 -0
  421. data/lib/stupidedi/versions/003010/segment_defs/L5.rb +29 -0
  422. data/lib/stupidedi/versions/003010/segment_defs/LE.rb +17 -0
  423. data/lib/stupidedi/versions/003010/segment_defs/LFH.rb +25 -0
  424. data/lib/stupidedi/versions/003010/segment_defs/LH1.rb +29 -0
  425. data/lib/stupidedi/versions/003010/segment_defs/LH2.rb +32 -0
  426. data/lib/stupidedi/versions/003010/segment_defs/LH3.rb +21 -0
  427. data/lib/stupidedi/versions/003010/segment_defs/LIN.rb +47 -0
  428. data/lib/stupidedi/versions/003010/segment_defs/LS.rb +16 -0
  429. data/lib/stupidedi/versions/003010/segment_defs/LX.rb +16 -0
  430. data/lib/stupidedi/versions/003010/segment_defs/M7.rb +21 -0
  431. data/lib/stupidedi/versions/003010/segment_defs/MAN.rb +23 -0
  432. data/lib/stupidedi/versions/003010/segment_defs/MEA.rb +22 -0
  433. data/lib/stupidedi/versions/003010/segment_defs/MS1.rb +33 -0
  434. data/lib/stupidedi/versions/003010/segment_defs/MS2.rb +22 -0
  435. data/lib/stupidedi/versions/003010/segment_defs/MS3.rb +21 -0
  436. data/lib/stupidedi/versions/003010/segment_defs/MSG.rb +17 -0
  437. data/lib/stupidedi/versions/003010/segment_defs/N1.rb +19 -0
  438. data/lib/stupidedi/versions/003010/segment_defs/N2.rb +17 -0
  439. data/lib/stupidedi/versions/003010/segment_defs/N3.rb +17 -0
  440. data/lib/stupidedi/versions/003010/segment_defs/N4.rb +19 -0
  441. data/lib/stupidedi/versions/003010/segment_defs/N7.rb +42 -0
  442. data/lib/stupidedi/versions/003010/segment_defs/N9.rb +18 -0
  443. data/lib/stupidedi/versions/003010/segment_defs/NTE.rb +18 -0
  444. data/lib/stupidedi/versions/003010/segment_defs/PER.rb +28 -0
  445. data/lib/stupidedi/versions/003010/segment_defs/PID.rb +20 -0
  446. data/lib/stupidedi/versions/003010/segment_defs/PLD.rb +21 -0
  447. data/lib/stupidedi/versions/003010/segment_defs/PO1.rb +25 -0
  448. data/lib/stupidedi/versions/003010/segment_defs/PO4.rb +20 -0
  449. data/lib/stupidedi/versions/003010/segment_defs/POC.rb +26 -0
  450. data/lib/stupidedi/versions/003010/segment_defs/REF.rb +18 -0
  451. data/lib/stupidedi/versions/003010/segment_defs/RMT.rb +25 -0
  452. data/lib/stupidedi/versions/003010/segment_defs/S5.rb +29 -0
  453. data/lib/stupidedi/versions/003010/segment_defs/SDP.rb +18 -0
  454. data/lib/stupidedi/versions/003010/segment_defs/SE.rb +19 -0
  455. data/lib/stupidedi/versions/003010/segment_defs/SHP.rb +20 -0
  456. data/lib/stupidedi/versions/003010/segment_defs/SN1.rb +24 -0
  457. data/lib/stupidedi/versions/003010/segment_defs/ST.rb +18 -0
  458. data/lib/stupidedi/versions/003010/segment_defs/TD1.rb +27 -0
  459. data/lib/stupidedi/versions/003010/segment_defs/TD3.rb +20 -0
  460. data/lib/stupidedi/versions/003010/segment_defs/TD5.rb +21 -0
  461. data/lib/stupidedi/versions/003010/segment_defs/UIT.rb +18 -0
  462. data/lib/stupidedi/versions/003010/segment_defs/W01.rb +37 -0
  463. data/lib/stupidedi/versions/003010/segment_defs/W03.rb +25 -0
  464. data/lib/stupidedi/versions/003010/segment_defs/W04.rb +35 -0
  465. data/lib/stupidedi/versions/003010/segment_defs/W05.rb +24 -0
  466. data/lib/stupidedi/versions/003010/segment_defs/W06.rb +29 -0
  467. data/lib/stupidedi/versions/003010/segment_defs/W07.rb +30 -0
  468. data/lib/stupidedi/versions/003010/segment_defs/W08.rb +26 -0
  469. data/lib/stupidedi/versions/003010/segment_defs/W12.rb +43 -0
  470. data/lib/stupidedi/versions/003010/segment_defs/W14.rb +20 -0
  471. data/lib/stupidedi/versions/003010/segment_defs/W17.rb +26 -0
  472. data/lib/stupidedi/versions/003010/segment_defs/W20.rb +28 -0
  473. data/lib/stupidedi/versions/003010/segment_defs/W27.rb +27 -0
  474. data/lib/stupidedi/versions/003010/segment_defs/W66.rb +26 -0
  475. data/lib/stupidedi/versions/003010/segment_defs/W76.rb +24 -0
  476. data/lib/stupidedi/versions/003010/segment_reqs.rb +11 -0
  477. data/lib/stupidedi/versions/003010/syntax_notes.rb +14 -0
  478. data/lib/stupidedi/versions/003040.rb +14 -0
  479. data/lib/stupidedi/versions/003040/element_defs.rb +10608 -0
  480. data/lib/stupidedi/versions/003040/element_reqs.rb +12 -0
  481. data/lib/stupidedi/versions/003040/element_types.rb +28 -0
  482. data/lib/stupidedi/versions/003040/element_types/date_val.rb +11 -0
  483. data/lib/stupidedi/versions/003040/element_types/fixnum_val.rb +11 -0
  484. data/lib/stupidedi/versions/003040/element_types/float_val.rb +11 -0
  485. data/lib/stupidedi/versions/003040/element_types/identifier_val.rb +11 -0
  486. data/lib/stupidedi/versions/003040/element_types/time_val.rb +11 -0
  487. data/lib/stupidedi/versions/003040/functional_group_def.rb +24 -0
  488. data/lib/stupidedi/versions/003040/segment_defs.rb +95 -0
  489. data/lib/stupidedi/versions/003040/segment_defs/AK1.rb +17 -0
  490. data/lib/stupidedi/versions/003040/segment_defs/AK2.rb +17 -0
  491. data/lib/stupidedi/versions/003040/segment_defs/AK3.rb +18 -0
  492. data/lib/stupidedi/versions/003040/segment_defs/AK9.rb +23 -0
  493. data/lib/stupidedi/versions/003040/segment_defs/AMT.rb +17 -0
  494. data/lib/stupidedi/versions/003040/segment_defs/AT7.rb +29 -0
  495. data/lib/stupidedi/versions/003040/segment_defs/AT8.rb +25 -0
  496. data/lib/stupidedi/versions/003040/segment_defs/B1.rb +20 -0
  497. data/lib/stupidedi/versions/003040/segment_defs/B10.rb +26 -0
  498. data/lib/stupidedi/versions/003040/segment_defs/B2.rb +27 -0
  499. data/lib/stupidedi/versions/003040/segment_defs/B2A.rb +17 -0
  500. data/lib/stupidedi/versions/003040/segment_defs/BEG.rb +21 -0
  501. data/lib/stupidedi/versions/003040/segment_defs/BGN.rb +18 -0
  502. data/lib/stupidedi/versions/003040/segment_defs/BPS.rb +25 -0
  503. data/lib/stupidedi/versions/003040/segment_defs/BSN.rb +24 -0
  504. data/lib/stupidedi/versions/003040/segment_defs/CTT.rb +25 -0
  505. data/lib/stupidedi/versions/003040/segment_defs/CUR.rb +19 -0
  506. data/lib/stupidedi/versions/003040/segment_defs/DTM.rb +18 -0
  507. data/lib/stupidedi/versions/003040/segment_defs/FOB.rb +20 -0
  508. data/lib/stupidedi/versions/003040/segment_defs/G61.rb +22 -0
  509. data/lib/stupidedi/versions/003040/segment_defs/G62.rb +22 -0
  510. data/lib/stupidedi/versions/003040/segment_defs/G69.rb +16 -0
  511. data/lib/stupidedi/versions/003040/segment_defs/GE.rb +17 -0
  512. data/lib/stupidedi/versions/003040/segment_defs/GS.rb +24 -0
  513. data/lib/stupidedi/versions/003040/segment_defs/HL.rb +20 -0
  514. data/lib/stupidedi/versions/003040/segment_defs/IT1.rb +20 -0
  515. data/lib/stupidedi/versions/003040/segment_defs/ITD.rb +28 -0
  516. data/lib/stupidedi/versions/003040/segment_defs/K1.rb +18 -0
  517. data/lib/stupidedi/versions/003040/segment_defs/L11.rb +21 -0
  518. data/lib/stupidedi/versions/003040/segment_defs/L3.rb +37 -0
  519. data/lib/stupidedi/versions/003040/segment_defs/L5.rb +29 -0
  520. data/lib/stupidedi/versions/003040/segment_defs/LE.rb +17 -0
  521. data/lib/stupidedi/versions/003040/segment_defs/LFH.rb +25 -0
  522. data/lib/stupidedi/versions/003040/segment_defs/LH1.rb +29 -0
  523. data/lib/stupidedi/versions/003040/segment_defs/LH2.rb +32 -0
  524. data/lib/stupidedi/versions/003040/segment_defs/LH3.rb +21 -0
  525. data/lib/stupidedi/versions/003040/segment_defs/LIN.rb +33 -0
  526. data/lib/stupidedi/versions/003040/segment_defs/LS.rb +16 -0
  527. data/lib/stupidedi/versions/003040/segment_defs/LX.rb +16 -0
  528. data/lib/stupidedi/versions/003040/segment_defs/M7.rb +21 -0
  529. data/lib/stupidedi/versions/003040/segment_defs/MAN.rb +23 -0
  530. data/lib/stupidedi/versions/003040/segment_defs/MEA.rb +22 -0
  531. data/lib/stupidedi/versions/003040/segment_defs/MS1.rb +33 -0
  532. data/lib/stupidedi/versions/003040/segment_defs/MS2.rb +22 -0
  533. data/lib/stupidedi/versions/003040/segment_defs/MS3.rb +21 -0
  534. data/lib/stupidedi/versions/003040/segment_defs/MSG.rb +17 -0
  535. data/lib/stupidedi/versions/003040/segment_defs/N1.rb +19 -0
  536. data/lib/stupidedi/versions/003040/segment_defs/N2.rb +17 -0
  537. data/lib/stupidedi/versions/003040/segment_defs/N3.rb +17 -0
  538. data/lib/stupidedi/versions/003040/segment_defs/N4.rb +19 -0
  539. data/lib/stupidedi/versions/003040/segment_defs/N7.rb +42 -0
  540. data/lib/stupidedi/versions/003040/segment_defs/N9.rb +18 -0
  541. data/lib/stupidedi/versions/003040/segment_defs/NTE.rb +18 -0
  542. data/lib/stupidedi/versions/003040/segment_defs/PER.rb +20 -0
  543. data/lib/stupidedi/versions/003040/segment_defs/PID.rb +20 -0
  544. data/lib/stupidedi/versions/003040/segment_defs/PLD.rb +21 -0
  545. data/lib/stupidedi/versions/003040/segment_defs/PO1.rb +25 -0
  546. data/lib/stupidedi/versions/003040/segment_defs/PO4.rb +20 -0
  547. data/lib/stupidedi/versions/003040/segment_defs/PRR.rb +21 -0
  548. data/lib/stupidedi/versions/003040/segment_defs/QTY.rb +18 -0
  549. data/lib/stupidedi/versions/003040/segment_defs/REF.rb +18 -0
  550. data/lib/stupidedi/versions/003040/segment_defs/REP.rb +19 -0
  551. data/lib/stupidedi/versions/003040/segment_defs/RMT.rb +25 -0
  552. data/lib/stupidedi/versions/003040/segment_defs/S5.rb +29 -0
  553. data/lib/stupidedi/versions/003040/segment_defs/SE.rb +19 -0
  554. data/lib/stupidedi/versions/003040/segment_defs/SN1.rb +24 -0
  555. data/lib/stupidedi/versions/003040/segment_defs/SSS.rb +24 -0
  556. data/lib/stupidedi/versions/003040/segment_defs/ST.rb +18 -0
  557. data/lib/stupidedi/versions/003040/segment_defs/TD1.rb +27 -0
  558. data/lib/stupidedi/versions/003040/segment_defs/TD3.rb +20 -0
  559. data/lib/stupidedi/versions/003040/segment_defs/TD5.rb +18 -0
  560. data/lib/stupidedi/versions/003040/segment_defs/TDS.rb +16 -0
  561. data/lib/stupidedi/versions/003040/segment_defs/W01.rb +37 -0
  562. data/lib/stupidedi/versions/003040/segment_defs/W03.rb +25 -0
  563. data/lib/stupidedi/versions/003040/segment_defs/W04.rb +35 -0
  564. data/lib/stupidedi/versions/003040/segment_defs/W05.rb +24 -0
  565. data/lib/stupidedi/versions/003040/segment_defs/W06.rb +29 -0
  566. data/lib/stupidedi/versions/003040/segment_defs/W07.rb +30 -0
  567. data/lib/stupidedi/versions/003040/segment_defs/W08.rb +26 -0
  568. data/lib/stupidedi/versions/003040/segment_defs/W12.rb +43 -0
  569. data/lib/stupidedi/versions/003040/segment_defs/W14.rb +20 -0
  570. data/lib/stupidedi/versions/003040/segment_defs/W17.rb +26 -0
  571. data/lib/stupidedi/versions/003040/segment_defs/W20.rb +28 -0
  572. data/lib/stupidedi/versions/003040/segment_defs/W27.rb +27 -0
  573. data/lib/stupidedi/versions/003040/segment_defs/W66.rb +26 -0
  574. data/lib/stupidedi/versions/003040/segment_defs/W76.rb +24 -0
  575. data/lib/stupidedi/versions/003040/segment_reqs.rb +11 -0
  576. data/lib/stupidedi/versions/003040/syntax_notes.rb +14 -0
  577. data/lib/stupidedi/versions/003050.rb +14 -0
  578. data/lib/stupidedi/versions/003050/element_defs.rb +10612 -0
  579. data/lib/stupidedi/versions/003050/element_reqs.rb +12 -0
  580. data/lib/stupidedi/versions/003050/element_types.rb +28 -0
  581. data/lib/stupidedi/versions/003050/element_types/an.rb +11 -0
  582. data/lib/stupidedi/versions/003050/element_types/dt.rb +11 -0
  583. data/lib/stupidedi/versions/003050/element_types/float_val.rb +11 -0
  584. data/lib/stupidedi/versions/003050/element_types/id.rb +11 -0
  585. data/lib/stupidedi/versions/003050/element_types/nn.rb +11 -0
  586. data/lib/stupidedi/versions/003050/element_types/tm.rb +11 -0
  587. data/lib/stupidedi/versions/003050/functional_group_def.rb +24 -0
  588. data/lib/stupidedi/versions/003050/segment_defs.rb +95 -0
  589. data/lib/stupidedi/versions/003050/segment_defs/AK1.rb +17 -0
  590. data/lib/stupidedi/versions/003050/segment_defs/AK2.rb +17 -0
  591. data/lib/stupidedi/versions/003050/segment_defs/AK3.rb +18 -0
  592. data/lib/stupidedi/versions/003050/segment_defs/AK9.rb +23 -0
  593. data/lib/stupidedi/versions/003050/segment_defs/AMT.rb +17 -0
  594. data/lib/stupidedi/versions/003050/segment_defs/AT7.rb +29 -0
  595. data/lib/stupidedi/versions/003050/segment_defs/AT8.rb +25 -0
  596. data/lib/stupidedi/versions/003050/segment_defs/B1.rb +20 -0
  597. data/lib/stupidedi/versions/003050/segment_defs/B10.rb +26 -0
  598. data/lib/stupidedi/versions/003050/segment_defs/B2.rb +27 -0
  599. data/lib/stupidedi/versions/003050/segment_defs/B2A.rb +17 -0
  600. data/lib/stupidedi/versions/003050/segment_defs/BEG.rb +21 -0
  601. data/lib/stupidedi/versions/003050/segment_defs/BGN.rb +18 -0
  602. data/lib/stupidedi/versions/003050/segment_defs/BPS.rb +25 -0
  603. data/lib/stupidedi/versions/003050/segment_defs/BSN.rb +24 -0
  604. data/lib/stupidedi/versions/003050/segment_defs/CTT.rb +17 -0
  605. data/lib/stupidedi/versions/003050/segment_defs/CUR.rb +19 -0
  606. data/lib/stupidedi/versions/003050/segment_defs/DTM.rb +20 -0
  607. data/lib/stupidedi/versions/003050/segment_defs/FOB.rb +20 -0
  608. data/lib/stupidedi/versions/003050/segment_defs/G61.rb +22 -0
  609. data/lib/stupidedi/versions/003050/segment_defs/G62.rb +22 -0
  610. data/lib/stupidedi/versions/003050/segment_defs/G69.rb +16 -0
  611. data/lib/stupidedi/versions/003050/segment_defs/GE.rb +18 -0
  612. data/lib/stupidedi/versions/003050/segment_defs/GS.rb +24 -0
  613. data/lib/stupidedi/versions/003050/segment_defs/HL.rb +20 -0
  614. data/lib/stupidedi/versions/003050/segment_defs/IT1.rb +20 -0
  615. data/lib/stupidedi/versions/003050/segment_defs/ITD.rb +28 -0
  616. data/lib/stupidedi/versions/003050/segment_defs/K1.rb +18 -0
  617. data/lib/stupidedi/versions/003050/segment_defs/L11.rb +21 -0
  618. data/lib/stupidedi/versions/003050/segment_defs/L3.rb +37 -0
  619. data/lib/stupidedi/versions/003050/segment_defs/L5.rb +29 -0
  620. data/lib/stupidedi/versions/003050/segment_defs/LE.rb +17 -0
  621. data/lib/stupidedi/versions/003050/segment_defs/LFH.rb +25 -0
  622. data/lib/stupidedi/versions/003050/segment_defs/LH1.rb +29 -0
  623. data/lib/stupidedi/versions/003050/segment_defs/LH2.rb +32 -0
  624. data/lib/stupidedi/versions/003050/segment_defs/LH3.rb +21 -0
  625. data/lib/stupidedi/versions/003050/segment_defs/LIN.rb +33 -0
  626. data/lib/stupidedi/versions/003050/segment_defs/LS.rb +16 -0
  627. data/lib/stupidedi/versions/003050/segment_defs/LX.rb +16 -0
  628. data/lib/stupidedi/versions/003050/segment_defs/M7.rb +21 -0
  629. data/lib/stupidedi/versions/003050/segment_defs/MAN.rb +23 -0
  630. data/lib/stupidedi/versions/003050/segment_defs/MEA.rb +22 -0
  631. data/lib/stupidedi/versions/003050/segment_defs/MS1.rb +33 -0
  632. data/lib/stupidedi/versions/003050/segment_defs/MS2.rb +22 -0
  633. data/lib/stupidedi/versions/003050/segment_defs/MS3.rb +21 -0
  634. data/lib/stupidedi/versions/003050/segment_defs/MSG.rb +17 -0
  635. data/lib/stupidedi/versions/003050/segment_defs/N1.rb +17 -0
  636. data/lib/stupidedi/versions/003050/segment_defs/N2.rb +17 -0
  637. data/lib/stupidedi/versions/003050/segment_defs/N3.rb +17 -0
  638. data/lib/stupidedi/versions/003050/segment_defs/N4.rb +19 -0
  639. data/lib/stupidedi/versions/003050/segment_defs/N7.rb +42 -0
  640. data/lib/stupidedi/versions/003050/segment_defs/N9.rb +18 -0
  641. data/lib/stupidedi/versions/003050/segment_defs/NTE.rb +18 -0
  642. data/lib/stupidedi/versions/003050/segment_defs/PER.rb +18 -0
  643. data/lib/stupidedi/versions/003050/segment_defs/PID.rb +20 -0
  644. data/lib/stupidedi/versions/003050/segment_defs/PLD.rb +21 -0
  645. data/lib/stupidedi/versions/003050/segment_defs/PO1.rb +23 -0
  646. data/lib/stupidedi/versions/003050/segment_defs/PO4.rb +20 -0
  647. data/lib/stupidedi/versions/003050/segment_defs/PRR.rb +19 -0
  648. data/lib/stupidedi/versions/003050/segment_defs/QTY.rb +18 -0
  649. data/lib/stupidedi/versions/003050/segment_defs/REF.rb +18 -0
  650. data/lib/stupidedi/versions/003050/segment_defs/REP.rb +19 -0
  651. data/lib/stupidedi/versions/003050/segment_defs/RMT.rb +25 -0
  652. data/lib/stupidedi/versions/003050/segment_defs/S5.rb +29 -0
  653. data/lib/stupidedi/versions/003050/segment_defs/SE.rb +19 -0
  654. data/lib/stupidedi/versions/003050/segment_defs/SN1.rb +24 -0
  655. data/lib/stupidedi/versions/003050/segment_defs/SSS.rb +22 -0
  656. data/lib/stupidedi/versions/003050/segment_defs/ST.rb +18 -0
  657. data/lib/stupidedi/versions/003050/segment_defs/TD1.rb +27 -0
  658. data/lib/stupidedi/versions/003050/segment_defs/TD3.rb +20 -0
  659. data/lib/stupidedi/versions/003050/segment_defs/TD5.rb +18 -0
  660. data/lib/stupidedi/versions/003050/segment_defs/TDS.rb +16 -0
  661. data/lib/stupidedi/versions/003050/segment_defs/W01.rb +37 -0
  662. data/lib/stupidedi/versions/003050/segment_defs/W03.rb +25 -0
  663. data/lib/stupidedi/versions/003050/segment_defs/W04.rb +35 -0
  664. data/lib/stupidedi/versions/003050/segment_defs/W05.rb +24 -0
  665. data/lib/stupidedi/versions/003050/segment_defs/W06.rb +29 -0
  666. data/lib/stupidedi/versions/003050/segment_defs/W07.rb +30 -0
  667. data/lib/stupidedi/versions/003050/segment_defs/W08.rb +26 -0
  668. data/lib/stupidedi/versions/003050/segment_defs/W12.rb +43 -0
  669. data/lib/stupidedi/versions/003050/segment_defs/W14.rb +20 -0
  670. data/lib/stupidedi/versions/003050/segment_defs/W17.rb +26 -0
  671. data/lib/stupidedi/versions/003050/segment_defs/W20.rb +28 -0
  672. data/lib/stupidedi/versions/003050/segment_defs/W27.rb +27 -0
  673. data/lib/stupidedi/versions/003050/segment_defs/W66.rb +26 -0
  674. data/lib/stupidedi/versions/003050/segment_defs/W76.rb +24 -0
  675. data/lib/stupidedi/versions/003050/segment_reqs.rb +11 -0
  676. data/lib/stupidedi/versions/003050/syntax_notes.rb +14 -0
  677. data/lib/stupidedi/versions/004010.rb +14 -0
  678. data/lib/stupidedi/versions/004010/element_defs.rb +9512 -0
  679. data/lib/stupidedi/versions/004010/element_reqs.rb +12 -0
  680. data/lib/stupidedi/versions/004010/element_types.rb +28 -0
  681. data/lib/stupidedi/versions/004010/element_types/an.rb +11 -0
  682. data/lib/stupidedi/versions/004010/element_types/dt.rb +11 -0
  683. data/lib/stupidedi/versions/004010/element_types/float_val.rb +11 -0
  684. data/lib/stupidedi/versions/004010/element_types/id.rb +11 -0
  685. data/lib/stupidedi/versions/004010/element_types/nn.rb +11 -0
  686. data/lib/stupidedi/versions/004010/element_types/tm.rb +11 -0
  687. data/lib/stupidedi/versions/004010/functional_group_def.rb +24 -0
  688. data/lib/stupidedi/versions/004010/segment_defs.rb +120 -0
  689. data/lib/stupidedi/versions/004010/segment_defs/AK1.rb +17 -0
  690. data/lib/stupidedi/versions/004010/segment_defs/AK2.rb +17 -0
  691. data/lib/stupidedi/versions/004010/segment_defs/AK3.rb +20 -0
  692. data/lib/stupidedi/versions/004010/segment_defs/AK4.rb +20 -0
  693. data/lib/stupidedi/versions/004010/segment_defs/AK5.rb +22 -0
  694. data/lib/stupidedi/versions/004010/segment_defs/AK9.rb +27 -0
  695. data/lib/stupidedi/versions/004010/segment_defs/AMT.rb +18 -0
  696. data/lib/stupidedi/versions/004010/segment_defs/AT7.rb +29 -0
  697. data/lib/stupidedi/versions/004010/segment_defs/AT8.rb +25 -0
  698. data/lib/stupidedi/versions/004010/segment_defs/B1.rb +20 -0
  699. data/lib/stupidedi/versions/004010/segment_defs/B10.rb +26 -0
  700. data/lib/stupidedi/versions/004010/segment_defs/B2.rb +27 -0
  701. data/lib/stupidedi/versions/004010/segment_defs/B2A.rb +17 -0
  702. data/lib/stupidedi/versions/004010/segment_defs/B3.rb +27 -0
  703. data/lib/stupidedi/versions/004010/segment_defs/BAK.rb +21 -0
  704. data/lib/stupidedi/versions/004010/segment_defs/BCT.rb +17 -0
  705. data/lib/stupidedi/versions/004010/segment_defs/BEG.rb +28 -0
  706. data/lib/stupidedi/versions/004010/segment_defs/BFR.rb +28 -0
  707. data/lib/stupidedi/versions/004010/segment_defs/BPR.rb +44 -0
  708. data/lib/stupidedi/versions/004010/segment_defs/BSN.rb +21 -0
  709. data/lib/stupidedi/versions/004010/segment_defs/BSS.rb +27 -0
  710. data/lib/stupidedi/versions/004010/segment_defs/C3.rb +18 -0
  711. data/lib/stupidedi/versions/004010/segment_defs/CAS.rb +50 -0
  712. data/lib/stupidedi/versions/004010/segment_defs/CLP.rb +28 -0
  713. data/lib/stupidedi/versions/004010/segment_defs/CTP.rb +31 -0
  714. data/lib/stupidedi/versions/004010/segment_defs/CTT.rb +25 -0
  715. data/lib/stupidedi/versions/004010/segment_defs/CUR.rb +51 -0
  716. data/lib/stupidedi/versions/004010/segment_defs/DTM.rb +24 -0
  717. data/lib/stupidedi/versions/004010/segment_defs/FST.rb +24 -0
  718. data/lib/stupidedi/versions/004010/segment_defs/G61.rb +22 -0
  719. data/lib/stupidedi/versions/004010/segment_defs/G62.rb +22 -0
  720. data/lib/stupidedi/versions/004010/segment_defs/G69.rb +16 -0
  721. data/lib/stupidedi/versions/004010/segment_defs/GE.rb +18 -0
  722. data/lib/stupidedi/versions/004010/segment_defs/GS.rb +24 -0
  723. data/lib/stupidedi/versions/004010/segment_defs/H3.rb +22 -0
  724. data/lib/stupidedi/versions/004010/segment_defs/HL.rb +20 -0
  725. data/lib/stupidedi/versions/004010/segment_defs/JIT.rb +18 -0
  726. data/lib/stupidedi/versions/004010/segment_defs/K1.rb +18 -0
  727. data/lib/stupidedi/versions/004010/segment_defs/L0.rb +30 -0
  728. data/lib/stupidedi/versions/004010/segment_defs/L1.rb +39 -0
  729. data/lib/stupidedi/versions/004010/segment_defs/L11.rb +21 -0
  730. data/lib/stupidedi/versions/004010/segment_defs/L3.rb +37 -0
  731. data/lib/stupidedi/versions/004010/segment_defs/L4.rb +21 -0
  732. data/lib/stupidedi/versions/004010/segment_defs/L5.rb +29 -0
  733. data/lib/stupidedi/versions/004010/segment_defs/L7.rb +32 -0
  734. data/lib/stupidedi/versions/004010/segment_defs/LAD.rb +34 -0
  735. data/lib/stupidedi/versions/004010/segment_defs/LFH.rb +25 -0
  736. data/lib/stupidedi/versions/004010/segment_defs/LH1.rb +29 -0
  737. data/lib/stupidedi/versions/004010/segment_defs/LH2.rb +33 -0
  738. data/lib/stupidedi/versions/004010/segment_defs/LH3.rb +21 -0
  739. data/lib/stupidedi/versions/004010/segment_defs/LIN.rb +47 -0
  740. data/lib/stupidedi/versions/004010/segment_defs/LQ.rb +18 -0
  741. data/lib/stupidedi/versions/004010/segment_defs/LX.rb +16 -0
  742. data/lib/stupidedi/versions/004010/segment_defs/M7.rb +21 -0
  743. data/lib/stupidedi/versions/004010/segment_defs/MAN.rb +23 -0
  744. data/lib/stupidedi/versions/004010/segment_defs/MEA.rb +36 -0
  745. data/lib/stupidedi/versions/004010/segment_defs/MIA.rb +40 -0
  746. data/lib/stupidedi/versions/004010/segment_defs/MOA.rb +25 -0
  747. data/lib/stupidedi/versions/004010/segment_defs/MS1.rb +33 -0
  748. data/lib/stupidedi/versions/004010/segment_defs/MS2.rb +22 -0
  749. data/lib/stupidedi/versions/004010/segment_defs/MS3.rb +21 -0
  750. data/lib/stupidedi/versions/004010/segment_defs/N1.rb +23 -0
  751. data/lib/stupidedi/versions/004010/segment_defs/N2.rb +17 -0
  752. data/lib/stupidedi/versions/004010/segment_defs/N3.rb +17 -0
  753. data/lib/stupidedi/versions/004010/segment_defs/N4.rb +22 -0
  754. data/lib/stupidedi/versions/004010/segment_defs/N7.rb +42 -0
  755. data/lib/stupidedi/versions/004010/segment_defs/N9.rb +25 -0
  756. data/lib/stupidedi/versions/004010/segment_defs/NM1.rb +28 -0
  757. data/lib/stupidedi/versions/004010/segment_defs/NTE.rb +18 -0
  758. data/lib/stupidedi/versions/004010/segment_defs/OID.rb +28 -0
  759. data/lib/stupidedi/versions/004010/segment_defs/PER.rb +28 -0
  760. data/lib/stupidedi/versions/004010/segment_defs/PID.rb +29 -0
  761. data/lib/stupidedi/versions/004010/segment_defs/PLB.rb +37 -0
  762. data/lib/stupidedi/versions/004010/segment_defs/PLD.rb +21 -0
  763. data/lib/stupidedi/versions/004010/segment_defs/PO1.rb +52 -0
  764. data/lib/stupidedi/versions/004010/segment_defs/PO4.rb +20 -0
  765. data/lib/stupidedi/versions/004010/segment_defs/PRF.rb +16 -0
  766. data/lib/stupidedi/versions/004010/segment_defs/QTY.rb +21 -0
  767. data/lib/stupidedi/versions/004010/segment_defs/R3.rb +24 -0
  768. data/lib/stupidedi/versions/004010/segment_defs/REF.rb +20 -0
  769. data/lib/stupidedi/versions/004010/segment_defs/S5.rb +29 -0
  770. data/lib/stupidedi/versions/004010/segment_defs/SCH.rb +24 -0
  771. data/lib/stupidedi/versions/004010/segment_defs/SDP.rb +17 -0
  772. data/lib/stupidedi/versions/004010/segment_defs/SE.rb +19 -0
  773. data/lib/stupidedi/versions/004010/segment_defs/SHP.rb +19 -0
  774. data/lib/stupidedi/versions/004010/segment_defs/SN1.rb +24 -0
  775. data/lib/stupidedi/versions/004010/segment_defs/ST.rb +18 -0
  776. data/lib/stupidedi/versions/004010/segment_defs/SVC.rb +23 -0
  777. data/lib/stupidedi/versions/004010/segment_defs/TD1.rb +19 -0
  778. data/lib/stupidedi/versions/004010/segment_defs/TD3.rb +23 -0
  779. data/lib/stupidedi/versions/004010/segment_defs/TD4.rb +22 -0
  780. data/lib/stupidedi/versions/004010/segment_defs/TD5.rb +21 -0
  781. data/lib/stupidedi/versions/004010/segment_defs/TRN.rb +19 -0
  782. data/lib/stupidedi/versions/004010/segment_defs/TS2.rb +35 -0
  783. data/lib/stupidedi/versions/004010/segment_defs/TS3.rb +39 -0
  784. data/lib/stupidedi/versions/004010/segment_defs/UIT.rb +17 -0
  785. data/lib/stupidedi/versions/004010/segment_defs/W01.rb +37 -0
  786. data/lib/stupidedi/versions/004010/segment_defs/W03.rb +25 -0
  787. data/lib/stupidedi/versions/004010/segment_defs/W04.rb +35 -0
  788. data/lib/stupidedi/versions/004010/segment_defs/W05.rb +24 -0
  789. data/lib/stupidedi/versions/004010/segment_defs/W06.rb +29 -0
  790. data/lib/stupidedi/versions/004010/segment_defs/W07.rb +30 -0
  791. data/lib/stupidedi/versions/004010/segment_defs/W08.rb +26 -0
  792. data/lib/stupidedi/versions/004010/segment_defs/W12.rb +43 -0
  793. data/lib/stupidedi/versions/004010/segment_defs/W14.rb +20 -0
  794. data/lib/stupidedi/versions/004010/segment_defs/W17.rb +26 -0
  795. data/lib/stupidedi/versions/004010/segment_defs/W20.rb +28 -0
  796. data/lib/stupidedi/versions/004010/segment_defs/W27.rb +27 -0
  797. data/lib/stupidedi/versions/004010/segment_defs/W66.rb +26 -0
  798. data/lib/stupidedi/versions/004010/segment_defs/W76.rb +24 -0
  799. data/lib/stupidedi/versions/004010/segment_reqs.rb +11 -0
  800. data/lib/stupidedi/versions/004010/syntax_notes.rb +14 -0
  801. data/lib/stupidedi/versions/005010.rb +14 -0
  802. data/lib/stupidedi/versions/005010/element_defs.rb +3353 -0
  803. data/lib/stupidedi/versions/005010/element_reqs.rb +12 -0
  804. data/lib/stupidedi/versions/005010/element_types.rb +28 -0
  805. data/lib/stupidedi/versions/005010/element_types/an.rb +11 -0
  806. data/lib/stupidedi/versions/005010/element_types/dt.rb +11 -0
  807. data/lib/stupidedi/versions/005010/element_types/float_val.rb +11 -0
  808. data/lib/stupidedi/versions/005010/element_types/id.rb +11 -0
  809. data/lib/stupidedi/versions/005010/element_types/nn.rb +11 -0
  810. data/lib/stupidedi/versions/005010/element_types/tm.rb +11 -0
  811. data/lib/stupidedi/versions/005010/functional_group_def.rb +23 -0
  812. data/lib/stupidedi/versions/005010/segment_defs.rb +156 -0
  813. data/lib/stupidedi/versions/005010/segment_defs/AAA.rb +20 -0
  814. data/lib/stupidedi/versions/005010/segment_defs/ACT.rb +27 -0
  815. data/lib/stupidedi/versions/005010/segment_defs/AD1.rb +15 -0
  816. data/lib/stupidedi/versions/005010/segment_defs/ADX.rb +15 -0
  817. data/lib/stupidedi/versions/005010/segment_defs/AIN.rb +15 -0
  818. data/lib/stupidedi/versions/005010/segment_defs/AK1.rb +18 -0
  819. data/lib/stupidedi/versions/005010/segment_defs/AK2.rb +18 -0
  820. data/lib/stupidedi/versions/005010/segment_defs/AK3.rb +20 -0
  821. data/lib/stupidedi/versions/005010/segment_defs/AK4.rb +20 -0
  822. data/lib/stupidedi/versions/005010/segment_defs/AK5.rb +22 -0
  823. data/lib/stupidedi/versions/005010/segment_defs/AK9.rb +27 -0
  824. data/lib/stupidedi/versions/005010/segment_defs/AMT.rb +18 -0
  825. data/lib/stupidedi/versions/005010/segment_defs/ASM.rb +15 -0
  826. data/lib/stupidedi/versions/005010/segment_defs/ATN.rb +15 -0
  827. data/lib/stupidedi/versions/005010/segment_defs/BEN.rb +15 -0
  828. data/lib/stupidedi/versions/005010/segment_defs/BGN.rb +25 -0
  829. data/lib/stupidedi/versions/005010/segment_defs/BHT.rb +23 -0
  830. data/lib/stupidedi/versions/005010/segment_defs/BPR.rb +44 -0
  831. data/lib/stupidedi/versions/005010/segment_defs/CAS.rb +50 -0
  832. data/lib/stupidedi/versions/005010/segment_defs/CL1.rb +19 -0
  833. data/lib/stupidedi/versions/005010/segment_defs/CLM.rb +35 -0
  834. data/lib/stupidedi/versions/005010/segment_defs/CLP.rb +29 -0
  835. data/lib/stupidedi/versions/005010/segment_defs/CN1.rb +21 -0
  836. data/lib/stupidedi/versions/005010/segment_defs/COB.rb +19 -0
  837. data/lib/stupidedi/versions/005010/segment_defs/CR1.rb +28 -0
  838. data/lib/stupidedi/versions/005010/segment_defs/CR2.rb +31 -0
  839. data/lib/stupidedi/versions/005010/segment_defs/CR3.rb +22 -0
  840. data/lib/stupidedi/versions/005010/segment_defs/CR4.rb +15 -0
  841. data/lib/stupidedi/versions/005010/segment_defs/CR5.rb +15 -0
  842. data/lib/stupidedi/versions/005010/segment_defs/CR6.rb +15 -0
  843. data/lib/stupidedi/versions/005010/segment_defs/CR7.rb +15 -0
  844. data/lib/stupidedi/versions/005010/segment_defs/CR8.rb +15 -0
  845. data/lib/stupidedi/versions/005010/segment_defs/CRC.rb +22 -0
  846. data/lib/stupidedi/versions/005010/segment_defs/CTP.rb +31 -0
  847. data/lib/stupidedi/versions/005010/segment_defs/CTX.rb +23 -0
  848. data/lib/stupidedi/versions/005010/segment_defs/CUR.rb +51 -0
  849. data/lib/stupidedi/versions/005010/segment_defs/DED.rb +15 -0
  850. data/lib/stupidedi/versions/005010/segment_defs/DMG.rb +29 -0
  851. data/lib/stupidedi/versions/005010/segment_defs/DN1.rb +19 -0
  852. data/lib/stupidedi/versions/005010/segment_defs/DN2.rb +21 -0
  853. data/lib/stupidedi/versions/005010/segment_defs/DSB.rb +24 -0
  854. data/lib/stupidedi/versions/005010/segment_defs/DTM.rb +21 -0
  855. data/lib/stupidedi/versions/005010/segment_defs/DTP.rb +18 -0
  856. data/lib/stupidedi/versions/005010/segment_defs/EB.rb +30 -0
  857. data/lib/stupidedi/versions/005010/segment_defs/EC.rb +21 -0
  858. data/lib/stupidedi/versions/005010/segment_defs/EM.rb +15 -0
  859. data/lib/stupidedi/versions/005010/segment_defs/EMS.rb +15 -0
  860. data/lib/stupidedi/versions/005010/segment_defs/ENT.rb +15 -0
  861. data/lib/stupidedi/versions/005010/segment_defs/EQ.rb +21 -0
  862. data/lib/stupidedi/versions/005010/segment_defs/FA1.rb +15 -0
  863. data/lib/stupidedi/versions/005010/segment_defs/FA2.rb +15 -0
  864. data/lib/stupidedi/versions/005010/segment_defs/FC.rb +15 -0
  865. data/lib/stupidedi/versions/005010/segment_defs/FRM.rb +22 -0
  866. data/lib/stupidedi/versions/005010/segment_defs/FSA.rb +15 -0
  867. data/lib/stupidedi/versions/005010/segment_defs/G53.rb +15 -0
  868. data/lib/stupidedi/versions/005010/segment_defs/GE.rb +18 -0
  869. data/lib/stupidedi/versions/005010/segment_defs/GS.rb +24 -0
  870. data/lib/stupidedi/versions/005010/segment_defs/HCP.rb +34 -0
  871. data/lib/stupidedi/versions/005010/segment_defs/HCR.rb +15 -0
  872. data/lib/stupidedi/versions/005010/segment_defs/HD.rb +26 -0
  873. data/lib/stupidedi/versions/005010/segment_defs/HI.rb +27 -0
  874. data/lib/stupidedi/versions/005010/segment_defs/HL.rb +20 -0
  875. data/lib/stupidedi/versions/005010/segment_defs/HLH.rb +22 -0
  876. data/lib/stupidedi/versions/005010/segment_defs/HSD.rb +25 -0
  877. data/lib/stupidedi/versions/005010/segment_defs/ICM.rb +22 -0
  878. data/lib/stupidedi/versions/005010/segment_defs/IDC.rb +20 -0
  879. data/lib/stupidedi/versions/005010/segment_defs/III.rb +26 -0
  880. data/lib/stupidedi/versions/005010/segment_defs/IK3.rb +19 -0
  881. data/lib/stupidedi/versions/005010/segment_defs/IK4.rb +20 -0
  882. data/lib/stupidedi/versions/005010/segment_defs/IK5.rb +22 -0
  883. data/lib/stupidedi/versions/005010/segment_defs/IMM.rb +15 -0
  884. data/lib/stupidedi/versions/005010/segment_defs/INS.rb +33 -0
  885. data/lib/stupidedi/versions/005010/segment_defs/INV.rb +15 -0
  886. data/lib/stupidedi/versions/005010/segment_defs/IT1.rb +15 -0
  887. data/lib/stupidedi/versions/005010/segment_defs/K3.rb +18 -0
  888. data/lib/stupidedi/versions/005010/segment_defs/LC.rb +15 -0
  889. data/lib/stupidedi/versions/005010/segment_defs/LE.rb +17 -0
  890. data/lib/stupidedi/versions/005010/segment_defs/LIN.rb +60 -0
  891. data/lib/stupidedi/versions/005010/segment_defs/LOC.rb +15 -0
  892. data/lib/stupidedi/versions/005010/segment_defs/LQ.rb +18 -0
  893. data/lib/stupidedi/versions/005010/segment_defs/LS.rb +16 -0
  894. data/lib/stupidedi/versions/005010/segment_defs/LUI.rb +22 -0
  895. data/lib/stupidedi/versions/005010/segment_defs/LX.rb +16 -0
  896. data/lib/stupidedi/versions/005010/segment_defs/MEA.rb +35 -0
  897. data/lib/stupidedi/versions/005010/segment_defs/MIA.rb +40 -0
  898. data/lib/stupidedi/versions/005010/segment_defs/MOA.rb +25 -0
  899. data/lib/stupidedi/versions/005010/segment_defs/MPI.rb +23 -0
  900. data/lib/stupidedi/versions/005010/segment_defs/MSG.rb +20 -0
  901. data/lib/stupidedi/versions/005010/segment_defs/N1.rb +23 -0
  902. data/lib/stupidedi/versions/005010/segment_defs/N2.rb +17 -0
  903. data/lib/stupidedi/versions/005010/segment_defs/N3.rb +17 -0
  904. data/lib/stupidedi/versions/005010/segment_defs/N4.rb +25 -0
  905. data/lib/stupidedi/versions/005010/segment_defs/N9.rb +15 -0
  906. data/lib/stupidedi/versions/005010/segment_defs/NM1.rb +30 -0
  907. data/lib/stupidedi/versions/005010/segment_defs/NTE.rb +18 -0
  908. data/lib/stupidedi/versions/005010/segment_defs/NX1.rb +15 -0
  909. data/lib/stupidedi/versions/005010/segment_defs/OI.rb +22 -0
  910. data/lib/stupidedi/versions/005010/segment_defs/PAT.rb +26 -0
  911. data/lib/stupidedi/versions/005010/segment_defs/PCT.rb +15 -0
  912. data/lib/stupidedi/versions/005010/segment_defs/PDP.rb +15 -0
  913. data/lib/stupidedi/versions/005010/segment_defs/PDR.rb +15 -0
  914. data/lib/stupidedi/versions/005010/segment_defs/PEN.rb +15 -0
  915. data/lib/stupidedi/versions/005010/segment_defs/PER.rb +28 -0
  916. data/lib/stupidedi/versions/005010/segment_defs/PID.rb +15 -0
  917. data/lib/stupidedi/versions/005010/segment_defs/PKD.rb +15 -0
  918. data/lib/stupidedi/versions/005010/segment_defs/PLA.rb +21 -0
  919. data/lib/stupidedi/versions/005010/segment_defs/PLB.rb +37 -0
  920. data/lib/stupidedi/versions/005010/segment_defs/PM.rb +15 -0
  921. data/lib/stupidedi/versions/005010/segment_defs/PRV.rb +22 -0
  922. data/lib/stupidedi/versions/005010/segment_defs/PS1.rb +18 -0
  923. data/lib/stupidedi/versions/005010/segment_defs/PWK.rb +26 -0
  924. data/lib/stupidedi/versions/005010/segment_defs/PYD.rb +15 -0
  925. data/lib/stupidedi/versions/005010/segment_defs/QTY.rb +21 -0
  926. data/lib/stupidedi/versions/005010/segment_defs/RDM.rb +21 -0
  927. data/lib/stupidedi/versions/005010/segment_defs/REF.rb +20 -0
  928. data/lib/stupidedi/versions/005010/segment_defs/REL.rb +15 -0
  929. data/lib/stupidedi/versions/005010/segment_defs/RMR.rb +15 -0
  930. data/lib/stupidedi/versions/005010/segment_defs/RP.rb +15 -0
  931. data/lib/stupidedi/versions/005010/segment_defs/RPA.rb +15 -0
  932. data/lib/stupidedi/versions/005010/segment_defs/RYL.rb +15 -0
  933. data/lib/stupidedi/versions/005010/segment_defs/SAC.rb +15 -0
  934. data/lib/stupidedi/versions/005010/segment_defs/SBR.rb +25 -0
  935. data/lib/stupidedi/versions/005010/segment_defs/SD1.rb +15 -0
  936. data/lib/stupidedi/versions/005010/segment_defs/SE.rb +19 -0
  937. data/lib/stupidedi/versions/005010/segment_defs/SLN.rb +15 -0
  938. data/lib/stupidedi/versions/005010/segment_defs/ST.rb +19 -0
  939. data/lib/stupidedi/versions/005010/segment_defs/STC.rb +28 -0
  940. data/lib/stupidedi/versions/005010/segment_defs/SV1.rb +38 -0
  941. data/lib/stupidedi/versions/005010/segment_defs/SV2.rb +26 -0
  942. data/lib/stupidedi/versions/005010/segment_defs/SV3.rb +26 -0
  943. data/lib/stupidedi/versions/005010/segment_defs/SV4.rb +15 -0
  944. data/lib/stupidedi/versions/005010/segment_defs/SV5.rb +24 -0
  945. data/lib/stupidedi/versions/005010/segment_defs/SV6.rb +15 -0
  946. data/lib/stupidedi/versions/005010/segment_defs/SV7.rb +15 -0
  947. data/lib/stupidedi/versions/005010/segment_defs/SVC.rb +23 -0
  948. data/lib/stupidedi/versions/005010/segment_defs/SVD.rb +23 -0
  949. data/lib/stupidedi/versions/005010/segment_defs/TOO.rb +19 -0
  950. data/lib/stupidedi/versions/005010/segment_defs/TRN.rb +19 -0
  951. data/lib/stupidedi/versions/005010/segment_defs/TS2.rb +35 -0
  952. data/lib/stupidedi/versions/005010/segment_defs/TS3.rb +39 -0
  953. data/lib/stupidedi/versions/005010/segment_defs/TXI.rb +15 -0
  954. data/lib/stupidedi/versions/005010/segment_defs/TXP.rb +15 -0
  955. data/lib/stupidedi/versions/005010/segment_defs/UM.rb +15 -0
  956. data/lib/stupidedi/versions/005010/segment_defs/UR.rb +15 -0
  957. data/lib/stupidedi/versions/005010/segment_defs/VEH.rb +15 -0
  958. data/lib/stupidedi/versions/005010/segment_reqs.rb +11 -0
  959. data/lib/stupidedi/versions/005010/syntax_notes.rb +14 -0
  960. data/lib/stupidedi/versions/common.rb +11 -0
  961. data/lib/stupidedi/versions/common/element_reqs.rb +13 -0
  962. data/lib/stupidedi/versions/common/element_types.rb +29 -0
  963. data/lib/stupidedi/versions/common/element_types/an.rb +386 -0
  964. data/lib/stupidedi/versions/common/element_types/dt.rb +572 -0
  965. data/lib/stupidedi/versions/common/element_types/id.rb +304 -0
  966. data/lib/stupidedi/versions/common/element_types/nn.rb +312 -0
  967. data/lib/stupidedi/versions/common/element_types/operators.rb +128 -0
  968. data/lib/stupidedi/versions/common/element_types/r.rb +340 -0
  969. data/lib/stupidedi/versions/common/element_types/simple_element.rb +73 -0
  970. data/lib/stupidedi/versions/common/element_types/tm.rb +347 -0
  971. data/lib/stupidedi/versions/common/segment_reqs.rb +15 -0
  972. data/lib/stupidedi/versions/common/syntax_notes.rb +172 -0
  973. data/lib/stupidedi/versions/functional_groups.rb +23 -8
  974. data/lib/stupidedi/versions/interchanges.rb +2 -9
  975. data/lib/stupidedi/writer.rb +0 -1
  976. data/lib/stupidedi/writer/claredi.rb +75 -41
  977. data/lib/stupidedi/writer/default.rb +23 -31
  978. data/lib/stupidedi/zipper.rb +0 -3
  979. data/lib/stupidedi/zipper/abstract_cursor.rb +10 -14
  980. data/lib/stupidedi/zipper/dangling_cursor.rb +0 -4
  981. data/lib/stupidedi/zipper/edited_cursor.rb +0 -4
  982. data/lib/stupidedi/zipper/memoized_cursor.rb +0 -4
  983. data/lib/stupidedi/zipper/path.rb +0 -6
  984. data/lib/stupidedi/zipper/root_cursor.rb +0 -4
  985. data/lib/stupidedi/zipper/stack_cursor.rb +0 -67
  986. metadata +872 -1026
  987. data/doc/unwritten/Defining.md +0 -0
  988. data/lib/ruby/instance_exec.rb +0 -30
  989. data/lib/ruby/jruby_hack.rb +0 -683
  990. data/lib/ruby/symbol.rb +0 -29
  991. data/lib/stupidedi/blank_slate.rb +0 -12
  992. data/lib/stupidedi/builder/builder_dsl.rb +0 -293
  993. data/lib/stupidedi/builder/constraint_table.rb +0 -476
  994. data/lib/stupidedi/builder/generation.rb +0 -147
  995. data/lib/stupidedi/builder/identifier_stack.rb +0 -171
  996. data/lib/stupidedi/builder/instruction.rb +0 -116
  997. data/lib/stupidedi/builder/instruction_table.rb +0 -220
  998. data/lib/stupidedi/builder/navigation.rb +0 -735
  999. data/lib/stupidedi/builder/state_machine.rb +0 -65
  1000. data/lib/stupidedi/builder/states/abstract_state.rb +0 -338
  1001. data/lib/stupidedi/builder/states/failure_state.rb +0 -73
  1002. data/lib/stupidedi/builder/states/functional_group_state.rb +0 -100
  1003. data/lib/stupidedi/builder/states/initial_state.rb +0 -66
  1004. data/lib/stupidedi/builder/states/interchange_state.rb +0 -98
  1005. data/lib/stupidedi/builder/states/loop_state.rb +0 -83
  1006. data/lib/stupidedi/builder/states/table_state.rb +0 -100
  1007. data/lib/stupidedi/builder/states/transaction_set_state.rb +0 -116
  1008. data/lib/stupidedi/builder/states/transmission_state.rb +0 -63
  1009. data/lib/stupidedi/builder/tokenization.rb +0 -202
  1010. data/lib/stupidedi/contrib/002001.rb +0 -14
  1011. data/lib/stupidedi/contrib/002001/guides.rb +0 -22
  1012. data/lib/stupidedi/contrib/002001/guides/FA997.rb +0 -82
  1013. data/lib/stupidedi/contrib/002001/guides/PO830.rb +0 -184
  1014. data/lib/stupidedi/contrib/002001/guides/SH856.rb +0 -217
  1015. data/lib/stupidedi/contrib/002001/transaction_set_defs.rb +0 -25
  1016. data/lib/stupidedi/contrib/002001/transaction_set_defs/FA997.rb +0 -32
  1017. data/lib/stupidedi/contrib/002001/transaction_set_defs/PO830.rb +0 -47
  1018. data/lib/stupidedi/contrib/002001/transaction_set_defs/SH856.rb +0 -39
  1019. data/lib/stupidedi/contrib/003010.rb +0 -14
  1020. data/lib/stupidedi/contrib/003010/guides.rb +0 -23
  1021. data/lib/stupidedi/contrib/003010/guides/PC860.rb +0 -176
  1022. data/lib/stupidedi/contrib/003010/guides/PO850.rb +0 -169
  1023. data/lib/stupidedi/contrib/003010/guides/PS830.rb +0 -169
  1024. data/lib/stupidedi/contrib/003010/guides/RA820.rb +0 -187
  1025. data/lib/stupidedi/contrib/003010/transaction_set_defs.rb +0 -25
  1026. data/lib/stupidedi/contrib/003010/transaction_set_defs/PC860.rb +0 -48
  1027. data/lib/stupidedi/contrib/003010/transaction_set_defs/PO850.rb +0 -49
  1028. data/lib/stupidedi/contrib/003010/transaction_set_defs/PS830.rb +0 -49
  1029. data/lib/stupidedi/contrib/003010/transaction_set_defs/RA820.rb +0 -40
  1030. data/lib/stupidedi/contrib/003040.rb +0 -14
  1031. data/lib/stupidedi/contrib/003040/guides.rb +0 -20
  1032. data/lib/stupidedi/contrib/003040/guides/WA142.rb +0 -187
  1033. data/lib/stupidedi/contrib/003040/transaction_set_defs.rb +0 -16
  1034. data/lib/stupidedi/contrib/003040/transaction_set_defs/WA142.rb +0 -53
  1035. data/lib/stupidedi/contrib/003050.rb +0 -14
  1036. data/lib/stupidedi/contrib/003050/guides.rb +0 -16
  1037. data/lib/stupidedi/contrib/003050/guides/PO850.rb +0 -97
  1038. data/lib/stupidedi/contrib/003050/transaction_set_defs.rb +0 -15
  1039. data/lib/stupidedi/contrib/003050/transaction_set_defs/PO850.rb +0 -43
  1040. data/lib/stupidedi/contrib/004010.rb +0 -14
  1041. data/lib/stupidedi/contrib/004010/guides.rb +0 -28
  1042. data/lib/stupidedi/contrib/004010/guides/AR943.rb +0 -89
  1043. data/lib/stupidedi/contrib/004010/guides/FA997.rb +0 -82
  1044. data/lib/stupidedi/contrib/004010/guides/GF990.rb +0 -55
  1045. data/lib/stupidedi/contrib/004010/guides/IM210.rb +0 -267
  1046. data/lib/stupidedi/contrib/004010/guides/OW940.rb +0 -121
  1047. data/lib/stupidedi/contrib/004010/guides/PO850.rb +0 -133
  1048. data/lib/stupidedi/contrib/004010/guides/PS830.rb +0 -165
  1049. data/lib/stupidedi/contrib/004010/guides/QM214.rb +0 -141
  1050. data/lib/stupidedi/contrib/004010/guides/RE944.rb +0 -75
  1051. data/lib/stupidedi/contrib/004010/guides/SH856.rb +0 -187
  1052. data/lib/stupidedi/contrib/004010/guides/SM204.rb +0 -480
  1053. data/lib/stupidedi/contrib/004010/guides/SQ866.rb +0 -120
  1054. data/lib/stupidedi/contrib/004010/guides/SS862.rb +0 -178
  1055. data/lib/stupidedi/contrib/004010/guides/SW945.rb +0 -120
  1056. data/lib/stupidedi/contrib/004010/transaction_set_defs.rb +0 -61
  1057. data/lib/stupidedi/contrib/004010/transaction_set_defs/AR943.rb +0 -35
  1058. data/lib/stupidedi/contrib/004010/transaction_set_defs/FA997.rb +0 -31
  1059. data/lib/stupidedi/contrib/004010/transaction_set_defs/GF990.rb +0 -22
  1060. data/lib/stupidedi/contrib/004010/transaction_set_defs/IM210.rb +0 -47
  1061. data/lib/stupidedi/contrib/004010/transaction_set_defs/OW940.rb +0 -44
  1062. data/lib/stupidedi/contrib/004010/transaction_set_defs/PO850.rb +0 -51
  1063. data/lib/stupidedi/contrib/004010/transaction_set_defs/PR855.rb +0 -35
  1064. data/lib/stupidedi/contrib/004010/transaction_set_defs/PS830.rb +0 -45
  1065. data/lib/stupidedi/contrib/004010/transaction_set_defs/QM214.rb +0 -41
  1066. data/lib/stupidedi/contrib/004010/transaction_set_defs/RE944.rb +0 -35
  1067. data/lib/stupidedi/contrib/004010/transaction_set_defs/SC832.rb +0 -45
  1068. data/lib/stupidedi/contrib/004010/transaction_set_defs/SH856.rb +0 -44
  1069. data/lib/stupidedi/contrib/004010/transaction_set_defs/SM204.rb +0 -85
  1070. data/lib/stupidedi/contrib/004010/transaction_set_defs/SQ866.rb +0 -33
  1071. data/lib/stupidedi/contrib/004010/transaction_set_defs/SS862.rb +0 -41
  1072. data/lib/stupidedi/contrib/004010/transaction_set_defs/SW945.rb +0 -44
  1073. data/lib/stupidedi/guides/004010.rb +0 -22
  1074. data/lib/stupidedi/guides/004010/X091A1-HP835.rb +0 -533
  1075. data/lib/stupidedi/guides/004010/element_reqs.rb +0 -41
  1076. data/lib/stupidedi/guides/004010/guide_builder.rb +0 -184
  1077. data/lib/stupidedi/guides/004010/segment_reqs.rb +0 -35
  1078. data/lib/stupidedi/guides/005010.rb +0 -87
  1079. data/lib/stupidedi/guides/005010/X212-HR276.rb +0 -387
  1080. data/lib/stupidedi/guides/005010/X214-HN277.rb +0 -412
  1081. data/lib/stupidedi/guides/005010/X220-BE834.rb +0 -709
  1082. data/lib/stupidedi/guides/005010/X220A1-BE834.rb +0 -709
  1083. data/lib/stupidedi/guides/005010/X221-HP835.rb +0 -616
  1084. data/lib/stupidedi/guides/005010/X221A1-HP835.rb +0 -616
  1085. data/lib/stupidedi/guides/005010/X222-HC837P.rb +0 -2294
  1086. data/lib/stupidedi/guides/005010/X222A1-HC837P.rb +0 -2300
  1087. data/lib/stupidedi/guides/005010/X223-HC837I.rb +0 -2579
  1088. data/lib/stupidedi/guides/005010/X231-FA999.rb +0 -126
  1089. data/lib/stupidedi/guides/005010/X231A1-FA999.rb +0 -122
  1090. data/lib/stupidedi/guides/005010/X279-HB271.rb +0 -832
  1091. data/lib/stupidedi/guides/005010/X279-HS270.rb +0 -594
  1092. data/lib/stupidedi/guides/005010/X279A1-HB271.rb +0 -845
  1093. data/lib/stupidedi/guides/005010/X279A1-HS270.rb +0 -594
  1094. data/lib/stupidedi/guides/005010/element_reqs.rb +0 -41
  1095. data/lib/stupidedi/guides/005010/guide_builder.rb +0 -205
  1096. data/lib/stupidedi/guides/005010/segment_reqs.rb +0 -35
  1097. data/lib/stupidedi/schema/auditor.rb +0 -435
  1098. data/lib/stupidedi/schema/element_def.rb +0 -177
  1099. data/lib/stupidedi/schema/element_use.rb +0 -255
  1100. data/lib/stupidedi/tail_call.rb +0 -111
  1101. data/lib/stupidedi/thread_local.rb +0 -177
  1102. data/lib/stupidedi/versions/functional_groups/002001.rb +0 -41
  1103. data/lib/stupidedi/versions/functional_groups/002001/element_defs.rb +0 -10685
  1104. data/lib/stupidedi/versions/functional_groups/002001/element_reqs.rb +0 -21
  1105. data/lib/stupidedi/versions/functional_groups/002001/element_types.rb +0 -130
  1106. data/lib/stupidedi/versions/functional_groups/002001/element_types/date_val.rb +0 -576
  1107. data/lib/stupidedi/versions/functional_groups/002001/element_types/fixnum_val.rb +0 -318
  1108. data/lib/stupidedi/versions/functional_groups/002001/element_types/float_val.rb +0 -349
  1109. data/lib/stupidedi/versions/functional_groups/002001/element_types/identifier_val.rb +0 -362
  1110. data/lib/stupidedi/versions/functional_groups/002001/element_types/operators.rb +0 -134
  1111. data/lib/stupidedi/versions/functional_groups/002001/element_types/string_val.rb +0 -394
  1112. data/lib/stupidedi/versions/functional_groups/002001/element_types/time_val.rb +0 -330
  1113. data/lib/stupidedi/versions/functional_groups/002001/functional_group_def.rb +0 -33
  1114. data/lib/stupidedi/versions/functional_groups/002001/segment_defs.rb +0 -252
  1115. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AK1.rb +0 -21
  1116. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AK2.rb +0 -22
  1117. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AK3.rb +0 -21
  1118. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AK4.rb +0 -23
  1119. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AK5.rb +0 -25
  1120. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AK9.rb +0 -25
  1121. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AT7.rb +0 -32
  1122. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AT8.rb +0 -29
  1123. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/ATH.rb +0 -24
  1124. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/B1.rb +0 -23
  1125. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/B10.rb +0 -30
  1126. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/B2.rb +0 -31
  1127. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/B2A.rb +0 -21
  1128. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/BEG.rb +0 -31
  1129. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/BFR.rb +0 -32
  1130. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/BSN.rb +0 -27
  1131. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/CTT.rb +0 -29
  1132. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/CUR.rb +0 -58
  1133. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/DTM.rb +0 -30
  1134. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/FST.rb +0 -32
  1135. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/G61.rb +0 -26
  1136. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/G62.rb +0 -27
  1137. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/G69.rb +0 -21
  1138. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/GE.rb +0 -21
  1139. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/GS.rb +0 -27
  1140. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/HL.rb +0 -23
  1141. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/J2X.rb +0 -23
  1142. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/K1.rb +0 -21
  1143. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/L11.rb +0 -25
  1144. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/L3.rb +0 -40
  1145. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/L5.rb +0 -33
  1146. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/LFH.rb +0 -29
  1147. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/LH1.rb +0 -33
  1148. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/LH2.rb +0 -37
  1149. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/LH3.rb +0 -25
  1150. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/LIN.rb +0 -51
  1151. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/LX.rb +0 -20
  1152. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/M7.rb +0 -24
  1153. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/MAN.rb +0 -21
  1154. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/MEA.rb +0 -33
  1155. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/MS1.rb +0 -36
  1156. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/MS2.rb +0 -26
  1157. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/MS3.rb +0 -26
  1158. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/N1.rb +0 -23
  1159. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/N2.rb +0 -21
  1160. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/N3.rb +0 -21
  1161. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/N4.rb +0 -30
  1162. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/N7.rb +0 -46
  1163. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/N9.rb +0 -29
  1164. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/NTE.rb +0 -21
  1165. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/PER.rb +0 -32
  1166. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/PID.rb +0 -34
  1167. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/PLD.rb +0 -25
  1168. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/PO1.rb +0 -60
  1169. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/PO4.rb +0 -23
  1170. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/REF.rb +0 -25
  1171. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/S5.rb +0 -34
  1172. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/SDP.rb +0 -21
  1173. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/SE.rb +0 -21
  1174. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/SN1.rb +0 -28
  1175. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/ST.rb +0 -21
  1176. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/TD1.rb +0 -30
  1177. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/TD3.rb +0 -23
  1178. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/TD5.rb +0 -23
  1179. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/UNT.rb +0 -20
  1180. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W01.rb +0 -44
  1181. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W03.rb +0 -30
  1182. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W04.rb +0 -40
  1183. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W05.rb +0 -29
  1184. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W06.rb +0 -33
  1185. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W07.rb +0 -36
  1186. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W08.rb +0 -32
  1187. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W12.rb +0 -51
  1188. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W14.rb +0 -25
  1189. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W17.rb +0 -31
  1190. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W20.rb +0 -33
  1191. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W27.rb +0 -31
  1192. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W66.rb +0 -31
  1193. data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W76.rb +0 -30
  1194. data/lib/stupidedi/versions/functional_groups/002001/segment_reqs.rb +0 -21
  1195. data/lib/stupidedi/versions/functional_groups/002001/syntax_notes.rb +0 -177
  1196. data/lib/stupidedi/versions/functional_groups/002001/transaction_set_defs.rb +0 -14
  1197. data/lib/stupidedi/versions/functional_groups/003010.rb +0 -41
  1198. data/lib/stupidedi/versions/functional_groups/003010/element_defs.rb +0 -9311
  1199. data/lib/stupidedi/versions/functional_groups/003010/element_reqs.rb +0 -22
  1200. data/lib/stupidedi/versions/functional_groups/003010/element_types.rb +0 -130
  1201. data/lib/stupidedi/versions/functional_groups/003010/element_types/date_val.rb +0 -576
  1202. data/lib/stupidedi/versions/functional_groups/003010/element_types/fixnum_val.rb +0 -319
  1203. data/lib/stupidedi/versions/functional_groups/003010/element_types/float_val.rb +0 -349
  1204. data/lib/stupidedi/versions/functional_groups/003010/element_types/identifier_val.rb +0 -361
  1205. data/lib/stupidedi/versions/functional_groups/003010/element_types/operators.rb +0 -134
  1206. data/lib/stupidedi/versions/functional_groups/003010/element_types/string_val.rb +0 -391
  1207. data/lib/stupidedi/versions/functional_groups/003010/element_types/time_val.rb +0 -330
  1208. data/lib/stupidedi/versions/functional_groups/003010/functional_group_def.rb +0 -33
  1209. data/lib/stupidedi/versions/functional_groups/003010/segment_defs.rb +0 -269
  1210. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/AK1.rb +0 -21
  1211. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/AK2.rb +0 -22
  1212. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/AK3.rb +0 -21
  1213. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/AK9.rb +0 -25
  1214. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/AT7.rb +0 -32
  1215. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/AT8.rb +0 -29
  1216. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/B1.rb +0 -23
  1217. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/B10.rb +0 -30
  1218. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/B2.rb +0 -31
  1219. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/B2A.rb +0 -21
  1220. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/BCH.rb +0 -32
  1221. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/BEG.rb +0 -31
  1222. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/BFR.rb +0 -41
  1223. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/BPS.rb +0 -34
  1224. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/BSN.rb +0 -27
  1225. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/CTT.rb +0 -29
  1226. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/CUR.rb +0 -59
  1227. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/DTM.rb +0 -31
  1228. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/FOB.rb +0 -26
  1229. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/FST.rb +0 -31
  1230. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/G61.rb +0 -26
  1231. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/G62.rb +0 -27
  1232. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/G69.rb +0 -21
  1233. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/GE.rb +0 -21
  1234. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/GS.rb +0 -27
  1235. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/HL.rb +0 -23
  1236. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/ITD.rb +0 -31
  1237. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/K1.rb +0 -21
  1238. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/L11.rb +0 -25
  1239. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/L3.rb +0 -40
  1240. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/L5.rb +0 -33
  1241. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LE.rb +0 -20
  1242. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LFH.rb +0 -29
  1243. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LH1.rb +0 -33
  1244. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LH2.rb +0 -37
  1245. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LH3.rb +0 -25
  1246. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LIN.rb +0 -51
  1247. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LS.rb +0 -20
  1248. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LX.rb +0 -20
  1249. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/M7.rb +0 -24
  1250. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/MAN.rb +0 -28
  1251. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/MEA.rb +0 -33
  1252. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/MS1.rb +0 -36
  1253. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/MS2.rb +0 -26
  1254. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/MS3.rb +0 -26
  1255. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/MSG.rb +0 -20
  1256. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/N1.rb +0 -22
  1257. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/N2.rb +0 -21
  1258. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/N3.rb +0 -21
  1259. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/N4.rb +0 -30
  1260. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/N7.rb +0 -46
  1261. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/N9.rb +0 -29
  1262. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/NTE.rb +0 -21
  1263. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/PER.rb +0 -32
  1264. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/PID.rb +0 -34
  1265. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/PLD.rb +0 -25
  1266. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/PO1.rb +0 -60
  1267. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/PO4.rb +0 -23
  1268. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/POC.rb +0 -32
  1269. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/REF.rb +0 -22
  1270. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/RMT.rb +0 -36
  1271. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/S5.rb +0 -34
  1272. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/SDP.rb +0 -22
  1273. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/SE.rb +0 -21
  1274. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/SHP.rb +0 -24
  1275. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/SN1.rb +0 -28
  1276. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/ST.rb +0 -21
  1277. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/TD1.rb +0 -30
  1278. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/TD3.rb +0 -23
  1279. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/TD5.rb +0 -23
  1280. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/UIT.rb +0 -22
  1281. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W01.rb +0 -44
  1282. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W03.rb +0 -30
  1283. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W04.rb +0 -40
  1284. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W05.rb +0 -29
  1285. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W06.rb +0 -33
  1286. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W07.rb +0 -36
  1287. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W08.rb +0 -32
  1288. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W12.rb +0 -51
  1289. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W14.rb +0 -25
  1290. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W17.rb +0 -31
  1291. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W20.rb +0 -33
  1292. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W27.rb +0 -31
  1293. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W66.rb +0 -31
  1294. data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W76.rb +0 -30
  1295. data/lib/stupidedi/versions/functional_groups/003010/segment_reqs.rb +0 -21
  1296. data/lib/stupidedi/versions/functional_groups/003010/syntax_notes.rb +0 -177
  1297. data/lib/stupidedi/versions/functional_groups/003010/transaction_set_defs.rb +0 -14
  1298. data/lib/stupidedi/versions/functional_groups/003040.rb +0 -41
  1299. data/lib/stupidedi/versions/functional_groups/003040/element_defs.rb +0 -10766
  1300. data/lib/stupidedi/versions/functional_groups/003040/element_reqs.rb +0 -21
  1301. data/lib/stupidedi/versions/functional_groups/003040/element_types.rb +0 -130
  1302. data/lib/stupidedi/versions/functional_groups/003040/element_types/date_val.rb +0 -575
  1303. data/lib/stupidedi/versions/functional_groups/003040/element_types/fixnum_val.rb +0 -318
  1304. data/lib/stupidedi/versions/functional_groups/003040/element_types/float_val.rb +0 -350
  1305. data/lib/stupidedi/versions/functional_groups/003040/element_types/identifier_val.rb +0 -359
  1306. data/lib/stupidedi/versions/functional_groups/003040/element_types/operators.rb +0 -134
  1307. data/lib/stupidedi/versions/functional_groups/003040/element_types/string_val.rb +0 -392
  1308. data/lib/stupidedi/versions/functional_groups/003040/element_types/time_val.rb +0 -330
  1309. data/lib/stupidedi/versions/functional_groups/003040/functional_group_def.rb +0 -33
  1310. data/lib/stupidedi/versions/functional_groups/003040/segment_defs.rb +0 -274
  1311. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/AK1.rb +0 -21
  1312. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/AK2.rb +0 -22
  1313. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/AK3.rb +0 -21
  1314. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/AK9.rb +0 -25
  1315. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/AMT.rb +0 -20
  1316. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/AT7.rb +0 -32
  1317. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/AT8.rb +0 -29
  1318. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/B1.rb +0 -23
  1319. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/B10.rb +0 -30
  1320. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/B2.rb +0 -31
  1321. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/B2A.rb +0 -21
  1322. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/BEG.rb +0 -31
  1323. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/BGN.rb +0 -23
  1324. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/BPS.rb +0 -27
  1325. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/BSN.rb +0 -27
  1326. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/CTT.rb +0 -29
  1327. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/CUR.rb +0 -59
  1328. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/DTM.rb +0 -31
  1329. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/FOB.rb +0 -24
  1330. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/G61.rb +0 -26
  1331. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/G62.rb +0 -27
  1332. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/G69.rb +0 -21
  1333. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/GE.rb +0 -21
  1334. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/GS.rb +0 -27
  1335. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/HL.rb +0 -23
  1336. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/IT1.rb +0 -23
  1337. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/ITD.rb +0 -31
  1338. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/K1.rb +0 -21
  1339. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/L11.rb +0 -25
  1340. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/L3.rb +0 -40
  1341. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/L5.rb +0 -33
  1342. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LE.rb +0 -20
  1343. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LFH.rb +0 -29
  1344. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LH1.rb +0 -33
  1345. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LH2.rb +0 -37
  1346. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LH3.rb +0 -25
  1347. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LIN.rb +0 -51
  1348. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LS.rb +0 -20
  1349. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LX.rb +0 -20
  1350. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/M7.rb +0 -24
  1351. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/MAN.rb +0 -28
  1352. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/MEA.rb +0 -33
  1353. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/MS1.rb +0 -36
  1354. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/MS2.rb +0 -26
  1355. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/MS3.rb +0 -26
  1356. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/MSG.rb +0 -20
  1357. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/N1.rb +0 -28
  1358. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/N2.rb +0 -21
  1359. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/N3.rb +0 -21
  1360. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/N4.rb +0 -30
  1361. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/N7.rb +0 -46
  1362. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/N9.rb +0 -29
  1363. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/NTE.rb +0 -21
  1364. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/PER.rb +0 -32
  1365. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/PID.rb +0 -34
  1366. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/PLD.rb +0 -25
  1367. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/PO1.rb +0 -60
  1368. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/PO4.rb +0 -23
  1369. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/PRR.rb +0 -24
  1370. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/QTY.rb +0 -21
  1371. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/REF.rb +0 -22
  1372. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/REP.rb +0 -22
  1373. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/RMT.rb +0 -37
  1374. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/S5.rb +0 -34
  1375. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/SE.rb +0 -21
  1376. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/SN1.rb +0 -28
  1377. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/SSS.rb +0 -27
  1378. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/ST.rb +0 -21
  1379. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/TD1.rb +0 -30
  1380. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/TD3.rb +0 -23
  1381. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/TD5.rb +0 -20
  1382. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/TDS.rb +0 -19
  1383. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W01.rb +0 -44
  1384. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W03.rb +0 -30
  1385. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W04.rb +0 -40
  1386. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W05.rb +0 -29
  1387. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W06.rb +0 -33
  1388. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W07.rb +0 -36
  1389. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W08.rb +0 -32
  1390. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W12.rb +0 -51
  1391. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W14.rb +0 -25
  1392. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W17.rb +0 -31
  1393. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W20.rb +0 -33
  1394. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W27.rb +0 -31
  1395. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W66.rb +0 -31
  1396. data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W76.rb +0 -30
  1397. data/lib/stupidedi/versions/functional_groups/003040/segment_reqs.rb +0 -21
  1398. data/lib/stupidedi/versions/functional_groups/003040/syntax_notes.rb +0 -177
  1399. data/lib/stupidedi/versions/functional_groups/003040/transaction_set_defs.rb +0 -14
  1400. data/lib/stupidedi/versions/functional_groups/003050.rb +0 -41
  1401. data/lib/stupidedi/versions/functional_groups/003050/element_defs.rb +0 -10769
  1402. data/lib/stupidedi/versions/functional_groups/003050/element_reqs.rb +0 -21
  1403. data/lib/stupidedi/versions/functional_groups/003050/element_types.rb +0 -130
  1404. data/lib/stupidedi/versions/functional_groups/003050/element_types/date_val.rb +0 -576
  1405. data/lib/stupidedi/versions/functional_groups/003050/element_types/fixnum_val.rb +0 -319
  1406. data/lib/stupidedi/versions/functional_groups/003050/element_types/float_val.rb +0 -351
  1407. data/lib/stupidedi/versions/functional_groups/003050/element_types/identifier_val.rb +0 -360
  1408. data/lib/stupidedi/versions/functional_groups/003050/element_types/operators.rb +0 -134
  1409. data/lib/stupidedi/versions/functional_groups/003050/element_types/string_val.rb +0 -393
  1410. data/lib/stupidedi/versions/functional_groups/003050/element_types/time_val.rb +0 -330
  1411. data/lib/stupidedi/versions/functional_groups/003050/functional_group_def.rb +0 -33
  1412. data/lib/stupidedi/versions/functional_groups/003050/segment_defs.rb +0 -274
  1413. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/AK1.rb +0 -21
  1414. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/AK2.rb +0 -22
  1415. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/AK3.rb +0 -21
  1416. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/AK9.rb +0 -25
  1417. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/AMT.rb +0 -20
  1418. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/AT7.rb +0 -32
  1419. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/AT8.rb +0 -29
  1420. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/B1.rb +0 -23
  1421. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/B10.rb +0 -30
  1422. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/B2.rb +0 -31
  1423. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/B2A.rb +0 -21
  1424. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/BEG.rb +0 -31
  1425. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/BGN.rb +0 -23
  1426. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/BPS.rb +0 -27
  1427. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/BSN.rb +0 -27
  1428. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/CTT.rb +0 -29
  1429. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/CUR.rb +0 -59
  1430. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/DTM.rb +0 -30
  1431. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/FOB.rb +0 -24
  1432. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/G61.rb +0 -26
  1433. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/G62.rb +0 -27
  1434. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/G69.rb +0 -21
  1435. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/GE.rb +0 -21
  1436. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/GS.rb +0 -27
  1437. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/HL.rb +0 -23
  1438. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/IT1.rb +0 -23
  1439. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/ITD.rb +0 -31
  1440. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/K1.rb +0 -21
  1441. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/L11.rb +0 -25
  1442. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/L3.rb +0 -40
  1443. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/L5.rb +0 -33
  1444. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LE.rb +0 -20
  1445. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LFH.rb +0 -29
  1446. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LH1.rb +0 -33
  1447. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LH2.rb +0 -37
  1448. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LH3.rb +0 -25
  1449. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LIN.rb +0 -51
  1450. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LS.rb +0 -20
  1451. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LX.rb +0 -20
  1452. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/M7.rb +0 -24
  1453. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/MAN.rb +0 -28
  1454. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/MEA.rb +0 -33
  1455. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/MS1.rb +0 -36
  1456. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/MS2.rb +0 -26
  1457. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/MS3.rb +0 -26
  1458. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/MSG.rb +0 -20
  1459. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/N1.rb +0 -28
  1460. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/N2.rb +0 -21
  1461. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/N3.rb +0 -21
  1462. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/N4.rb +0 -30
  1463. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/N7.rb +0 -46
  1464. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/N9.rb +0 -29
  1465. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/NTE.rb +0 -21
  1466. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/PER.rb +0 -32
  1467. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/PID.rb +0 -34
  1468. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/PLD.rb +0 -25
  1469. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/PO1.rb +0 -60
  1470. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/PO4.rb +0 -23
  1471. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/PRR.rb +0 -22
  1472. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/QTY.rb +0 -21
  1473. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/REF.rb +0 -22
  1474. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/REP.rb +0 -22
  1475. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/RMT.rb +0 -36
  1476. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/S5.rb +0 -34
  1477. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/SE.rb +0 -21
  1478. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/SN1.rb +0 -28
  1479. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/SSS.rb +0 -25
  1480. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/ST.rb +0 -21
  1481. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/TD1.rb +0 -31
  1482. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/TD3.rb +0 -24
  1483. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/TD5.rb +0 -20
  1484. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/TDS.rb +0 -19
  1485. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W01.rb +0 -44
  1486. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W03.rb +0 -30
  1487. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W04.rb +0 -40
  1488. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W05.rb +0 -29
  1489. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W06.rb +0 -33
  1490. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W07.rb +0 -36
  1491. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W08.rb +0 -32
  1492. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W12.rb +0 -51
  1493. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W14.rb +0 -25
  1494. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W17.rb +0 -31
  1495. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W20.rb +0 -33
  1496. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W27.rb +0 -31
  1497. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W66.rb +0 -31
  1498. data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W76.rb +0 -30
  1499. data/lib/stupidedi/versions/functional_groups/003050/segment_reqs.rb +0 -21
  1500. data/lib/stupidedi/versions/functional_groups/003050/syntax_notes.rb +0 -177
  1501. data/lib/stupidedi/versions/functional_groups/003050/transaction_set_defs.rb +0 -14
  1502. data/lib/stupidedi/versions/functional_groups/004010.rb +0 -41
  1503. data/lib/stupidedi/versions/functional_groups/004010/element_defs.rb +0 -9626
  1504. data/lib/stupidedi/versions/functional_groups/004010/element_reqs.rb +0 -21
  1505. data/lib/stupidedi/versions/functional_groups/004010/element_types.rb +0 -130
  1506. data/lib/stupidedi/versions/functional_groups/004010/element_types/date_val.rb +0 -577
  1507. data/lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb +0 -319
  1508. data/lib/stupidedi/versions/functional_groups/004010/element_types/float_val.rb +0 -350
  1509. data/lib/stupidedi/versions/functional_groups/004010/element_types/identifier_val.rb +0 -361
  1510. data/lib/stupidedi/versions/functional_groups/004010/element_types/operators.rb +0 -134
  1511. data/lib/stupidedi/versions/functional_groups/004010/element_types/string_val.rb +0 -393
  1512. data/lib/stupidedi/versions/functional_groups/004010/element_types/time_val.rb +0 -331
  1513. data/lib/stupidedi/versions/functional_groups/004010/functional_group_def.rb +0 -33
  1514. data/lib/stupidedi/versions/functional_groups/004010/segment_defs.rb +0 -349
  1515. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AK1.rb +0 -21
  1516. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AK2.rb +0 -22
  1517. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AK3.rb +0 -23
  1518. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AK4.rb +0 -23
  1519. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AK5.rb +0 -25
  1520. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AK9.rb +0 -29
  1521. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AMT.rb +0 -22
  1522. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AT7.rb +0 -32
  1523. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AT8.rb +0 -29
  1524. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/B1.rb +0 -23
  1525. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/B10.rb +0 -30
  1526. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/B2.rb +0 -31
  1527. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/B2A.rb +0 -21
  1528. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/B3.rb +0 -31
  1529. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/BAK.rb +0 -24
  1530. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/BCT.rb +0 -20
  1531. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/BEG.rb +0 -31
  1532. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/BFR.rb +0 -33
  1533. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/BPR.rb +0 -50
  1534. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/BSN.rb +0 -24
  1535. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/BSS.rb +0 -36
  1536. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/C3.rb +0 -22
  1537. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/CAS.rb +0 -57
  1538. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/CLP.rb +0 -34
  1539. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/CTP.rb +0 -37
  1540. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/CTT.rb +0 -29
  1541. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/CUR.rb +0 -58
  1542. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/DTM.rb +0 -28
  1543. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/FST.rb +0 -32
  1544. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/G61.rb +0 -26
  1545. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/G62.rb +0 -27
  1546. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/G69.rb +0 -21
  1547. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/GE.rb +0 -21
  1548. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/GS.rb +0 -28
  1549. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/H3.rb +0 -25
  1550. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/HL.rb +0 -23
  1551. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/JIT.rb +0 -21
  1552. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/K1.rb +0 -21
  1553. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/L0.rb +0 -34
  1554. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/L1.rb +0 -42
  1555. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/L11.rb +0 -25
  1556. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/L3.rb +0 -40
  1557. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/L4.rb +0 -25
  1558. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/L5.rb +0 -33
  1559. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/L7.rb +0 -35
  1560. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/LAD.rb +0 -39
  1561. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/LFH.rb +0 -29
  1562. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/LH1.rb +0 -33
  1563. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/LH2.rb +0 -37
  1564. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/LH3.rb +0 -25
  1565. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/LIN.rb +0 -54
  1566. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/LQ.rb +0 -22
  1567. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/LX.rb +0 -20
  1568. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/M7.rb +0 -24
  1569. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/MAN.rb +0 -28
  1570. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/MEA.rb +0 -40
  1571. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/MIA.rb +0 -46
  1572. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/MOA.rb +0 -29
  1573. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/MS1.rb +0 -36
  1574. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/MS2.rb +0 -26
  1575. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/MS3.rb +0 -26
  1576. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/N1.rb +0 -28
  1577. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/N2.rb +0 -21
  1578. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/N3.rb +0 -21
  1579. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/N4.rb +0 -26
  1580. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/N7.rb +0 -46
  1581. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/N9.rb +0 -29
  1582. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/NM1.rb +0 -33
  1583. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/NTE.rb +0 -21
  1584. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/OID.rb +0 -33
  1585. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/PER.rb +0 -32
  1586. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/PID.rb +0 -34
  1587. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/PLB.rb +0 -41
  1588. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/PLD.rb +0 -25
  1589. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/PO1.rb +0 -60
  1590. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/PO4.rb +0 -24
  1591. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/PRF.rb +0 -20
  1592. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/QTY.rb +0 -25
  1593. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/R3.rb +0 -28
  1594. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/REF.rb +0 -25
  1595. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/S5.rb +0 -34
  1596. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/SCH.rb +0 -29
  1597. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/SDP.rb +0 -21
  1598. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/SE.rb +0 -21
  1599. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/SHP.rb +0 -23
  1600. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/SN1.rb +0 -29
  1601. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/ST.rb +0 -21
  1602. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/SVC.rb +0 -27
  1603. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/TD1.rb +0 -24
  1604. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/TD3.rb +0 -27
  1605. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/TD4.rb +0 -26
  1606. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/TD5.rb +0 -23
  1607. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/TRN.rb +0 -23
  1608. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/TS2.rb +0 -41
  1609. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/TS3.rb +0 -46
  1610. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/UIT.rb +0 -21
  1611. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W01.rb +0 -44
  1612. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W03.rb +0 -30
  1613. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W04.rb +0 -40
  1614. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W05.rb +0 -29
  1615. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W06.rb +0 -33
  1616. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W07.rb +0 -36
  1617. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W08.rb +0 -32
  1618. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W12.rb +0 -51
  1619. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W14.rb +0 -25
  1620. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W17.rb +0 -31
  1621. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W20.rb +0 -33
  1622. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W27.rb +0 -31
  1623. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W66.rb +0 -31
  1624. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W76.rb +0 -30
  1625. data/lib/stupidedi/versions/functional_groups/004010/segment_reqs.rb +0 -21
  1626. data/lib/stupidedi/versions/functional_groups/004010/syntax_notes.rb +0 -177
  1627. data/lib/stupidedi/versions/functional_groups/004010/transaction_set_defs.rb +0 -16
  1628. data/lib/stupidedi/versions/functional_groups/004010/transaction_set_defs/HP835.rb +0 -67
  1629. data/lib/stupidedi/versions/functional_groups/005010.rb +0 -41
  1630. data/lib/stupidedi/versions/functional_groups/005010/element_defs.rb +0 -2478
  1631. data/lib/stupidedi/versions/functional_groups/005010/element_reqs.rb +0 -21
  1632. data/lib/stupidedi/versions/functional_groups/005010/element_types.rb +0 -135
  1633. data/lib/stupidedi/versions/functional_groups/005010/element_types/date_val.rb +0 -575
  1634. data/lib/stupidedi/versions/functional_groups/005010/element_types/fixnum_val.rb +0 -318
  1635. data/lib/stupidedi/versions/functional_groups/005010/element_types/float_val.rb +0 -351
  1636. data/lib/stupidedi/versions/functional_groups/005010/element_types/identifier_val.rb +0 -361
  1637. data/lib/stupidedi/versions/functional_groups/005010/element_types/operators.rb +0 -134
  1638. data/lib/stupidedi/versions/functional_groups/005010/element_types/string_val.rb +0 -393
  1639. data/lib/stupidedi/versions/functional_groups/005010/element_types/time_val.rb +0 -331
  1640. data/lib/stupidedi/versions/functional_groups/005010/functional_group_def.rb +0 -33
  1641. data/lib/stupidedi/versions/functional_groups/005010/segment_defs.rb +0 -290
  1642. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/AAA.rb +0 -22
  1643. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/ACT.rb +0 -33
  1644. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/AK1.rb +0 -22
  1645. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/AK2.rb +0 -22
  1646. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/AK9.rb +0 -29
  1647. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/AMT.rb +0 -22
  1648. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/BGN.rb +0 -31
  1649. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/BHT.rb +0 -25
  1650. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/BPR.rb +0 -50
  1651. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CAS.rb +0 -57
  1652. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CL1.rb +0 -23
  1653. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CLM.rb +0 -42
  1654. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CLP.rb +0 -35
  1655. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CN1.rb +0 -25
  1656. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/COB.rb +0 -24
  1657. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CR1.rb +0 -33
  1658. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CR2.rb +0 -36
  1659. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CR3.rb +0 -26
  1660. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CRC.rb +0 -27
  1661. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CTP.rb +0 -37
  1662. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CTX.rb +0 -25
  1663. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CUR.rb +0 -59
  1664. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/DMG.rb +0 -35
  1665. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/DN1.rb +0 -23
  1666. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/DN2.rb +0 -25
  1667. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/DSB.rb +0 -30
  1668. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/DTM.rb +0 -25
  1669. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/DTP.rb +0 -22
  1670. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/EB.rb +0 -34
  1671. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/EC.rb +0 -26
  1672. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/EQ.rb +0 -25
  1673. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/FRM.rb +0 -26
  1674. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/GE.rb +0 -21
  1675. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/GS.rb +0 -28
  1676. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/HCP.rb +0 -40
  1677. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/HD.rb +0 -31
  1678. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/HI.rb +0 -32
  1679. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/HL.rb +0 -23
  1680. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/HLH.rb +0 -27
  1681. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/HSD.rb +0 -29
  1682. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/ICM.rb +0 -26
  1683. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/IDC.rb +0 -24
  1684. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/III.rb +0 -31
  1685. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/IK3.rb +0 -23
  1686. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/IK4.rb +0 -23
  1687. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/IK5.rb +0 -25
  1688. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/INS.rb +0 -39
  1689. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/K3.rb +0 -22
  1690. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/LE.rb +0 -20
  1691. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/LIN.rb +0 -70
  1692. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/LQ.rb +0 -23
  1693. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/LS.rb +0 -20
  1694. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/LUI.rb +0 -28
  1695. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/LX.rb +0 -20
  1696. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/MEA.rb +0 -40
  1697. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/MIA.rb +0 -46
  1698. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/MOA.rb +0 -29
  1699. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/MPI.rb +0 -27
  1700. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/MSG.rb +0 -23
  1701. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/N1.rb +0 -28
  1702. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/N2.rb +0 -21
  1703. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/N3.rb +0 -21
  1704. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/N4.rb +0 -30
  1705. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/NM1.rb +0 -36
  1706. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/NTE.rb +0 -21
  1707. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/OI.rb +0 -25
  1708. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PAT.rb +0 -32
  1709. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PER.rb +0 -33
  1710. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PLA.rb +0 -25
  1711. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PLB.rb +0 -41
  1712. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PRV.rb +0 -27
  1713. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PS1.rb +0 -22
  1714. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/PWK.rb +0 -31
  1715. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/QTY.rb +0 -26
  1716. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/RDM.rb +0 -24
  1717. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/REF.rb +0 -25
  1718. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SBR.rb +0 -29
  1719. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SE.rb +0 -21
  1720. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/ST.rb +0 -22
  1721. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/STC.rb +0 -31
  1722. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SV1.rb +0 -45
  1723. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SV2.rb +0 -30
  1724. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SV3.rb +0 -31
  1725. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SV5.rb +0 -30
  1726. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SVC.rb +0 -27
  1727. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/SVD.rb +0 -25
  1728. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/TOO.rb +0 -22
  1729. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/TRN.rb +0 -23
  1730. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/TS2.rb +0 -41
  1731. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/TS3.rb +0 -46
  1732. data/lib/stupidedi/versions/functional_groups/005010/segment_reqs.rb +0 -21
  1733. data/lib/stupidedi/versions/functional_groups/005010/syntax_notes.rb +0 -168
  1734. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs.rb +0 -71
  1735. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/BE834.rb +0 -163
  1736. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/FA999.rb +0 -41
  1737. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HB271.rb +0 -105
  1738. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HC837.rb +0 -167
  1739. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HI278.rb +0 -70
  1740. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HN277.rb +0 -77
  1741. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HP835.rb +0 -71
  1742. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HR276.rb +0 -60
  1743. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HS270.rb +0 -57
  1744. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/RA820.rb +0 -245
  1745. data/lib/stupidedi/versions/interchanges/00200.rb +0 -26
  1746. data/lib/stupidedi/versions/interchanges/00200/element_defs.rb +0 -277
  1747. data/lib/stupidedi/versions/interchanges/00200/interchange_def.rb +0 -71
  1748. data/lib/stupidedi/versions/interchanges/00200/segment_defs.rb +0 -31
  1749. data/lib/stupidedi/versions/interchanges/00200/segment_defs/IEA.rb +0 -21
  1750. data/lib/stupidedi/versions/interchanges/00200/segment_defs/ISA.rb +0 -35
  1751. data/lib/stupidedi/versions/interchanges/00200/segment_defs/TA1.rb +0 -24
  1752. data/lib/stupidedi/versions/interchanges/00300.rb +0 -26
  1753. data/lib/stupidedi/versions/interchanges/00300/element_defs.rb +0 -278
  1754. data/lib/stupidedi/versions/interchanges/00300/interchange_def.rb +0 -71
  1755. data/lib/stupidedi/versions/interchanges/00300/segment_defs.rb +0 -31
  1756. data/lib/stupidedi/versions/interchanges/00300/segment_defs/IEA.rb +0 -21
  1757. data/lib/stupidedi/versions/interchanges/00300/segment_defs/ISA.rb +0 -35
  1758. data/lib/stupidedi/versions/interchanges/00300/segment_defs/TA1.rb +0 -24
  1759. data/lib/stupidedi/versions/interchanges/00400.rb +0 -26
  1760. data/lib/stupidedi/versions/interchanges/00400/element_defs.rb +0 -270
  1761. data/lib/stupidedi/versions/interchanges/00400/interchange_def.rb +0 -71
  1762. data/lib/stupidedi/versions/interchanges/00400/segment_defs.rb +0 -31
  1763. data/lib/stupidedi/versions/interchanges/00400/segment_defs/IEA.rb +0 -21
  1764. data/lib/stupidedi/versions/interchanges/00400/segment_defs/ISA.rb +0 -35
  1765. data/lib/stupidedi/versions/interchanges/00400/segment_defs/TA1.rb +0 -24
  1766. data/lib/stupidedi/versions/interchanges/00401.rb +0 -26
  1767. data/lib/stupidedi/versions/interchanges/00401/element_defs.rb +0 -271
  1768. data/lib/stupidedi/versions/interchanges/00401/interchange_def.rb +0 -71
  1769. data/lib/stupidedi/versions/interchanges/00401/segment_defs.rb +0 -31
  1770. data/lib/stupidedi/versions/interchanges/00401/segment_defs/IEA.rb +0 -21
  1771. data/lib/stupidedi/versions/interchanges/00401/segment_defs/ISA.rb +0 -35
  1772. data/lib/stupidedi/versions/interchanges/00401/segment_defs/TA1.rb +0 -24
  1773. data/lib/stupidedi/versions/interchanges/00501.rb +0 -26
  1774. data/lib/stupidedi/versions/interchanges/00501/element_defs.rb +0 -272
  1775. data/lib/stupidedi/versions/interchanges/00501/interchange_def.rb +0 -73
  1776. data/lib/stupidedi/versions/interchanges/00501/segment_defs.rb +0 -40
  1777. data/lib/stupidedi/versions/interchanges/00501/segment_defs/IEA.rb +0 -21
  1778. data/lib/stupidedi/versions/interchanges/00501/segment_defs/ISA.rb +0 -35
  1779. data/lib/stupidedi/versions/interchanges/00501/segment_defs/ISB.rb +0 -19
  1780. data/lib/stupidedi/versions/interchanges/00501/segment_defs/ISE.rb +0 -19
  1781. data/lib/stupidedi/versions/interchanges/00501/segment_defs/TA1.rb +0 -24
  1782. data/lib/stupidedi/versions/interchanges/00501/segment_defs/TA3.rb +0 -19
  1783. data/spec/examples/integration/generating_spec.rb +0 -560
  1784. data/spec/examples/integration/navigating_spec.rb +0 -258
  1785. data/spec/examples/integration/nondeterminism_spec.rb +0 -165
  1786. data/spec/examples/integration/parsing/005010/X091A1-HP835_spec.rb +0 -94
  1787. data/spec/examples/integration/parsing/005010/X212-HR276_spec.rb +0 -152
  1788. data/spec/examples/integration/parsing/005010/X221-HP835_spec.rb +0 -386
  1789. data/spec/examples/integration/parsing/005010/X222-HC837_spec.rb +0 -257
  1790. data/spec/examples/ruby/array_spec.rb +0 -477
  1791. data/spec/examples/ruby/blank_spec.rb +0 -63
  1792. data/spec/examples/ruby/count_spec.rb +0 -69
  1793. data/spec/examples/ruby/object_spec.rb +0 -99
  1794. data/spec/examples/ruby/string_spec.rb +0 -112
  1795. data/spec/examples/ruby/symbol_spec.rb +0 -99
  1796. data/spec/examples/ruby/to_d_spec.rb +0 -91
  1797. data/spec/examples/ruby/try_spec.rb +0 -51
  1798. data/spec/examples/stupidedi/audit_spec.rb +0 -58
  1799. data/spec/examples/stupidedi/either_spec.rb +0 -375
  1800. data/spec/examples/stupidedi/reader/failure_spec.rb +0 -68
  1801. data/spec/examples/stupidedi/reader/input/delegated_input_spec.rb +0 -293
  1802. data/spec/examples/stupidedi/reader/separators_spec.rb +0 -73
  1803. data/spec/examples/stupidedi/reader/stream_reader_spec.rb +0 -48
  1804. data/spec/examples/stupidedi/reader/success_spec.rb +0 -34
  1805. data/spec/examples/stupidedi/reader/token_reader_spec.rb +0 -776
  1806. data/spec/examples/stupidedi/reader_spec.rb +0 -168
  1807. data/spec/examples/stupidedi/versions/005010/element_types/an_spec.rb +0 -202
  1808. data/spec/examples/stupidedi/versions/005010/element_types/dt_spec.rb +0 -258
  1809. data/spec/examples/stupidedi/versions/005010/element_types/id_spec.rb +0 -192
  1810. data/spec/examples/stupidedi/versions/005010/element_types/nn_spec.rb +0 -179
  1811. data/spec/examples/stupidedi/versions/005010/element_types/r_spec.rb +0 -180
  1812. data/spec/examples/stupidedi/versions/005010/element_types/tm_spec.rb +0 -2
  1813. data/spec/examples/stupidedi/zipper/abstract_cursor_spec.rb +0 -417
  1814. data/spec/examples/stupidedi/zipper_spec.rb +0 -9
  1815. data/spec/fixtures/FA997/1-good.txt +0 -10
  1816. data/spec/fixtures/PC860/1-good.txt +0 -21
  1817. data/spec/fixtures/PO830/1-good.txt +0 -29
  1818. data/spec/fixtures/PO850/1-good-v3010.txt +0 -31
  1819. data/spec/fixtures/PO850/1-good-v3050.txt +0 -16
  1820. data/spec/fixtures/PR855/1-good-v4010.txt +0 -11
  1821. data/spec/fixtures/PR855/2-good-v4010.txt +0 -17
  1822. data/spec/fixtures/PS830/1-good.txt +0 -29
  1823. data/spec/fixtures/RA820/1-good.txt +0 -52
  1824. data/spec/fixtures/SC832/1-good.txt +0 -22
  1825. data/spec/fixtures/SC832/2-good.txt +0 -1067
  1826. data/spec/fixtures/SH856/1-good.txt +0 -70
  1827. data/spec/fixtures/SH856/2-good.txt +0 -31
  1828. data/spec/fixtures/SQ866/1-good.txt +0 -29
  1829. data/spec/fixtures/SS862/1-good.txt +0 -33
  1830. data/spec/fixtures/WA142/1-good.txt +0 -307
  1831. data/spec/fixtures/X091A1-HP835/1-good.txt +0 -1
  1832. data/spec/fixtures/X186-AG824/1-bad.txt +0 -21
  1833. data/spec/fixtures/X186-AG824/1-good.txt +0 -17
  1834. data/spec/fixtures/X186-AG824/2-bad.txt +0 -26
  1835. data/spec/fixtures/X186-AG824/2-good.txt +0 -21
  1836. data/spec/fixtures/X186-AG824/3-bad.txt +0 -87
  1837. data/spec/fixtures/X186-AG824/3-good.txt +0 -61
  1838. data/spec/fixtures/X212-HN277/1-bad.txt +0 -54
  1839. data/spec/fixtures/X212-HN277/1-good.txt +0 -46
  1840. data/spec/fixtures/X212-HN277/2-bad.txt +0 -37
  1841. data/spec/fixtures/X212-HN277/2-good.txt +0 -29
  1842. data/spec/fixtures/X212-HN277/3-bad.txt +0 -22
  1843. data/spec/fixtures/X212-HN277/3-good.txt +0 -17
  1844. data/spec/fixtures/X212-HN277/4-bad.txt +0 -30
  1845. data/spec/fixtures/X212-HN277/4-good.txt +0 -24
  1846. data/spec/fixtures/X212-HR276/1-bad.txt +0 -53
  1847. data/spec/fixtures/X212-HR276/1-good.txt +0 -46
  1848. data/spec/fixtures/X212-HR276/2-bad.txt +0 -45
  1849. data/spec/fixtures/X212-HR276/2-good.txt +0 -38
  1850. data/spec/fixtures/X212-HR276/3-bad.txt +0 -32
  1851. data/spec/fixtures/X212-HR276/3-good.txt +0 -26
  1852. data/spec/fixtures/X212-HR276/4-bad.txt +0 -32
  1853. data/spec/fixtures/X212-HR276/4-good.txt +0 -26
  1854. data/spec/fixtures/X214-HN277/1-bad.txt +0 -58
  1855. data/spec/fixtures/X214-HN277/1-good.txt +0 -47
  1856. data/spec/fixtures/X214-HN277/2-bad.txt +0 -34
  1857. data/spec/fixtures/X214-HN277/2-good.txt +0 -22
  1858. data/spec/fixtures/X214-HN277/3-bad.txt +0 -64
  1859. data/spec/fixtures/X214-HN277/3-good.txt +0 -54
  1860. data/spec/fixtures/X214-HN277/4-bad.txt +0 -77
  1861. data/spec/fixtures/X214-HN277/4-good.txt +0 -63
  1862. data/spec/fixtures/X216-HI278/1-bad.txt +0 -42
  1863. data/spec/fixtures/X216-HI278/1-good.txt +0 -27
  1864. data/spec/fixtures/X216-HI278/2-bad.txt +0 -43
  1865. data/spec/fixtures/X216-HI278/2-good.txt +0 -29
  1866. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-1.txt +0 -24
  1867. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-1_Clean.txt +0 -20
  1868. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-2.txt +0 -46
  1869. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-2_Clean.txt +0 -30
  1870. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-3.txt +0 -38
  1871. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-3_Clean.txt +0 -24
  1872. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-4a.txt +0 -39
  1873. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-4a_Clean.txt +0 -24
  1874. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-4b.txt +0 -43
  1875. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-4b_Clean.txt +0 -25
  1876. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-5.txt +0 -63
  1877. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-5_Clean.txt +0 -41
  1878. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-6.txt +0 -36
  1879. data/spec/fixtures/X217-HI278/Sample_278_Request_5010X217-6_Clean.txt +0 -20
  1880. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-1r.txt +0 -34
  1881. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-1r_Clean.txt +0 -23
  1882. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-2r.txt +0 -46
  1883. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-2r_Clean.txt +0 -31
  1884. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-3r.txt +0 -44
  1885. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-3r_Clean.txt +0 -26
  1886. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-4ar_Clean.txt +0 -28
  1887. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-4br_Clean.txt +0 -35
  1888. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-5r.txt +0 -60
  1889. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-5r_Clean.txt +0 -42
  1890. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-6r.txt +0 -40
  1891. data/spec/fixtures/X217-HI278/Sample_278_Response_5010X217-6r_Clean.txt +0 -24
  1892. data/spec/fixtures/X218-RA820/1-bad.txt +0 -31
  1893. data/spec/fixtures/X218-RA820/1-good.txt +0 -25
  1894. data/spec/fixtures/X218-RA820/2-bad.txt +0 -37
  1895. data/spec/fixtures/X218-RA820/2-good.txt +0 -29
  1896. data/spec/fixtures/X218-RA820/3-bad.txt +0 -29
  1897. data/spec/fixtures/X218-RA820/3-good.txt +0 -23
  1898. data/spec/fixtures/X218-RA820/4-bad.txt +0 -36
  1899. data/spec/fixtures/X218-RA820/4-good.txt +0 -27
  1900. data/spec/fixtures/X220-BE834/1-bad.txt +0 -35
  1901. data/spec/fixtures/X220-BE834/1-good.txt +0 -29
  1902. data/spec/fixtures/X220-BE834/10-bad.txt +0 -26
  1903. data/spec/fixtures/X220-BE834/10-good.txt +0 -19
  1904. data/spec/fixtures/X220-BE834/2-bad.txt +0 -31
  1905. data/spec/fixtures/X220-BE834/2-good.txt +0 -23
  1906. data/spec/fixtures/X220-BE834/3-bad.txt +0 -36
  1907. data/spec/fixtures/X220-BE834/3-good.txt +0 -26
  1908. data/spec/fixtures/X220-BE834/4-bad.txt +0 -27
  1909. data/spec/fixtures/X220-BE834/4-good.txt +0 -21
  1910. data/spec/fixtures/X220-BE834/5-bad.txt +0 -26
  1911. data/spec/fixtures/X220-BE834/5-good.txt +0 -17
  1912. data/spec/fixtures/X220-BE834/6-bad.txt +0 -25
  1913. data/spec/fixtures/X220-BE834/6-good.txt +0 -20
  1914. data/spec/fixtures/X220-BE834/7-bad.txt +0 -25
  1915. data/spec/fixtures/X220-BE834/7-good.txt +0 -20
  1916. data/spec/fixtures/X220-BE834/8-bad.txt +0 -25
  1917. data/spec/fixtures/X220-BE834/8-good.txt +0 -20
  1918. data/spec/fixtures/X220-BE834/9-bad.txt +0 -27
  1919. data/spec/fixtures/X220-BE834/9-good.txt +0 -21
  1920. data/spec/fixtures/X221-HP835/1-bad.txt +0 -58
  1921. data/spec/fixtures/X221-HP835/1-good.txt +0 -40
  1922. data/spec/fixtures/X221-HP835/2-bad.txt +0 -51
  1923. data/spec/fixtures/X221-HP835/2-good.txt +0 -40
  1924. data/spec/fixtures/X221-HP835/3a-bad.txt +0 -78
  1925. data/spec/fixtures/X221-HP835/3a-good.txt +0 -49
  1926. data/spec/fixtures/X221-HP835/3b-bad.txt +0 -60
  1927. data/spec/fixtures/X221-HP835/3b-good.txt +0 -32
  1928. data/spec/fixtures/X221-HP835/3c-bad.txt +0 -55
  1929. data/spec/fixtures/X221-HP835/3c-good.txt +0 -34
  1930. data/spec/fixtures/X222-HC837/1-bad.txt +0 -60
  1931. data/spec/fixtures/X222-HC837/1-good.txt +0 -53
  1932. data/spec/fixtures/X222-HC837/10a-bad.txt +0 -52
  1933. data/spec/fixtures/X222-HC837/10a-good.txt +0 -40
  1934. data/spec/fixtures/X222-HC837/10b-bad.txt +0 -99
  1935. data/spec/fixtures/X222-HC837/10b-good.txt +0 -80
  1936. data/spec/fixtures/X222-HC837/10c-bad.txt +0 -105
  1937. data/spec/fixtures/X222-HC837/10c-good.txt +0 -80
  1938. data/spec/fixtures/X222-HC837/11-bad.txt +0 -69
  1939. data/spec/fixtures/X222-HC837/11-good.txt +0 -45
  1940. data/spec/fixtures/X222-HC837/12-bad.txt +0 -73
  1941. data/spec/fixtures/X222-HC837/12-good.txt +0 -51
  1942. data/spec/fixtures/X222-HC837/13-bad.txt +0 -64
  1943. data/spec/fixtures/X222-HC837/13-good.txt +0 -46
  1944. data/spec/fixtures/X222-HC837/3a-bad.txt +0 -83
  1945. data/spec/fixtures/X222-HC837/3a-good.txt +0 -59
  1946. data/spec/fixtures/X222-HC837/3b-bad.txt +0 -97
  1947. data/spec/fixtures/X222-HC837/3b-good.txt +0 -70
  1948. data/spec/fixtures/X222-HC837/3c-bad.txt +0 -95
  1949. data/spec/fixtures/X222-HC837/3c-good.txt +0 -74
  1950. data/spec/fixtures/X222-HC837/4-bad.txt +0 -67
  1951. data/spec/fixtures/X222-HC837/4-good.txt +0 -48
  1952. data/spec/fixtures/X222-HC837/5-bad.txt +0 -73
  1953. data/spec/fixtures/X222-HC837/5-good.txt +0 -60
  1954. data/spec/fixtures/X222-HC837/6-bad.txt +0 -50
  1955. data/spec/fixtures/X222-HC837/6-good.txt +0 -39
  1956. data/spec/fixtures/X222-HC837/7-bad.txt +0 -93
  1957. data/spec/fixtures/X222-HC837/7-good.txt +0 -78
  1958. data/spec/fixtures/X222-HC837/8-bad.txt +0 -64
  1959. data/spec/fixtures/X222-HC837/8-good.txt +0 -52
  1960. data/spec/fixtures/X222-HC837/9-bad.txt +0 -56
  1961. data/spec/fixtures/X222-HC837/9-good.txt +0 -38
  1962. data/spec/fixtures/X223-HC837/1-bad.txt +0 -66
  1963. data/spec/fixtures/X223-HC837/1-good.txt +0 -53
  1964. data/spec/fixtures/X223-HC837/2-bad.txt +0 -69
  1965. data/spec/fixtures/X223-HC837/2-good.txt +0 -60
  1966. data/spec/fixtures/X223-HC837/3-bad.txt +0 -89
  1967. data/spec/fixtures/X223-HC837/3-good.txt +0 -61
  1968. data/spec/fixtures/X223-HC837/4-bad.txt +0 -60
  1969. data/spec/fixtures/X223-HC837/4-good.txt +0 -40
  1970. data/spec/fixtures/X223-HC837/5-bad.txt +0 -75
  1971. data/spec/fixtures/X223-HC837/5-good.txt +0 -58
  1972. data/spec/fixtures/X224-HC837/1-bad.txt +0 -54
  1973. data/spec/fixtures/X224-HC837/1-good.txt +0 -44
  1974. data/spec/fixtures/X224-HC837/2a-bad.txt +0 -52
  1975. data/spec/fixtures/X224-HC837/2a-good.txt +0 -42
  1976. data/spec/fixtures/X224-HC837/2b-bad.txt +0 -67
  1977. data/spec/fixtures/X224-HC837/2b-good.txt +0 -52
  1978. data/spec/fixtures/X224-HC837/3-bad.txt +0 -67
  1979. data/spec/fixtures/X224-HC837/3-good.txt +0 -51
  1980. data/spec/fixtures/X224-HC837/4-bad.txt +0 -49
  1981. data/spec/fixtures/X224-HC837/4-good.txt +0 -40
  1982. data/spec/fixtures/X230-FA997/1-bad.txt +0 -19
  1983. data/spec/fixtures/X230-FA997/1-good.txt +0 -16
  1984. data/spec/fixtures/X231-FA999/1-bad.txt +0 -20
  1985. data/spec/fixtures/X231-FA999/1-good.txt +0 -20
  1986. data/spec/fixtures/X279-HB271/1-bad.txt +0 -36
  1987. data/spec/fixtures/X279-HB271/1-good.txt +0 -30
  1988. data/spec/fixtures/X279-HB271/2-bad.txt +0 -22
  1989. data/spec/fixtures/X279-HB271/2-good.txt +0 -16
  1990. data/spec/fixtures/X279-HB271/3-bad.txt +0 -44
  1991. data/spec/fixtures/X279-HB271/3-good.txt +0 -36
  1992. data/spec/fixtures/X279-HS270/1-bad.txt +0 -29
  1993. data/spec/fixtures/X279-HS270/1-good.txt +0 -23
  1994. data/spec/fixtures/X279-HS270/2-bad.txt +0 -32
  1995. data/spec/fixtures/X279-HS270/2-good.txt +0 -25
  1996. data/spec/spec_helper.rb +0 -55
  1997. data/spec/support/fixtures.rb +0 -26
  1998. data/spec/support/matchers/either_matchers.rb +0 -53
  1999. data/spec/support/matchers/navigation_matchers.rb +0 -247
  2000. data/spec/support/node.rb +0 -41
  2001. data/spec/support/quickcheck.rb +0 -303
  2002. data/spec/support/quickcheck/characters.rb +0 -33
  2003. data/spec/support/quickcheck/property.rb +0 -105
  2004. data/spec/support/quickcheck/serialized_edi.rb +0 -400
  2005. data/spec/support/rcov.rb +0 -41
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+ module Stupidedi
3
+ using Refinements
4
+
5
+ module Interchanges
6
+ module ElementTypes
7
+ AN = Versions::Common::ElementTypes::AN
8
+ StringVal = Versions::Common::ElementTypes::StringVal
9
+
10
+ #
11
+ # The specifications declare ISA02 and ISA04 are required elements, but
12
+ # they only have "meaningful information" when ISA01 and ISA03 qualifiers
13
+ # aren't "00".
14
+ #
15
+ # Without specifications regarding what should be entered in these
16
+ # required elements, our best option is to defer to convention, which
17
+ # seems to be that these elements should have 10 spaces -- which means
18
+ # they're blank. So we can't really make these elements required! Even
19
+ # stupider, these are the only blank elements that should be written out
20
+ # space-padded to the min_length -- every other element should be
21
+ # collapsed to an empty string.
22
+ #
23
+ # So this "Special" class overrides to_x12 for empty values, but it
24
+ # otherwise looks and acts like a normal AN and StringVal
25
+ #
26
+ class SpecialAN < AN
27
+ def companion
28
+ SpecialVal
29
+ end
30
+ end
31
+
32
+ class SpecialVal < StringVal
33
+ class Empty < StringVal::Empty
34
+ # @return [String]
35
+ def to_x12
36
+ " " * definition.min_length
37
+ end
38
+ end
39
+
40
+ class NonEmpty < StringVal::NonEmpty
41
+ def too_short?
42
+ false
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+ module Stupidedi
3
+ module Parser
4
+ autoload :ConstraintTable, "stupidedi/parser/constraint_table"
5
+ autoload :Instruction, "stupidedi/parser/instruction"
6
+ autoload :InstructionTable, "stupidedi/parser/instruction_table"
7
+
8
+ autoload :BuilderDsl, "stupidedi/parser/builder_dsl"
9
+ autoload :Generation, "stupidedi/parser/generation"
10
+ autoload :Navigation, "stupidedi/parser/navigation"
11
+ autoload :Tokenization, "stupidedi/parser/tokenization"
12
+ autoload :StateMachine, "stupidedi/parser/state_machine"
13
+ autoload :IdentifierStack, "stupidedi/parser/identifier_stack"
14
+
15
+ autoload :AbstractState, "stupidedi/parser/states/abstract_state"
16
+ autoload :FailureState, "stupidedi/parser/states/failure_state"
17
+ autoload :FunctionalGroupState, "stupidedi/parser/states/functional_group_state"
18
+ autoload :InitialState, "stupidedi/parser/states/initial_state"
19
+ autoload :InterchangeState, "stupidedi/parser/states/interchange_state"
20
+ autoload :LoopState, "stupidedi/parser/states/loop_state"
21
+ autoload :TableState, "stupidedi/parser/states/table_state"
22
+ autoload :TransactionSetState, "stupidedi/parser/states/transaction_set_state"
23
+ autoload :TransmissionState, "stupidedi/parser/states/transmission_state"
24
+ end
25
+
26
+ class << Parser
27
+ # @return [StateMachine]
28
+ def build(*args)
29
+ Parser::StateMachine.build(*args)
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,289 @@
1
+ # frozen_string_literal: true
2
+ module Stupidedi
3
+ using Refinements
4
+
5
+ module Parser
6
+ class BuilderDsl
7
+ include Inspect
8
+ include Tokenization
9
+
10
+ # @private
11
+ SEGMENT_ID = /^[A-Z][A-Z0-9]{1,2}$/
12
+
13
+ # @return [StateMachine]
14
+ attr_reader :machine
15
+
16
+ # @return [Boolean]
17
+ attr_writer :strict
18
+
19
+ # @return [DslReader]
20
+ attr_reader :reader
21
+
22
+ def_delegators :@machine, :pretty_print, :segment, :element, :zipper, :successors, :empty?, :first?, :last?, :deterministic?
23
+
24
+ def initialize(machine, strict = true)
25
+ @machine = machine
26
+ @strict = strict
27
+ @reader = DslReader.new(Reader::Separators.empty,
28
+ Reader::SegmentDict.empty)
29
+ end
30
+
31
+ def respond_to_missing?(name, include_private = false)
32
+ SEGMENT_ID =~ name.to_s || super
33
+ end
34
+
35
+ def strict?
36
+ @strict
37
+ end
38
+
39
+ # @return [BuilderDsl]
40
+ def segment!(name, position, *elements)
41
+ segment_tok = mksegment_tok(@reader.segment_dict, name, elements, position)
42
+ machine, reader = @machine.insert(segment_tok, @strict, @reader)
43
+
44
+ if @strict
45
+ unless machine.deterministic?
46
+ matches = machine.active.map do |m|
47
+ segment_def = m.node.zipper.node.definition
48
+ "#{segment_def.id} #{segment_def.name}"
49
+ end.join(", ")
50
+
51
+ raise Exceptions::ParseError,
52
+ "non-deterministic machine state: #{matches}"
53
+ end
54
+
55
+ # Validate the new segment (recursively, including its children)
56
+ machine.active.each{|m| critique(m.node.zipper) }
57
+
58
+ # We want to detect when we've ended a syntax node (or more), like
59
+ # starting a new interchange will end all previously "open" syntax
60
+ # nodes. So we compare the state before adding `segment_tok` to the
61
+ # corresponding state after we've added `segment_tok`.
62
+
63
+ machine.prev.tap do |prev|
64
+ prev.active.zip(machine.active) do |p, q|
65
+ # If the new state `q` is a descendent of `p`, we know that `p`
66
+ # and all of its ancestors are unterminated. However, if `q` is
67
+ # not a descendent of `p`, but is a descendent of one of `p`s
68
+ # descendents, then `p` and perhaps some of its ancestors were
69
+ # terminated when the state transitioned to `q`.
70
+ qancestors = Set.new
71
+
72
+ # Operate on the syntax tree (instead of the state tree)
73
+ q = q.node.zipper
74
+ p = p.node.zipper
75
+
76
+ while q.respond_to?(:parent)
77
+ qancestors << q.parent
78
+ q = q.parent
79
+ end
80
+
81
+ while p.respond_to?(:parent)
82
+ break if qancestors.include?(p)
83
+
84
+ # Now that we're sure that this syntax node (loop, table, etc)
85
+ # is done being constructed, we can perform more validations.
86
+ critique(p)
87
+ p = p.parent
88
+ end
89
+ end
90
+ end
91
+ end
92
+
93
+ @machine = machine
94
+ @reader = reader
95
+
96
+ self
97
+ end
98
+
99
+ private
100
+
101
+ def method_missing(name, *args)
102
+ if SEGMENT_ID =~ name.to_s
103
+ segment!(name, Reader::Position.caller(2), *args)
104
+ else
105
+ super
106
+ end
107
+ end
108
+
109
+ # The `zipper` argument should be a _completed_ syntax node, meaning all
110
+ # children have already been added. This is invariably true for segments,
111
+ # because the {StateMachine} does not accept smaller units of syntax.
112
+ def critique(zipper, recursive = false, position = false)
113
+ if zipper.node.simple? or zipper.node.component?
114
+ if zipper.node.invalid?
115
+ raise Exceptions::ParseError,
116
+ "invalid #{zipper.node.descriptor} at #{zipper.node.position.inspect}"
117
+ elsif zipper.node.blank?
118
+ if zipper.node.usage.required?
119
+ raise Exceptions::ParseError,
120
+ "required #{zipper.node.descriptor} is blank at #{zipper.node.position.inspect}"
121
+ end
122
+ elsif zipper.node.usage.forbidden?
123
+ raise Exceptions::ParseError,
124
+ "forbidden #{zipper.node.descriptor} is present at #{zipper.node.position.inspect}"
125
+ elsif not zipper.node.allowed?
126
+ raise Exceptions::ParseError,
127
+ "value #{zipper.node.to_s} is not allowed in #{zipper.node.descriptor} at #{zipper.node.position.inspect}"
128
+ elsif zipper.node.too_long?
129
+ raise Exceptions::ParseError,
130
+ "value is too long in #{zipper.node.descriptor} at #{zipper.node.position.inspect}"
131
+ elsif zipper.node.too_short?
132
+ raise Exceptions::ParseError,
133
+ "value is too short in #{zipper.node.descriptor} at #{zipper.node.position.inspect}"
134
+ end
135
+
136
+ elsif zipper.node.composite?
137
+ if zipper.node.blank?
138
+ if zipper.node.usage.required?
139
+ raise Exceptions::ParseError,
140
+ "required element #{zipper.node.descriptor} is blank at #{zipper.node.position.inspect}"
141
+ end
142
+ elsif zipper.node.usage.forbidden?
143
+ raise Exceptions::ParseError,
144
+ "forbidden #{zipper.node.descriptor} is present at #{zipper.node.position.inspect}"
145
+ else
146
+ if zipper.node.present?
147
+ zipper.children.each_with_index do |z, i|
148
+ critique(z)
149
+ end
150
+
151
+ d = zipper.node.definition
152
+ d.syntax_notes.each do |s|
153
+ unless s.satisfied?(zipper)
154
+ raise Exceptions::ParseError,
155
+ "for #{zipper.node.descriptor}, #{s.reason(zipper)} at #{zipper.node.position.inspect}"
156
+ end
157
+ end
158
+ end
159
+ end
160
+
161
+ elsif zipper.node.repeated?
162
+ unless zipper.node.usage.repeat_count.include?(zipper.node.children.length)
163
+ raise Exceptions::ParseError,
164
+ "repeating #{zipper.node.descriptor} occurs too many times at #{zipper.node.position.inspect}"
165
+ end
166
+
167
+ zipper.children.each{|z| critique(z) }
168
+
169
+ elsif zipper.node.segment?
170
+ if zipper.node.invalid?
171
+ if zipper.up.node.invalid?
172
+ # parent is an InvalidEnvelopeVal
173
+ raise Exceptions::ParseError,
174
+ "#{zipper.first.node.reason} at #{zipper.first.node.position.inspect}"
175
+ else
176
+ raise Exceptions::ParseError,
177
+ "#{zipper.node.descriptor} at #{zipper.node.position.inspect}"
178
+ end
179
+ else
180
+ zipper.children.each_with_index do |z, i|
181
+ critique(z)
182
+ end
183
+
184
+ d = zipper.node.definition
185
+ d.syntax_notes.each do |s|
186
+ raise Exceptions::ParseError,
187
+ "for #{zipper.node.descriptor}, #{s.reason(zipper)} at #{zipper.node.position.inspect}" \
188
+ unless s.satisfied?(zipper)
189
+ end
190
+ end
191
+
192
+ elsif zipper.node.loop?
193
+ critique_occurences zipper, recursive
194
+
195
+ elsif zipper.node.table?
196
+ critique_occurences zipper, recursive
197
+
198
+ elsif zipper.node.transaction_set?
199
+ critique_occurences zipper, recursive
200
+
201
+ elsif zipper.node.functional_group?
202
+ critique_occurences zipper, recursive
203
+
204
+ elsif zipper.node.interchange?
205
+ critique_occurences zipper, recursive
206
+
207
+ elsif zipper.node.transmission?
208
+ if recursive
209
+ zipper.children.each_with_index do |z, i|
210
+ critique(z, recursive)
211
+ end
212
+ end
213
+ end
214
+ end
215
+
216
+ def critique_occurences(zipper, recursive)
217
+ occurences = Hash.new{|h,k| h[k] = 0 }
218
+
219
+ zipper.children.each do |child|
220
+ if child.node.respond_to?(:usage)
221
+ occurences[child.node.usage] += 1
222
+ elsif child.node.invalid?
223
+ raise Exceptions::ParseError,
224
+ "#{child.node.descriptor} at #{child.node.position.inspect}"
225
+ else
226
+ occurences[child.node.definition] += 1
227
+ end
228
+
229
+ if recursive
230
+ critique(child, "", recursive)
231
+ end
232
+ end
233
+
234
+ zipper.node.definition.children.each do |child|
235
+ bound = child.repeat_count
236
+ count = occurences.at(child)
237
+
238
+ if count.zero? and child.required?
239
+ raise Exceptions::ParseError,
240
+ "required #{child.descriptor} is missing from #{zipper.node.descriptor} at #{zipper.node.position.inspect}"
241
+ elsif bound < count
242
+ raise Exceptions::ParseError,
243
+ "#{child.descriptor} occurs too many times in #{zipper.node.descriptor} at #{zipper.node.position.inspect}"
244
+ end
245
+ end
246
+ end
247
+
248
+ # @endgroup
249
+ #########################################################################
250
+ end
251
+
252
+ class << BuilderDsl
253
+ # @group Constructors
254
+ #########################################################################
255
+
256
+ # @return [BuilderDsl]
257
+ def build(config, strict = true)
258
+ new(StateMachine.build(config), strict)
259
+ end
260
+
261
+ # @endgroup
262
+ #########################################################################
263
+ end
264
+
265
+ # @private
266
+ class DslReader
267
+ # @return [Reader::Separators]
268
+ attr_reader :separators
269
+
270
+ # @return [Reader::SegmentDict]
271
+ attr_reader :segment_dict
272
+
273
+ def initialize(separators, segment_dict)
274
+ @separators, @segment_dict = separators, segment_dict
275
+ end
276
+
277
+ # @return [DslReader]
278
+ def copy(changes = {})
279
+ @separators = changes.fetch(:separators, @separators)
280
+ @segment_dict = changes.fetch(:segment_dict, @segment_dict)
281
+ self
282
+ end
283
+
284
+ def stream?
285
+ false
286
+ end
287
+ end
288
+ end
289
+ end
@@ -0,0 +1,488 @@
1
+ # frozen_string_literal: true
2
+ module Stupidedi
3
+ using Refinements
4
+
5
+ module Parser
6
+ # The {ConstraintTable} is a data structure that contains one or more
7
+ # {Instruction} values for the same segment identifier. Each concrete
8
+ # subclass implements different strategies for narrowing down the
9
+ # {Instruction} list.
10
+ #
11
+ # Reducing the number of valid {Instruction} values is important because
12
+ # executing more than one {Instruction} creates a non-deterministic state --
13
+ # more than one valid parse tree exists -- which slows the parser. Most
14
+ # often there is only one valid {Instruction} but the parser cannot
15
+ # (efficiently or at all) narrow the tree down without evaluating the
16
+ # constraints declared by each {Instruction}'s {Schema::SegmentUse}, which
17
+ # is done here.
18
+ #
19
+ class ConstraintTable
20
+ # @return [Array<Instruction>]
21
+ abstract :matches, :args => %w(segment_tok strict mode)
22
+
23
+ # @return [Array<Instruction>]
24
+ attr_reader :instructions
25
+
26
+ def copy(changes = {})
27
+ self.class.new \
28
+ changes.fetch(:instructions, instructions)
29
+ end
30
+
31
+ # @return [void]
32
+ # :nocov:
33
+ def pretty_print(q)
34
+ name = self.class.name.split("::").last
35
+ q.text "#{name}.build"
36
+ q.group(2, "([", "])") do
37
+ q.breakable
38
+ instructions.each do |op|
39
+ unless q.current_group.first?
40
+ q.text ","
41
+ q.breakable
42
+ end
43
+ q.pp op
44
+ end
45
+ end
46
+ end
47
+ # :nocov:
48
+
49
+ # @todo
50
+ def critique(segment_tok, segment_uses)
51
+ end
52
+
53
+ # Performs no filtering of the {Instruction} list. This is used when there
54
+ # already is a single {Instruction} or when a {Reader::SegmentTok} doesn't
55
+ # provide any more information to filter the list.
56
+ #
57
+ class Stub < ConstraintTable
58
+ def initialize(instructions)
59
+ @instructions = instructions
60
+ end
61
+
62
+ # @return [Array<Instruction>]
63
+ def matches(segment_tok, strict, mode)
64
+ @instructions.tap do |xs|
65
+ critique(segment_tok, xs.map(&:segment_use)) if strict
66
+ end
67
+ end
68
+ end
69
+
70
+ # Chooses the {Instruction} that pops the fewest number of states. For
71
+ # example, in the X222 837P an HL segment signals the start of a new
72
+ # 2000 loop, but may or may not begin a new Table 2 -- the specifications
73
+ # aren't actually clear. This rule will not create a new Table 2, but
74
+ # just add a new 2000 loop under the current one.
75
+ #
76
+ class Shallowest < ConstraintTable
77
+ def initialize(instructions)
78
+ @instructions = instructions
79
+ end
80
+
81
+ # @return [Array<Instruction>]
82
+ def matches(segment_tok, strict, mode)
83
+ @__matches ||= begin
84
+ shallowest = @instructions.map(&:pop_count).min
85
+ @instructions.select{|i| i.pop_count == shallowest }.tap do |xs|
86
+ critique(segment_tok, xs.map(&:segment_use)) if strict
87
+ end
88
+ end
89
+ end
90
+ end
91
+
92
+ # Chooses the {Instruction} that pops the greatest number of states.
93
+ #
94
+ class Deepest < ConstraintTable
95
+ # def initialize(instructions)
96
+ # @instructions = instructions
97
+ # end
98
+
99
+ # # @return [Array<Instruction>]
100
+ # def matches(segment_tok, strict, mode)
101
+ # @__matches ||= begin
102
+ # deepest = @instructions.map(&:pop_count).max
103
+ # @instructions.select{|i| i.pop_count == deepest }.tap do |xs|
104
+ # critique(segment_tok, xs.map(&:segment_use)) if strict
105
+ # end
106
+ # end
107
+ # end
108
+ end
109
+
110
+ # Chooses the subset of {Instruction} values based on the distinguishing
111
+ # values allowed by each {Schema::SegmentUse}. For instance, there are
112
+ # often several loops that begin with `NM1`, which are distinguished by
113
+ # the qualifier in element `NM101`.
114
+ #
115
+ class ValueBased < ConstraintTable
116
+ def initialize(instructions)
117
+ @instructions = instructions
118
+ @__basis = {}
119
+ end
120
+
121
+ # @return [Array<Instruction>]
122
+ def matches(segment_tok, strict, mode)
123
+ invalid = true # Were all present possibly distinguishing elements invalid?
124
+ present = false # Were any possibly distinguishing elements present?
125
+
126
+ disjoint, distinct = basis(@instructions, mode)
127
+
128
+ # First check single elements that can narrow the search space to
129
+ # a single matching Instruction.
130
+ disjoint.each do |(n, m), map|
131
+ value = deconstruct(segment_tok.element_toks, n, m)
132
+
133
+ case value
134
+ when nil, :not_used, :default
135
+ # value wasn't present in segment_tok, can't use it to decide
136
+ else
137
+ singleton = map.at(value)
138
+ present = true
139
+
140
+ unless singleton.nil?
141
+ # Success, search is terminated
142
+ return singleton
143
+ else
144
+ if strict
145
+ designator = "#{segment_tok.id}#{"%02d" % (n + 1)}"
146
+ designator = designator + "-%02d" % (m + 1) unless m.nil?
147
+
148
+ raise ArgumentError,
149
+ "value #{value.to_s} is not allowed in element #{designator}"
150
+ end
151
+ end
152
+ end
153
+ end
154
+
155
+ # If we reach this line, none of the present elements could, on its
156
+ # own, narrow the search space to a single Instruction. We now test
157
+ # the combination of elements to iteratively narrow the search space
158
+ space = @instructions
159
+
160
+ # @todo: These filters could be ordered by probable effectiveness,
161
+ # so we narrow the search space by the largest amount in the fewest
162
+ # number of steps.
163
+ distinct.each do |(n, m), map|
164
+ value = deconstruct(segment_tok.element_toks, n, m)
165
+
166
+ unless value.nil?
167
+ # Lookup which instructions are compatible with this input
168
+ subset = map.at(value)
169
+ present = true
170
+
171
+ unless subset.blank?
172
+ invalid = false
173
+ space &= subset
174
+
175
+ if space.length <= 1
176
+ # Success, search is terminated
177
+ return space
178
+ end
179
+ else
180
+ # This value isn't compatible with any instruction
181
+ if strict
182
+ designator = "#{segment_tok.id}#{"%02d" % (n + 1)}"
183
+ designator = designator + "-%02d" % (m + 1) unless m.nil?
184
+
185
+ raise ArgumentError,
186
+ "value #{value.to_s} is not allowed in element #{designator}"
187
+ end
188
+ end
189
+ end
190
+ end
191
+
192
+ if invalid and present
193
+ # Some elements were present, but all contained invalid values, and
194
+ # even ignoring those we could not narrow the matches to a single
195
+ # instruction.
196
+ #
197
+ # We could return the remaining search space, but it is safest to
198
+ # mark this as an invalid segment and avoid the non-determinism
199
+ []
200
+ else
201
+ # Some elements were present and none were invalid, but it was not
202
+ # possible to narrow the set of matches to a single instruction.
203
+ #
204
+ # It seems wrong to mark the segment invalid. The worst thing you
205
+ # could say about the input is that it may have been missing a
206
+ # required element that could have resolved the ambiguity; but it's
207
+ # also possible all required elements were present and the grammar
208
+ # is the problem (not the input). So here we return the remaining
209
+ # search space, which will cause non-determinism in the parser.
210
+ space
211
+ end
212
+ end
213
+
214
+ # Resolve conflicts between instructions that have identical SegmentUse
215
+ # values. For each SegmentUse, this chooses the Instruction that pops
216
+ # the fewest number of states.
217
+ #
218
+ # @return [Array<Instruction>]
219
+ def shallowest(instructions)
220
+ grouped = instructions.group_by{|i| i.segment_use.object_id }
221
+ grouped.flat_map do |k, is|
222
+ shallowest = is.map(&:pop_count).min
223
+ is.select{|i| i.pop_count == shallowest }
224
+ end
225
+ end
226
+
227
+ # @return [Array(Array<(Integer, Integer, Map)>, Array<(Integer, Integer, Map)>)]
228
+ def basis(instructions, mode)
229
+ @__basis[mode] ||= begin
230
+ # When inserting segments, given a choice between two otherwise
231
+ # equivalent instructions, prefer the one with smallest `pop_count`.
232
+ # For example, when inserting an HL*20 in X221 835, the new 2000A
233
+ # loop could potentially go in the current "Table 2 - Billing
234
+ # Provider Detail" (smaller pop_count), or the parser could create
235
+ # a whole new table (larger pop_count).
236
+ #
237
+ # When searching for segments in a parse tree (mode == :read), we
238
+ # need to try both choices. That's because this "Table 2 - Billing
239
+ # Provider Detail" could be followed by a different "Table 2 -
240
+ # Subscriber Detail", which is then followed by another "Table 2 -
241
+ # Billing Provider Detail". Then the next HL*20 would belong to the
242
+ # uncle table, not the current table.
243
+ if mode == :insert
244
+ instructions = shallowest(instructions)
245
+ end
246
+
247
+ disjoint_elements = []
248
+ distinct_elements = []
249
+
250
+ # The first SegmentUse is used to represent the structure that must
251
+ # be shared by the others: number of elements and type of elements
252
+ element_uses = instructions.head.segment_use.definition.element_uses
253
+
254
+ # Iterate over each element across all SegmentUses (think columns)
255
+ # NM1*[IL]*[ ]*..*..*..*..*..*[ ]*..*..*{..}*..
256
+ # NM1*[40]*[ ]*..*..*..*..*..*[ ]*..*..*{..}*..
257
+ element_uses.length.times do |n|
258
+ if element_uses.at(n).composite?
259
+ ms = 0 .. element_uses.at(n).definition.component_uses.length - 1
260
+ else
261
+ ms = [nil]
262
+ end
263
+
264
+ # If this is a composite element, we iterate over each component.
265
+ # Otherwise this loop iterates once with the index {m} set to nil.
266
+ ms.each do |m|
267
+ last = nil # the last subset we examined
268
+ total = Sets.empty # the union of all examined subsets
269
+
270
+ distinct = false
271
+ disjoint = true
272
+
273
+ instructions.each do |i|
274
+ element_use = i.segment_use.definition.element_uses.at(n)
275
+
276
+ unless m.nil?
277
+ element_use = element_use.definition.component_uses.at(m)
278
+ end
279
+
280
+ allowed_vals = element_use.allowed_values
281
+
282
+ # We want to know if every instruction's set of allowed values
283
+ # is disjoint (with one another). Instead of comparing each set
284
+ # with every other set, which takes (N-1)! comparisons, we can
285
+ # do it in N steps.
286
+ disjoint &&= allowed_vals.disjoint?(total)
287
+
288
+ # We also want to know if one instruction's set of allowed vals
289
+ # contains elements that aren't present in at least one other
290
+ # set. The opposite condition is easy to test: all sets contain
291
+ # the same elements (are equal). So we can similarly, check this
292
+ # condition in N steps rather than (N-1)!
293
+ distinct ||= allowed_vals != last unless last.nil?
294
+
295
+ total = allowed_vals.union(total)
296
+ last = allowed_vals
297
+ end
298
+
299
+ # puts "#{n}.#{m}: disjoint(#{disjoint}) distinct(#{distinct})"
300
+
301
+ if disjoint
302
+ # Since each instruction's set of allowed values is disjoint, we
303
+ # can build a function/hash that returns the single instruction,
304
+ # given one of the values. When given a value outside the set of
305
+ # all (combined) values, it returns nil.
306
+ disjoint_elements << [[n, m], build_disjoint(total, n, m, instructions)]
307
+ elsif distinct
308
+ # Not all instructions have the same set of allowed values. So
309
+ # we can build a function/hash that accepts one of the values
310
+ # and returns the subset of the instructions where that value
311
+ # can occur. This might be some, none, or all of the original
312
+ # instructions, so clearly this provides less information than
313
+ # if each allowed value set was disjoint.
314
+
315
+ # Currently disabled (and untested) because it doesn't look like
316
+ # any of the HIPAA schemas would use this -- so testing it would
317
+ # be a pain.
318
+ #
319
+ distinct_elements << [[n, m], build_distinct(total, n, m, instructions)]
320
+ end
321
+ end
322
+ end
323
+
324
+ [disjoint_elements, distinct_elements]
325
+ end
326
+ end
327
+
328
+ # @return [Hash<String, Array<Instruction>>]
329
+ def build_disjoint(total, n, m, instructions)
330
+ if total.finite?
331
+ # The sum of all allowed value sets is finite, so we know that each
332
+ # individual allowed value set is finite (we can iterate over it).
333
+ map = Hash.new
334
+
335
+ instructions.each do |i|
336
+ element_use = i.segment_use.definition.element_uses.at(n)
337
+
338
+ unless m.nil?
339
+ element_use = element_use.definition.component_uses.at(m)
340
+ end
341
+
342
+ allowed_vals = element_use.allowed_values
343
+ allowed_vals.each{|v| map[v] = i.cons }
344
+ end
345
+
346
+ map
347
+ else
348
+ # At least one of allowed value sets is infinite. This happens when
349
+ # it is RelativeComplement, which declares the values that are *not*
350
+ # allowed in the set.
351
+ map = Hash.new{|h,k| h[k] = instructions }
352
+
353
+ instructions.each do |i|
354
+ element_use = i.segment_use.definition.element_uses.at(n)
355
+ unless m.nil?
356
+ element_use = element_use.definition.component_uses.at(m)
357
+ end
358
+
359
+ allowed_vals = element_use.allowed_values
360
+
361
+ unless allowed_vals.finite?
362
+ allowed_vals.complement.each{|v| map[v] -= i }
363
+ end
364
+ end
365
+
366
+ # Clear the default_proc so accesses don't change the Hash
367
+ map.default = instructions
368
+ map
369
+ end
370
+ end
371
+
372
+ # @return [Hash<String, Array<Instruction>>]
373
+ def build_distinct(total, n, m, instructions)
374
+ if total.finite?
375
+ # The sum of all allowed value sets is finite, so we know that each
376
+ # individual allowed value set is finite (we can iterate over it).
377
+ map = Hash.new{|h,k| h[k] = [] }
378
+
379
+ instructions.each do |i|
380
+ element_use = i.segment_use.definition.element_uses.at(n)
381
+
382
+ unless m.nil?
383
+ element_use = element_use.definition.component_uses.at(m)
384
+ end
385
+
386
+ allowed_vals = element_use.allowed_values
387
+ allowed_vals.each{|v| map[v] << i }
388
+ end
389
+
390
+ # Clear the default_proc so accesses don't change the Hash
391
+ map.default = []
392
+ map
393
+ else
394
+ # At least one of allowed value sets is infinite. This happens when
395
+ # it is RelativeComplement, which declares the values that are *not*
396
+ # allowed in the set.
397
+ map = Hash.new{|h,k| h[k] = instructions }
398
+
399
+ instructions.each do |i|
400
+ element_use = i.segment_use.definition.element_uses.at(n)
401
+
402
+ unless m.nil?
403
+ element_use = element_use.definition.component_uses.at(m)
404
+ end
405
+
406
+ allowed_vals = element_use.allowed_values
407
+
408
+ unless allowed_vals.finite?
409
+ allowed_vals.complement.each{|v| map[v] -= i }
410
+ end
411
+ end
412
+
413
+ # Clear the default_proc so accesses don't change the Hash
414
+ map.default = instructions
415
+ map
416
+ end
417
+ end
418
+
419
+ # Return the value of the `m`-th elemnt, or if `n` is not nil, return
420
+ # the value of the `n`-th component from the `n`-th element. When the
421
+ # value is blank, the function returns `nil`.
422
+ #
423
+ # @param [Array<Reader::SimpleElementTok, Reader::CompositeElementTok>] element_toks
424
+ # @param [Integer] m
425
+ # @param [Integer, nil] n
426
+ #
427
+ # @return [String, nil]
428
+ def deconstruct(element_toks, m, n)
429
+ element_tok = element_toks.at(m)
430
+ element_tok = element_tok.element_toks.at(0) if element_tok.try(:repeated?)
431
+
432
+ if element_tok.blank?
433
+ nil
434
+ elsif n.nil?
435
+ element_tok.value
436
+ else
437
+ element_tok = element_tok.component_toks.at(n)
438
+
439
+ if element_tok.blank?
440
+ nil
441
+ else
442
+ element_tok.value
443
+ end
444
+ end
445
+ end
446
+ end
447
+ end
448
+
449
+ class << ConstraintTable
450
+ # @group Constructors
451
+ #########################################################################
452
+
453
+ # Given a list of {Instruction} values for the same segment identifier,
454
+ # this method constructs the appropriate concrete subclass of
455
+ # {ConstraintTable}.
456
+ #
457
+ # @param [Array<Instruction>] instructions
458
+ # @return [ConstraintTable]
459
+ def build(instructions)
460
+ if instructions.length <= 1
461
+ ConstraintTable::Stub.new(instructions)
462
+ elsif instructions.any?{|i| i.segment_use.nil? } and
463
+ not instructions.all?{|i| i.segment_use.nil? }
464
+ # When one of the instructions has a nil segment_use, it means
465
+ # the SegmentUse is determined when pushing the new state. There
466
+ # isn't a way to know the segment constraints from here.
467
+ ConstraintTable::Stub.new(instructions)
468
+ else
469
+ segment_uses = instructions.map{|i| i.segment_use }
470
+
471
+ if segment_uses.map{|u| u.object_id }.uniq.length <= 1
472
+ # The same SegmentUse may appear more than once, because the
473
+ # segment can be placed at different levels in the tree. If
474
+ # all the instructions have the same SegmentUse, they also have
475
+ # the same element constraints so we can't use them to narrow
476
+ # down the instruction list.
477
+ ConstraintTable::Shallowest.new(instructions)
478
+ else
479
+ ConstraintTable::ValueBased.new(instructions)
480
+ end
481
+ end
482
+ end
483
+
484
+ # @endgroup
485
+ #########################################################################
486
+ end
487
+ end
488
+ end