stupidedi 1.1.0 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +217 -90
- data/Rakefile +13 -7
- data/bin/edi-ed +8 -31
- data/bin/edi-pp +25 -50
- data/doc/Navigating.md +4 -0
- data/doc/{Defining.md → unwritten/Defining.md} +0 -0
- data/doc/{Parsing.md → unwritten/Parsing.md} +0 -0
- data/doc/{Tokenizing.md → unwritten/Tokenizing.md} +0 -0
- data/doc/{Validating.md → unwritten/Validating.md} +0 -0
- data/lib/ruby/array.rb +17 -0
- data/lib/ruby/blank.rb +4 -2
- data/lib/ruby/enumerable.rb +2 -2
- data/lib/ruby/module.rb +0 -28
- data/lib/ruby/to_d.rb +5 -5
- data/lib/ruby/try.rb +4 -2
- data/lib/stupidedi.rb +3 -0
- data/lib/stupidedi/builder.rb +1 -0
- data/lib/stupidedi/builder/builder_dsl.rb +2 -2
- data/lib/stupidedi/builder/constraint_table.rb +42 -14
- data/lib/stupidedi/builder/identifier_stack.rb +167 -0
- data/lib/stupidedi/builder/navigation.rb +95 -33
- data/lib/stupidedi/config.rb +53 -5
- data/lib/stupidedi/config/editor_config.rb +1 -2
- data/lib/stupidedi/config/functional_group_config.rb +2 -1
- data/lib/stupidedi/config/interchange_config.rb +3 -1
- data/lib/stupidedi/contrib.rb +9 -0
- data/lib/stupidedi/contrib/002001.rb +13 -0
- data/lib/stupidedi/contrib/002001/guides.rb +20 -0
- data/lib/stupidedi/contrib/002001/guides/FA997.rb +80 -0
- data/lib/stupidedi/contrib/002001/guides/PO830.rb +182 -0
- data/lib/stupidedi/contrib/002001/guides/SH856.rb +215 -0
- data/lib/stupidedi/contrib/002001/transaction_set_defs.rb +23 -0
- data/lib/stupidedi/contrib/002001/transaction_set_defs/FA997.rb +30 -0
- data/lib/stupidedi/contrib/002001/transaction_set_defs/PO830.rb +45 -0
- data/lib/stupidedi/contrib/002001/transaction_set_defs/SH856.rb +37 -0
- data/lib/stupidedi/contrib/003010.rb +13 -0
- data/lib/stupidedi/contrib/003010/guides.rb +21 -0
- data/lib/stupidedi/contrib/003010/guides/PC860.rb +170 -0
- data/lib/stupidedi/contrib/003010/guides/PO850.rb +168 -0
- data/lib/stupidedi/contrib/003010/guides/RA820.rb +169 -0
- data/lib/stupidedi/contrib/003010/transaction_set_defs.rb +21 -0
- data/lib/stupidedi/contrib/003010/transaction_set_defs/PC860.rb +47 -0
- data/lib/stupidedi/contrib/003010/transaction_set_defs/PO850.rb +48 -0
- data/lib/stupidedi/contrib/003010/transaction_set_defs/RA820.rb +38 -0
- data/lib/stupidedi/contrib/003040.rb +13 -0
- data/lib/stupidedi/contrib/003040/guides.rb +19 -0
- data/lib/stupidedi/contrib/003040/guides/WA142.rb +184 -0
- data/lib/stupidedi/contrib/003040/transaction_set_defs.rb +15 -0
- data/lib/stupidedi/contrib/003040/transaction_set_defs/WA142.rb +52 -0
- data/lib/stupidedi/contrib/003050.rb +13 -0
- data/lib/stupidedi/contrib/003050/guides.rb +15 -0
- data/lib/stupidedi/contrib/003050/guides/PO850.rb +95 -0
- data/lib/stupidedi/contrib/003050/transaction_set_defs.rb +14 -0
- data/lib/stupidedi/contrib/003050/transaction_set_defs/PO850.rb +42 -0
- data/lib/stupidedi/contrib/004010.rb +13 -0
- data/lib/stupidedi/contrib/004010/guides.rb +26 -0
- data/lib/stupidedi/contrib/004010/guides/AR943.rb +87 -0
- data/lib/stupidedi/contrib/004010/guides/FA997.rb +80 -0
- data/lib/stupidedi/contrib/004010/guides/GF990.rb +48 -0
- data/lib/stupidedi/contrib/004010/guides/OW940.rb +120 -0
- data/lib/stupidedi/contrib/004010/guides/PO850.rb +105 -0
- data/lib/stupidedi/contrib/004010/guides/PS830.rb +163 -0
- data/lib/stupidedi/contrib/004010/guides/QM214.rb +127 -0
- data/lib/stupidedi/contrib/004010/guides/RE944.rb +73 -0
- data/lib/stupidedi/contrib/004010/guides/SH856.rb +185 -0
- data/lib/stupidedi/contrib/004010/guides/SM204.rb +283 -0
- data/lib/stupidedi/contrib/004010/guides/SQ866.rb +119 -0
- data/lib/stupidedi/contrib/004010/guides/SS862.rb +177 -0
- data/lib/stupidedi/contrib/004010/guides/SW945.rb +119 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs.rb +51 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/AR943.rb +34 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/FA997.rb +30 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/GF990.rb +21 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/OW940.rb +43 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/PO850.rb +42 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/PS830.rb +44 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/QM214.rb +40 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/RE944.rb +34 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/SH856.rb +35 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/SM204.rb +66 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/SQ866.rb +32 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/SS862.rb +40 -0
- data/lib/stupidedi/contrib/004010/transaction_set_defs/SW945.rb +43 -0
- data/lib/stupidedi/editor.rb +4 -1
- data/lib/stupidedi/editor/00401.rb +341 -0
- data/lib/stupidedi/editor/004010.rb +452 -0
- data/{doc/LICENSE.md → lib/stupidedi/editor/004010/N2.rb} +0 -0
- data/lib/stupidedi/editor/004010/N3.rb +0 -0
- data/lib/stupidedi/editor/004010/N4.rb +63 -0
- data/lib/stupidedi/editor/004010/NM1.rb +0 -0
- data/lib/stupidedi/editor/X12.rb +157 -0
- data/lib/stupidedi/editor/transaction_set_ed.rb +1 -1
- data/lib/stupidedi/either.rb +2 -2
- data/lib/stupidedi/guides.rb +1 -0
- data/lib/stupidedi/guides/004010.rb +19 -0
- data/lib/stupidedi/guides/004010/X091A1-HP835.rb +530 -0
- data/lib/stupidedi/guides/004010/element_reqs.rb +38 -0
- data/lib/stupidedi/guides/004010/guide_builder.rb +180 -0
- data/lib/stupidedi/guides/004010/segment_reqs.rb +32 -0
- data/lib/stupidedi/guides/005010.rb +0 -1
- data/lib/stupidedi/guides/005010/X222-HC837P.rb +3 -3
- data/lib/stupidedi/guides/005010/X222A1-HC837P.rb +3 -3
- data/lib/stupidedi/guides/005010/guide_builder.rb +21 -1
- data/lib/stupidedi/reader/input/abstract_input.rb +10 -6
- data/lib/stupidedi/reader/input/delegated_input.rb +11 -7
- data/lib/stupidedi/reader/tokens/repeated_element_tok.rb +3 -2
- data/lib/stupidedi/schema.rb +12 -12
- data/lib/stupidedi/schema/code_list.rb +3 -2
- data/lib/stupidedi/schema/element_use.rb +4 -3
- data/lib/stupidedi/schema/loop_def.rb +4 -3
- data/lib/stupidedi/schema/repeat_count.rb +3 -2
- data/lib/stupidedi/schema/segment_use.rb +5 -4
- data/lib/stupidedi/schema/syntax_note.rb +2 -2
- data/lib/stupidedi/schema/table_def.rb +4 -0
- data/lib/stupidedi/sets.rb +12 -27
- data/lib/stupidedi/values/composite_element_val.rb +5 -3
- data/lib/stupidedi/values/functional_group_val.rb +3 -2
- data/lib/stupidedi/values/interchange_val.rb +15 -1
- data/lib/stupidedi/values/invalid_envelope_val.rb +3 -2
- data/lib/stupidedi/values/invalid_segment_val.rb +2 -1
- data/lib/stupidedi/values/loop_val.rb +3 -2
- data/lib/stupidedi/values/repeated_element_val.rb +10 -3
- data/lib/stupidedi/values/segment_val.rb +3 -1
- data/lib/stupidedi/values/simple_element_val.rb +4 -2
- data/lib/stupidedi/values/table_val.rb +3 -2
- data/lib/stupidedi/values/transaction_set_val.rb +3 -2
- data/lib/stupidedi/version.rb +1 -1
- data/lib/stupidedi/versions/functional_groups.rb +6 -2
- data/lib/stupidedi/versions/functional_groups/002001.rb +38 -0
- data/lib/stupidedi/versions/functional_groups/002001/element_defs.rb +10696 -0
- data/lib/stupidedi/versions/functional_groups/002001/element_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/002001/element_types.rb +127 -0
- data/lib/stupidedi/versions/functional_groups/002001/element_types/date_val.rb +579 -0
- data/lib/stupidedi/versions/functional_groups/002001/element_types/fixnum_val.rb +324 -0
- data/lib/stupidedi/versions/functional_groups/002001/element_types/float_val.rb +356 -0
- data/lib/stupidedi/versions/functional_groups/002001/element_types/identifier_val.rb +373 -0
- data/lib/stupidedi/versions/functional_groups/002001/element_types/operators.rb +117 -0
- data/lib/stupidedi/versions/functional_groups/002001/element_types/string_val.rb +403 -0
- data/lib/stupidedi/versions/functional_groups/002001/element_types/time_val.rb +327 -0
- data/lib/stupidedi/versions/functional_groups/002001/functional_group_def.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs.rb +249 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AK1.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AK2.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AK3.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AK4.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AK5.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AK9.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AT7.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/AT8.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/ATH.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/B1.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/B10.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/B2.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/B2A.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/BEG.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/BFR.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/BSN.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/CTT.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/CUR.rb +57 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/DTM.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/FST.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/G61.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/G62.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/G69.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/GE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/GS.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/HL.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/J2X.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/K1.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/L11.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/L3.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/L5.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/LFH.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/LH1.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/LH2.rb +36 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/LH3.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/LIN.rb +50 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/LX.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/M7.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/MAN.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/MEA.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/MS1.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/MS2.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/MS3.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/N1.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/N2.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/N3.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/N4.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/N7.rb +45 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/N9.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/NTE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/PER.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/PID.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/PLD.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/PO1.rb +59 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/PO4.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/REF.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/S5.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/SDP.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/SE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/SN1.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/ST.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/TD1.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/TD3.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/TD5.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/UNT.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W01.rb +43 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W03.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W04.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W05.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W06.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W07.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W08.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W12.rb +50 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W14.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W17.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W20.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W27.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W66.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_defs/W76.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/002001/segment_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/002001/syntax_notes.rb +174 -0
- data/lib/stupidedi/versions/functional_groups/002001/transaction_set_defs.rb +11 -0
- data/lib/stupidedi/versions/functional_groups/003010.rb +38 -0
- data/lib/stupidedi/versions/functional_groups/003010/element_defs.rb +9266 -0
- data/lib/stupidedi/versions/functional_groups/003010/element_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/003010/element_types.rb +127 -0
- data/lib/stupidedi/versions/functional_groups/003010/element_types/date_val.rb +579 -0
- data/lib/stupidedi/versions/functional_groups/003010/element_types/fixnum_val.rb +324 -0
- data/lib/stupidedi/versions/functional_groups/003010/element_types/float_val.rb +355 -0
- data/lib/stupidedi/versions/functional_groups/003010/element_types/identifier_val.rb +372 -0
- data/lib/stupidedi/versions/functional_groups/003010/element_types/operators.rb +117 -0
- data/lib/stupidedi/versions/functional_groups/003010/element_types/string_val.rb +400 -0
- data/lib/stupidedi/versions/functional_groups/003010/element_types/time_val.rb +327 -0
- data/lib/stupidedi/versions/functional_groups/003010/functional_group_def.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs.rb +252 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/AK1.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/AK2.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/AK3.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/AK9.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/AT7.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/AT8.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/B1.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/B10.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/B2.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/B2A.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/BCH.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/BEG.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/BPS.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/BSN.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/CTT.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/CUR.rb +58 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/DTM.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/FOB.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/G61.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/G62.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/G69.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/GE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/GS.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/HL.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/ITD.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/K1.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/L11.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/L3.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/L5.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LE.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LFH.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LH1.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LH2.rb +36 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LH3.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LIN.rb +50 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LS.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/LX.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/M7.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/MAN.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/MEA.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/MS1.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/MS2.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/MS3.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/MSG.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/N1.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/N2.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/N3.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/N4.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/N7.rb +45 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/N9.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/NTE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/PER.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/PID.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/PLD.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/PO1.rb +59 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/PO4.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/POC.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/REF.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/RMT.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/S5.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/SE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/SN1.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/ST.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/TD1.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/TD3.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/TD5.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W01.rb +43 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W03.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W04.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W05.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W06.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W07.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W08.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W12.rb +50 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W14.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W17.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W20.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W27.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W66.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_defs/W76.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003010/segment_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/003010/syntax_notes.rb +174 -0
- data/lib/stupidedi/versions/functional_groups/003010/transaction_set_defs.rb +11 -0
- data/lib/stupidedi/versions/functional_groups/003040.rb +38 -0
- data/lib/stupidedi/versions/functional_groups/003040/element_defs.rb +10777 -0
- data/lib/stupidedi/versions/functional_groups/003040/element_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/003040/element_types.rb +127 -0
- data/lib/stupidedi/versions/functional_groups/003040/element_types/date_val.rb +578 -0
- data/lib/stupidedi/versions/functional_groups/003040/element_types/fixnum_val.rb +323 -0
- data/lib/stupidedi/versions/functional_groups/003040/element_types/float_val.rb +356 -0
- data/lib/stupidedi/versions/functional_groups/003040/element_types/identifier_val.rb +370 -0
- data/lib/stupidedi/versions/functional_groups/003040/element_types/operators.rb +117 -0
- data/lib/stupidedi/versions/functional_groups/003040/element_types/string_val.rb +401 -0
- data/lib/stupidedi/versions/functional_groups/003040/element_types/time_val.rb +327 -0
- data/lib/stupidedi/versions/functional_groups/003040/functional_group_def.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs.rb +271 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/AK1.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/AK2.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/AK3.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/AK9.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/AMT.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/AT7.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/AT8.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/B1.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/B10.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/B2.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/B2A.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/BEG.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/BGN.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/BPS.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/BSN.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/CTT.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/CUR.rb +58 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/DTM.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/FOB.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/G61.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/G62.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/G69.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/GE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/GS.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/HL.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/IT1.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/ITD.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/K1.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/L11.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/L3.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/L5.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LE.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LFH.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LH1.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LH2.rb +36 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LH3.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LIN.rb +50 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LS.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/LX.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/M7.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/MAN.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/MEA.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/MS1.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/MS2.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/MS3.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/MSG.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/N1.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/N2.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/N3.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/N4.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/N7.rb +45 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/N9.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/NTE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/PER.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/PID.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/PLD.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/PO1.rb +59 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/PO4.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/PRR.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/QTY.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/REF.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/REP.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/RMT.rb +36 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/S5.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/SE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/SN1.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/SSS.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/ST.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/TD1.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/TD3.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/TD5.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/TDS.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W01.rb +43 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W03.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W04.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W05.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W06.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W07.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W08.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W12.rb +50 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W14.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W17.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W20.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W27.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W66.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_defs/W76.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003040/segment_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/003040/syntax_notes.rb +174 -0
- data/lib/stupidedi/versions/functional_groups/003040/transaction_set_defs.rb +11 -0
- data/lib/stupidedi/versions/functional_groups/003050.rb +38 -0
- data/lib/stupidedi/versions/functional_groups/003050/element_defs.rb +10780 -0
- data/lib/stupidedi/versions/functional_groups/003050/element_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/003050/element_types.rb +127 -0
- data/lib/stupidedi/versions/functional_groups/003050/element_types/date_val.rb +579 -0
- data/lib/stupidedi/versions/functional_groups/003050/element_types/fixnum_val.rb +324 -0
- data/lib/stupidedi/versions/functional_groups/003050/element_types/float_val.rb +357 -0
- data/lib/stupidedi/versions/functional_groups/003050/element_types/identifier_val.rb +371 -0
- data/lib/stupidedi/versions/functional_groups/003050/element_types/operators.rb +117 -0
- data/lib/stupidedi/versions/functional_groups/003050/element_types/string_val.rb +402 -0
- data/lib/stupidedi/versions/functional_groups/003050/element_types/time_val.rb +327 -0
- data/lib/stupidedi/versions/functional_groups/003050/functional_group_def.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs.rb +271 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/AK1.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/AK2.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/AK3.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/AK9.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/AMT.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/AT7.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/AT8.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/B1.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/B10.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/B2.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/B2A.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/BEG.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/BGN.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/BPS.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/BSN.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/CTT.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/CUR.rb +58 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/DTM.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/FOB.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/G61.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/G62.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/G69.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/GE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/GS.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/HL.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/IT1.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/ITD.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/K1.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/L11.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/L3.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/L5.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LE.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LFH.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LH1.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LH2.rb +36 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LH3.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LIN.rb +50 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LS.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/LX.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/M7.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/MAN.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/MEA.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/MS1.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/MS2.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/MS3.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/MSG.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/N1.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/N2.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/N3.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/N4.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/N7.rb +45 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/N9.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/NTE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/PER.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/PID.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/PLD.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/PO1.rb +59 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/PO4.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/PRR.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/QTY.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/REF.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/REP.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/RMT.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/S5.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/SE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/SN1.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/SSS.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/ST.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/TD1.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/TD3.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/TD5.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/TDS.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W01.rb +43 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W03.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W04.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W05.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W06.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W07.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W08.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W12.rb +50 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W14.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W17.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W20.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W27.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W66.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_defs/W76.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/003050/segment_reqs.rb +18 -0
- data/lib/stupidedi/versions/functional_groups/003050/syntax_notes.rb +174 -0
- data/lib/stupidedi/versions/functional_groups/003050/transaction_set_defs.rb +11 -0
- data/lib/stupidedi/versions/functional_groups/004010.rb +2 -2
- data/lib/stupidedi/versions/functional_groups/004010/element_defs.rb +9461 -13
- data/lib/stupidedi/versions/functional_groups/004010/element_types.rb +3 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_types/date_val.rb +132 -79
- data/lib/stupidedi/versions/functional_groups/004010/element_types/fixnum_val.rb +73 -84
- data/lib/stupidedi/versions/functional_groups/004010/element_types/float_val.rb +129 -72
- data/lib/stupidedi/versions/functional_groups/004010/element_types/identifier_val.rb +128 -43
- data/lib/stupidedi/versions/functional_groups/004010/element_types/operators.rb +117 -0
- data/lib/stupidedi/versions/functional_groups/004010/element_types/string_val.rb +116 -52
- data/lib/stupidedi/versions/functional_groups/004010/element_types/time_val.rb +48 -30
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs.rb +274 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AK1.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AK2.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AK3.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AK4.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AK5.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AK9.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AMT.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AT7.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/AT8.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/B1.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/B10.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/B2.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/B2A.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/BEG.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/BFR.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/BPR.rb +49 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/BSN.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/BSS.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/CAS.rb +56 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/CLP.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/CTT.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/CUR.rb +57 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/DTM.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/FST.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/G61.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/G62.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/G69.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/HL.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/JIT.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/K1.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/L11.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/L3.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/L5.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/LFH.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/LH1.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/LH2.rb +36 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/LH3.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/LIN.rb +53 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/LQ.rb +21 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/LX.rb +19 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/M7.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/MAN.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/MEA.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/MIA.rb +45 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/MOA.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/MS1.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/MS2.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/MS3.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/N1.rb +27 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/N2.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/N3.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/N4.rb +25 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/N7.rb +45 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/N9.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/NM1.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/NTE.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/PER.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/PID.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/PLB.rb +40 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/PLD.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/PO1.rb +59 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/PO4.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/QTY.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/REF.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/S5.rb +33 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/SDP.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/SHP.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/SN1.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/ST.rb +1 -1
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/SVC.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/TD1.rb +23 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/TD3.rb +26 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/TD5.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/TRN.rb +22 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/TS2.rb +40 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/TS3.rb +45 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/UIT.rb +20 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W01.rb +43 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W03.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W04.rb +39 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W05.rb +28 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W06.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W07.rb +35 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W08.rb +31 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W12.rb +50 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W14.rb +24 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W17.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W20.rb +32 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W27.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W66.rb +30 -0
- data/lib/stupidedi/versions/functional_groups/004010/segment_defs/W76.rb +29 -0
- data/lib/stupidedi/versions/functional_groups/004010/transaction_set_defs.rb +13 -0
- data/lib/stupidedi/versions/functional_groups/004010/transaction_set_defs/HP835.rb +78 -0
- data/lib/stupidedi/versions/functional_groups/005010/element_defs.rb +3 -3
- data/lib/stupidedi/versions/functional_groups/005010/element_types/date_val.rb +4 -3
- data/lib/stupidedi/versions/functional_groups/005010/element_types/fixnum_val.rb +4 -1
- data/lib/stupidedi/versions/functional_groups/005010/element_types/float_val.rb +4 -1
- data/lib/stupidedi/versions/functional_groups/005010/element_types/identifier_val.rb +10 -6
- data/lib/stupidedi/versions/functional_groups/005010/element_types/operators.rb +1 -1
- data/lib/stupidedi/versions/functional_groups/005010/element_types/string_val.rb +10 -6
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs.rb +6 -6
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/CUR.rb +2 -1
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/N1.rb +4 -1
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/N4.rb +0 -1
- data/lib/stupidedi/versions/functional_groups/005010/segment_defs/REF.rb +1 -0
- data/lib/stupidedi/versions/functional_groups/005010/syntax_notes.rb +1 -1
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs.rb +4 -4
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HI278.rb +42 -39
- data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/RA820.rb +201 -199
- data/lib/stupidedi/versions/interchanges.rb +3 -0
- data/lib/stupidedi/versions/interchanges/00200.rb +23 -0
- data/lib/stupidedi/versions/interchanges/00200/element_defs.rb +275 -0
- data/lib/stupidedi/versions/interchanges/00200/interchange_def.rb +68 -0
- data/lib/stupidedi/versions/interchanges/00200/segment_defs.rb +28 -0
- data/lib/stupidedi/versions/interchanges/00200/segment_defs/IEA.rb +20 -0
- data/lib/stupidedi/versions/interchanges/00200/segment_defs/ISA.rb +34 -0
- data/lib/stupidedi/versions/interchanges/00200/segment_defs/TA1.rb +23 -0
- data/lib/stupidedi/versions/interchanges/00300.rb +23 -0
- data/lib/stupidedi/versions/interchanges/00300/element_defs.rb +276 -0
- data/lib/stupidedi/versions/interchanges/00300/interchange_def.rb +68 -0
- data/lib/stupidedi/versions/interchanges/00300/segment_defs.rb +28 -0
- data/lib/stupidedi/versions/interchanges/00300/segment_defs/IEA.rb +20 -0
- data/lib/stupidedi/versions/interchanges/00300/segment_defs/ISA.rb +34 -0
- data/lib/stupidedi/versions/interchanges/00300/segment_defs/TA1.rb +23 -0
- data/lib/stupidedi/versions/interchanges/00400.rb +23 -0
- data/lib/stupidedi/versions/interchanges/00400/element_defs.rb +268 -0
- data/lib/stupidedi/versions/interchanges/00400/interchange_def.rb +68 -0
- data/lib/stupidedi/versions/interchanges/00400/segment_defs.rb +28 -0
- data/lib/stupidedi/versions/interchanges/00400/segment_defs/IEA.rb +20 -0
- data/lib/stupidedi/versions/interchanges/00400/segment_defs/ISA.rb +34 -0
- data/lib/stupidedi/versions/interchanges/00400/segment_defs/TA1.rb +23 -0
- data/lib/stupidedi/versions/interchanges/00401/element_defs.rb +53 -8
- data/lib/stupidedi/versions/interchanges/00401/interchange_def.rb +23 -0
- data/lib/stupidedi/versions/interchanges/00401/segment_defs/ISA.rb +2 -2
- data/lib/stupidedi/versions/interchanges/00501/element_defs.rb +3 -2
- data/lib/stupidedi/versions/interchanges/00501/interchange_def.rb +23 -0
- data/lib/stupidedi/writer/default.rb +4 -3
- data/spec/examples/integration/generating.example +89 -90
- data/spec/examples/integration/navigating.example +69 -69
- data/spec/examples/integration/parsing.example +250 -22
- data/spec/examples/ruby/array.example +76 -76
- data/spec/examples/ruby/object.example +3 -3
- data/spec/examples/ruby/symbol.example +6 -6
- data/spec/examples/ruby/to_d.example +1 -1
- data/spec/examples/ruby/try.example +6 -6
- data/spec/examples/stupidedi/reader.example +45 -45
- data/spec/examples/stupidedi/reader/failure.example +1 -1
- data/spec/examples/stupidedi/reader/input/delegated_input.example +3 -3
- data/spec/examples/stupidedi/reader/token_reader.example +35 -35
- data/spec/fixtures/FA997/1-good.txt +10 -0
- data/spec/fixtures/PC860/1-good.txt +21 -0
- data/spec/fixtures/PO830/1-good.txt +29 -0
- data/spec/fixtures/PO850/1-good-v3010.txt +31 -0
- data/spec/fixtures/PO850/1-good-v3050.txt +16 -0
- data/spec/fixtures/PS830/1-good.txt +29 -0
- data/spec/fixtures/RA820/1-good.txt +52 -0
- data/spec/fixtures/SH856/1-good.txt +70 -0
- data/spec/fixtures/SQ866/1-good.txt +29 -0
- data/spec/fixtures/SS862/1-good.txt +33 -0
- data/spec/fixtures/WA142/1-good.txt +307 -0
- data/spec/fixtures/X091A1-HP835/1-good.txt +1 -0
- data/spec/spec_helper.rb +11 -0
- data/spec/support/fixtures.rb +1 -1
- data/spec/support/matchers/either_matchers.rb +29 -2
- data/spec/support/matchers/navigation_matchers.rb +1 -1
- data/spec/support/quickcheck/characters.rb +5 -0
- data/spec/support/quickcheck/property.rb +1 -1
- data/spec/support/rcov.rb +3 -1
- metadata +674 -71
- data/lib/stupidedi/sets/absolute_set.rb +0 -297
- data/lib/stupidedi/sets/abstract_set.rb +0 -174
- data/lib/stupidedi/sets/null_set.rb +0 -125
- data/lib/stupidedi/sets/relative_complement.rb +0 -137
- data/lib/stupidedi/sets/relative_set.rb +0 -269
- data/lib/stupidedi/sets/universal_set.rb +0 -104
- data/spec/examples/stupidedi/sets/absolute_set.example +0 -1577
- data/spec/examples/stupidedi/sets/null_set.example +0 -2
- data/spec/examples/stupidedi/sets/relative_set.example +0 -2
- data/spec/examples/stupidedi/sets/universal_set.example +0 -1
data/bin/edi-pp
CHANGED
@@ -2,72 +2,47 @@
|
|
2
2
|
require File.expand_path("../../lib/stupidedi", __FILE__)
|
3
3
|
require "pp"
|
4
4
|
|
5
|
+
# Short-lived processes should win some peformance gains here
|
6
|
+
GC.disable
|
7
|
+
|
5
8
|
# This will be auto-enabled when $stdout.tty?, but -C forces color output
|
6
9
|
require "term/ansicolor" if ARGV.delete("-C")
|
7
10
|
|
8
|
-
config = Stupidedi::Config.
|
9
|
-
config
|
10
|
-
|
11
|
-
c.register("00501") { Stupidedi::Versions::Interchanges::FiveOhOne::InterchangeDef }
|
12
|
-
end
|
13
|
-
|
14
|
-
config.functional_group.tap do |c|
|
15
|
-
# The 4010 functional group definition doesn't actually have any segment defs,
|
16
|
-
# so the tokenizer makes assumptions (eg, that every element is simple), which
|
17
|
-
# results in tokens that don't match the transaction set definition. This is
|
18
|
-
# only because we linked some 4010 transaction sets to the 5010 definitions.
|
19
|
-
# It would never happen when the transaction set definition is built from the
|
20
|
-
# same set of segment definitions. There might be a good place to detect this
|
21
|
-
# mismatch, but it's not yet implemented.
|
22
|
-
#
|
23
|
-
# c.register("004010") { Stupidedi::Versions::FunctionalGroups::FortyTen::FunctionalGroupDef }
|
24
|
-
|
25
|
-
c.register("004010") { Stupidedi::Versions::FunctionalGroups::FiftyTen::FunctionalGroupDef }
|
26
|
-
c.register("005010") { Stupidedi::Versions::FunctionalGroups::FiftyTen::FunctionalGroupDef }
|
27
|
-
end
|
28
|
-
|
29
|
-
config.transaction_set.tap do |c|
|
30
|
-
c.register("005010", "HN", "277") { Stupidedi::Versions::FunctionalGroups::FiftyTen::TransactionSetDefs::HN277 }
|
31
|
-
c.register("005010", "HP", "835") { Stupidedi::Versions::FunctionalGroups::FiftyTen::TransactionSetDefs::HP835 }
|
32
|
-
c.register("005010", "HC", "837") { Stupidedi::Versions::FunctionalGroups::FiftyTen::TransactionSetDefs::HC837 }
|
33
|
-
c.register("005010", "FA", "999") { Stupidedi::Versions::FunctionalGroups::FiftyTen::TransactionSetDefs::FA999 }
|
34
|
-
|
35
|
-
c.register("005010X214", "HN", "277", Stupidedi::Guides::FiftyTen::X214::HN277)
|
36
|
-
c.register("005010X221", "HP", "835", Stupidedi::Guides::FiftyTen::X221::HP835)
|
37
|
-
c.register("005010X222", "HC", "837", Stupidedi::Guides::FiftyTen::X222::HC837P)
|
38
|
-
c.register("005010X231", "FA", "999", Stupidedi::Guides::FiftyTen::X231::FA999)
|
39
|
-
|
40
|
-
c.register("005010X221A1", "HP", "835", Stupidedi::Guides::FiftyTen::X221A1::HP835)
|
41
|
-
c.register("004010X098A1", "HC", "837", Stupidedi::Guides::FiftyTen::X222A1::HC837P)
|
42
|
-
c.register("005010X222A1", "HC", "837", Stupidedi::Guides::FiftyTen::X222A1::HC837P)
|
43
|
-
c.register("005010X231A1", "FA", "999", Stupidedi::Guides::FiftyTen::X231A1::FA999)
|
44
|
-
end
|
11
|
+
# config = Stupidedi::Config.default
|
12
|
+
# config = Stupidedi::Config.contrib
|
13
|
+
config = Stupidedi::Config.hipaa
|
45
14
|
|
46
15
|
parser = Stupidedi::Builder::StateMachine.build(config)
|
47
16
|
start = Time.now
|
17
|
+
nondet = ARGV.delete('-N')
|
48
18
|
|
49
19
|
ARGV.each do |path|
|
20
|
+
# Reading the entire input at once is slightly faster than streaming
|
21
|
+
# from a file handle.
|
22
|
+
# content = File.read(path, :encoding => "ISO-8859-1")
|
23
|
+
# parser, r = parser.read(Stupidedi::Reader.build(content))
|
24
|
+
|
50
25
|
File.open(path) do |io|
|
51
26
|
parser, result = parser.read(Stupidedi::Reader.build(io))
|
52
|
-
pp result
|
53
27
|
end
|
54
28
|
end
|
55
29
|
|
56
30
|
stop = Time.now
|
57
31
|
|
58
|
-
parser.zipper.map{|z| pp z.root.node }.
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
32
|
+
parser.zipper.map{|z| pp z.root.node }.explain do
|
33
|
+
# Multiple parse trees (non-deterministic state)
|
34
|
+
unless nondet
|
35
|
+
puts "Non-deterministic state"
|
36
|
+
else
|
37
|
+
puts "Non-deterministic states (#{parser.active.length}):"
|
38
|
+
puts "#{"-" * 70}\n\n"
|
39
|
+
|
40
|
+
parser.active.each do |state|
|
41
|
+
zipper = state.node.zipper
|
42
|
+
pp zipper.root.node
|
43
|
+
puts "\n#{"-" * 70}\n\n"
|
44
|
+
end
|
68
45
|
end
|
69
|
-
|
70
|
-
puts "#{count} segments"
|
71
46
|
end
|
72
47
|
|
73
48
|
begin
|
data/doc/Navigating.md
CHANGED
@@ -208,6 +208,7 @@ is not reachable will cause [`#find`][14] to raise an exception. To be clear,
|
|
208
208
|
#### Sibling Segments
|
209
209
|
|
210
210
|
<iframe src="images/837P-siblings.png" frameborder="no" scrolling="yes" height="430" width="100%"></iframe>
|
211
|
+
<a href="images/837P-siblings.png">View diagram</a>
|
211
212
|
|
212
213
|
Segments connected directly by a horizontal dashed black line are siblings and
|
213
214
|
are reachable using [`#find`][14]. For instance, from the third `NM1`, the `N3`,
|
@@ -249,6 +250,7 @@ there are no segments in Loop 2000A that follow the child loops.
|
|
249
250
|
#### Nephew Segments
|
250
251
|
|
251
252
|
<iframe src="images/837P-nephews.png" frameborder="no" scrolling="yes" height="450" width="100%"></iframe>
|
253
|
+
<a href="images/837P-nephews.png">View diagram</a>
|
252
254
|
|
253
255
|
Segments that occur as the _first_ direct child of a sibling node are nephews.
|
254
256
|
The siblings that _follow_ the first child are not directly reachable, but they
|
@@ -281,6 +283,7 @@ problems.
|
|
281
283
|
#### Cousin Segments
|
282
284
|
|
283
285
|
<iframe src="images/837P-cousins.png" frameborder="no" scrolling="yes" height="470" width="100%"></iframe>
|
286
|
+
<a href="images/837P-cousins.png">View diagram</a>
|
284
287
|
|
285
288
|
Segments that occurr as the _first_ child of a sibling of the parent node are
|
286
289
|
cousins of the current segment. Similar to the restriction on nephew segments,
|
@@ -305,6 +308,7 @@ See [Element Constraints](#Element_Constraints) for information on how to find a
|
|
305
308
|
#### Parent Segments
|
306
309
|
|
307
310
|
<iframe src="images/837P-parents.png" frameborder="no" scrolling="yes" height="450" width="100%"></iframe>
|
311
|
+
<a href="images/837P-parents.png">View diagram</a>
|
308
312
|
|
309
313
|
Internal knowledge of the underlying tree structure makes it possible to
|
310
314
|
*rewind* to the first segment of a parent structure, using the [`#parent`][15]
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/ruby/array.rb
CHANGED
@@ -159,6 +159,23 @@ class Array
|
|
159
159
|
return prefix, suffix
|
160
160
|
end
|
161
161
|
|
162
|
+
# Returns a list of sublists, where each sublist contains only equal
|
163
|
+
# elements. Equality is determined by a two-argument block parameter.
|
164
|
+
# The concatenation of the result is equal to the original argument.
|
165
|
+
#
|
166
|
+
# @example
|
167
|
+
# "abba".split(//).group_seq(&:==) #=> [["y"], ["a"], ["b", "b"], ["a"]]
|
168
|
+
#
|
169
|
+
# @return [[Array]]
|
170
|
+
def runs(&block)
|
171
|
+
unless empty?
|
172
|
+
as, bs = tail.split_until{|x| block.call(head, x) }
|
173
|
+
head.cons(as).cons(bs.runs(&block))
|
174
|
+
else
|
175
|
+
[]
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
162
179
|
# @endgroup
|
163
180
|
#############################################################################
|
164
181
|
end
|
data/lib/ruby/blank.rb
CHANGED
data/lib/ruby/enumerable.rb
CHANGED
@@ -16,7 +16,7 @@ module Enumerable
|
|
16
16
|
else
|
17
17
|
inject(0){|n, e| e == args.first ? n + 1 : n }
|
18
18
|
end
|
19
|
-
end
|
19
|
+
end unless method_defined?(:count)
|
20
20
|
|
21
21
|
# Accumulate elements using the `+` method, optionally
|
22
22
|
# transforming them first using a block
|
@@ -31,5 +31,5 @@ module Enumerable
|
|
31
31
|
else
|
32
32
|
tail.inject(head){|sum,e| sum + e }
|
33
33
|
end
|
34
|
-
end
|
34
|
+
end unless method_defined?(:sum)
|
35
35
|
end
|
data/lib/ruby/module.rb
CHANGED
@@ -47,33 +47,5 @@ class Module
|
|
47
47
|
# end
|
48
48
|
#
|
49
49
|
# @return [void]
|
50
|
-
def delegate(*params)
|
51
|
-
unless params.last.is_a?(Hash)
|
52
|
-
raise ArgumentError,
|
53
|
-
"last argument must be :to => ..."
|
54
|
-
end
|
55
|
-
|
56
|
-
methods = params.init
|
57
|
-
target = params.last.fetch(:to) or
|
58
|
-
raise ArgumentError,
|
59
|
-
":to => ... cannot be nil"
|
60
|
-
|
61
|
-
file, line, = Stupidedi.caller
|
62
50
|
|
63
|
-
for m in methods
|
64
|
-
if m.to_s =~ /=$/
|
65
|
-
class_eval(<<-RUBY, file, line.to_i - 1)
|
66
|
-
def #{m}(value)
|
67
|
-
#{target}.#{m}(value)
|
68
|
-
end
|
69
|
-
RUBY
|
70
|
-
else
|
71
|
-
class_eval(<<-RUBY, file, line.to_i - 1)
|
72
|
-
def #{m}(*args, &block)
|
73
|
-
#{target}.#{m}(*args, &block)
|
74
|
-
end
|
75
|
-
RUBY
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
79
51
|
end
|
data/lib/ruby/to_d.rb
CHANGED
@@ -6,7 +6,7 @@ class BigDecimal
|
|
6
6
|
# @return [BigDecimal] self
|
7
7
|
def to_d
|
8
8
|
self
|
9
|
-
end
|
9
|
+
end unless method_defined?(:to_d)
|
10
10
|
end
|
11
11
|
|
12
12
|
class String
|
@@ -31,7 +31,7 @@ class String
|
|
31
31
|
else
|
32
32
|
raise ArgumentError, "#{inspect} is not a valid number"
|
33
33
|
end
|
34
|
-
end
|
34
|
+
end unless method_defined?(:to_d)
|
35
35
|
end
|
36
36
|
|
37
37
|
class Integer
|
@@ -44,7 +44,7 @@ class Integer
|
|
44
44
|
# @return [BigDecimal]
|
45
45
|
def to_d
|
46
46
|
BigDecimal(to_s)
|
47
|
-
end
|
47
|
+
end unless method_defined?(:to_d)
|
48
48
|
end
|
49
49
|
|
50
50
|
class Rational
|
@@ -57,7 +57,7 @@ class Rational
|
|
57
57
|
# @return [BigDecimal]
|
58
58
|
def to_d
|
59
59
|
numerator.to_d / denominator.to_d
|
60
|
-
end
|
60
|
+
end unless method_defined?(:to_d)
|
61
61
|
end
|
62
62
|
|
63
63
|
class Float
|
@@ -77,5 +77,5 @@ class Float
|
|
77
77
|
# The programmer should convert the Float to a String using whatever
|
78
78
|
# precision he chooses, and call #to_d on the String.
|
79
79
|
raise TypeError, "cannot convert Float to BigDecimal"
|
80
|
-
end
|
80
|
+
end unless method_defined?(:to_d)
|
81
81
|
end
|
data/lib/ruby/try.rb
CHANGED
@@ -13,17 +13,18 @@ class Object
|
|
13
13
|
# "non-nil".try(:slice, 0, 3) #=> "non"
|
14
14
|
# nil.try(:slice, 0, 3) #=> nil
|
15
15
|
#
|
16
|
+
|
16
17
|
def try(*args, &block)
|
17
18
|
if args.empty?
|
18
19
|
yield self
|
19
20
|
else
|
20
21
|
__send__(*args, &block)
|
21
22
|
end
|
22
|
-
end
|
23
|
+
end unless method_defined?(:try)
|
24
|
+
|
23
25
|
end
|
24
26
|
|
25
27
|
class NilClass
|
26
|
-
|
27
28
|
# @group Combinators
|
28
29
|
#############################################################################
|
29
30
|
|
@@ -37,6 +38,7 @@ class NilClass
|
|
37
38
|
# nil.try(:slice, 0, 3) #=> nil
|
38
39
|
#
|
39
40
|
# @return nil
|
41
|
+
|
40
42
|
def try(*args)
|
41
43
|
self
|
42
44
|
end
|
data/lib/stupidedi.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require "bigdecimal"
|
2
2
|
require "time"
|
3
3
|
require "date"
|
4
|
+
require "set"
|
5
|
+
require "forwardable"
|
4
6
|
|
5
7
|
begin
|
6
8
|
require "term/ansicolor" if $stdout.tty?
|
@@ -30,6 +32,7 @@ require "ruby/instance_exec"
|
|
30
32
|
module Stupidedi
|
31
33
|
autoload :Builder, "stupidedi/builder"
|
32
34
|
autoload :Config, "stupidedi/config"
|
35
|
+
autoload :Contrib, "stupidedi/contrib"
|
33
36
|
autoload :Color, "stupidedi/color"
|
34
37
|
autoload :Versions, "stupidedi/versions"
|
35
38
|
autoload :Editor, "stupidedi/editor"
|
data/lib/stupidedi/builder.rb
CHANGED
@@ -9,6 +9,7 @@ module Stupidedi
|
|
9
9
|
autoload :Navigation, "stupidedi/builder/navigation"
|
10
10
|
autoload :Tokenization, "stupidedi/builder/tokenization"
|
11
11
|
autoload :StateMachine, "stupidedi/builder/state_machine"
|
12
|
+
autoload :IdentifierStack, "stupidedi/builder/identifier_stack"
|
12
13
|
|
13
14
|
autoload :AbstractState, "stupidedi/builder/states/abstract_state"
|
14
15
|
autoload :FailureState, "stupidedi/builder/states/failure_state"
|
@@ -14,8 +14,8 @@ module Stupidedi
|
|
14
14
|
# @return [Boolean]
|
15
15
|
attr_writer :strict
|
16
16
|
|
17
|
-
|
18
|
-
|
17
|
+
extend Forwardable
|
18
|
+
def_delegators :@machine, :pretty_print, :segment, :element, :zipper, :successors, :empty?, :first?, :last?, :deterministic?
|
19
19
|
|
20
20
|
def initialize(machine, strict = true)
|
21
21
|
@machine = machine
|
@@ -37,13 +37,39 @@ module Stupidedi
|
|
37
37
|
end
|
38
38
|
|
39
39
|
#
|
40
|
-
# Chooses the {Instruction} that pops the
|
40
|
+
# Chooses the {Instruction} that pops the greatest number of states. For
|
41
41
|
# example, in the X222 837P an HL segment signals the start of a new
|
42
42
|
# 2000 loop, but may or may not begin a new Table 2 -- the specifications
|
43
|
-
# aren't actually clear. This rule will
|
44
|
-
#
|
43
|
+
# aren't actually clear. This rule will always create a new Table 2 and
|
44
|
+
# a new 2000 loop under it.
|
45
45
|
#
|
46
|
-
class
|
46
|
+
class Shallowest < ConstraintTable
|
47
|
+
def initialize(instructions)
|
48
|
+
@instructions = instructions
|
49
|
+
end
|
50
|
+
|
51
|
+
# @return [Array<Instruction>]
|
52
|
+
def matches(segment_tok, strict)
|
53
|
+
@__matches ||= begin
|
54
|
+
shallowest = @instructions.head
|
55
|
+
|
56
|
+
@instructions.tail.each do |i|
|
57
|
+
if i.pop_count > shallowest.pop_count
|
58
|
+
shallowest = i
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
shallowest.cons
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
#
|
68
|
+
# The only exception to the rule of preferring the {Instruction} which pops
|
69
|
+
# the greatest number of states is when the {Instruction} is for ISA. We want
|
70
|
+
# to reuse one root {Values::TransmissionVal} container for all children.
|
71
|
+
#
|
72
|
+
class Deepest < ConstraintTable
|
47
73
|
def initialize(instructions)
|
48
74
|
@instructions = instructions
|
49
75
|
end
|
@@ -80,7 +106,7 @@ module Stupidedi
|
|
80
106
|
invalid = true # Were all possibly distinguishing elements invalid?
|
81
107
|
present = false # Were any possibly distinguishing elements present?
|
82
108
|
|
83
|
-
@__basis ||= basis(
|
109
|
+
@__basis ||= basis(shallowest(@instructions))
|
84
110
|
@__basis.head.each do |(n, m), map|
|
85
111
|
value = deconstruct(segment_tok.element_toks, n, m)
|
86
112
|
|
@@ -150,25 +176,25 @@ module Stupidedi
|
|
150
176
|
|
151
177
|
# Resolve conflicts between instructions that have identical SegmentUse
|
152
178
|
# values. For each SegmentUse, this chooses the Instruction that pops
|
153
|
-
# the
|
179
|
+
# the greatest number of states.
|
154
180
|
#
|
155
181
|
# @return [Array<Instruction>]
|
156
|
-
def
|
157
|
-
|
182
|
+
def shallowest(instructions)
|
183
|
+
shallowest = Hash.new
|
158
184
|
|
159
185
|
instructions.each do |i|
|
160
186
|
key = i.segment_use.object_id
|
161
187
|
|
162
|
-
if
|
163
|
-
if
|
164
|
-
|
188
|
+
if shallowest.defined_at?(key)
|
189
|
+
if shallowest.at(key).pop_count < i.pop_count
|
190
|
+
shallowest[key] = i
|
165
191
|
end
|
166
192
|
else
|
167
|
-
|
193
|
+
shallowest[key] = i
|
168
194
|
end
|
169
195
|
end
|
170
196
|
|
171
|
-
|
197
|
+
shallowest.values
|
172
198
|
end
|
173
199
|
|
174
200
|
# @return [Array(Array<(Integer, Integer, Map)>, Array<(Integer, Integer, Map)>)]
|
@@ -403,7 +429,9 @@ module Stupidedi
|
|
403
429
|
# all the instructions have the same SegmentUse, they also have
|
404
430
|
# the same element constraints so we can't use them to narrow
|
405
431
|
# down the instruction list.
|
406
|
-
|
432
|
+
instructions.head.segment_id == :ISA ?
|
433
|
+
ConstraintTable::Deepest.new(instructions) :
|
434
|
+
ConstraintTable::Shallowest.new(instructions)
|
407
435
|
else
|
408
436
|
ConstraintTable::ValueBased.new(instructions)
|
409
437
|
end
|
@@ -0,0 +1,167 @@
|
|
1
|
+
module Stupidedi
|
2
|
+
module Builder
|
3
|
+
|
4
|
+
class IdentifierStack
|
5
|
+
def initialize(id)
|
6
|
+
@state = Empty.new(id)
|
7
|
+
end
|
8
|
+
|
9
|
+
def id
|
10
|
+
@state.id
|
11
|
+
end
|
12
|
+
|
13
|
+
def isa
|
14
|
+
@state = @state.isa
|
15
|
+
@state.id
|
16
|
+
end
|
17
|
+
|
18
|
+
def gs
|
19
|
+
@state = @state.gs
|
20
|
+
@state.id
|
21
|
+
end
|
22
|
+
|
23
|
+
def st
|
24
|
+
@state = @state.st
|
25
|
+
@state.id
|
26
|
+
end
|
27
|
+
|
28
|
+
def hl
|
29
|
+
@state = @state.hl
|
30
|
+
@state.id
|
31
|
+
end
|
32
|
+
|
33
|
+
def pop
|
34
|
+
@state.id.tap { @state = @state.pop }
|
35
|
+
end
|
36
|
+
|
37
|
+
def method_missing(name, *args)
|
38
|
+
@state.__send__(name, *args)
|
39
|
+
end
|
40
|
+
|
41
|
+
# State Representations
|
42
|
+
#########################################################################
|
43
|
+
|
44
|
+
class Empty
|
45
|
+
def initialize(id)
|
46
|
+
@count, @next, @id = 0, id, id
|
47
|
+
end
|
48
|
+
|
49
|
+
def isa
|
50
|
+
ISA.new(self, @next).tap { @count += 1; @next += 1 }
|
51
|
+
end
|
52
|
+
|
53
|
+
# Number of Interchanges (ISA..IEA)
|
54
|
+
def count
|
55
|
+
@count
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
class ISA
|
60
|
+
attr_reader :id
|
61
|
+
|
62
|
+
def initialize(parent, id)
|
63
|
+
@count, @parent, @next, @id = 0, parent, id, id
|
64
|
+
end
|
65
|
+
|
66
|
+
def gs
|
67
|
+
GS.new(self, @next).tap { @count += 1; @next += 1 }
|
68
|
+
end
|
69
|
+
|
70
|
+
# Number of Functional Groups (GS..GE)
|
71
|
+
def count
|
72
|
+
@count
|
73
|
+
end
|
74
|
+
|
75
|
+
def pop
|
76
|
+
@parent
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
class GS
|
81
|
+
attr_reader :id
|
82
|
+
|
83
|
+
def initialize(parent, id)
|
84
|
+
@count, @parent, @next, @id = 0, parent, id, id
|
85
|
+
end
|
86
|
+
|
87
|
+
def st
|
88
|
+
ST.new(self, @next).tap { @count += 1; @next += 1 }
|
89
|
+
end
|
90
|
+
|
91
|
+
# GE01 Number of Transaction Sets (within current functional group)
|
92
|
+
#
|
93
|
+
# @return [Integer]
|
94
|
+
def count
|
95
|
+
@count
|
96
|
+
end
|
97
|
+
|
98
|
+
def pop
|
99
|
+
@parent
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
class ST
|
104
|
+
attr_writer :sequence
|
105
|
+
|
106
|
+
def initialize(parent, id)
|
107
|
+
@sequence, @parent, @id = 0, parent, id
|
108
|
+
end
|
109
|
+
|
110
|
+
def hl
|
111
|
+
HL.new(self, @sequence += 1)
|
112
|
+
end
|
113
|
+
|
114
|
+
def id
|
115
|
+
@id.to_s.rjust(4, "0")
|
116
|
+
end
|
117
|
+
|
118
|
+
# Number of segments (ST..SE)
|
119
|
+
def count(builder)
|
120
|
+
m = Either.success(builder.machine)
|
121
|
+
|
122
|
+
while m.defined?
|
123
|
+
if m.flatmap(&:segment).map{|s| s.node.id == :ST }.fetch(false)
|
124
|
+
return m.flatmap{|n| n.distance(builder.machine) }.fetch(0) + 2
|
125
|
+
else
|
126
|
+
m = m.flatmap(&:parent)
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
def pop
|
132
|
+
@parent
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
class HL
|
137
|
+
attr_writer :sequence
|
138
|
+
|
139
|
+
def initialize(parent, id)
|
140
|
+
@parent, @id, @sequence = parent, id, id
|
141
|
+
end
|
142
|
+
|
143
|
+
def hl
|
144
|
+
HL.new(self, @sequence += 1)
|
145
|
+
end
|
146
|
+
|
147
|
+
def id
|
148
|
+
@id.to_s
|
149
|
+
end
|
150
|
+
|
151
|
+
# Parent HL number
|
152
|
+
def parent
|
153
|
+
case @parent
|
154
|
+
when HL
|
155
|
+
@parent.id
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
def pop
|
160
|
+
@parent.sequence = @sequence
|
161
|
+
@parent
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
end
|
167
|
+
end
|