OpenAFP (empty) → 1.0
raw patch · 226 files changed
+7360/−0 lines, 226 filesdep +basedep +haskell98dep +mtlbuild-type:Customsetup-changed
Dependencies added: base, haskell98, mtl, regex-compat
Files
- LICENSE +20/−0
- OpenAFP.cabal +92/−0
- Setup.lhs +10/−0
- src/OpenAFP.hs +97/−0
- src/OpenAFP/Internals.hs +110/−0
- src/OpenAFP/Internals/Binary.hs +531/−0
- src/OpenAFP/Internals/Ebc2Asc.hs +76/−0
- src/OpenAFP/Internals/UConv.hs +67/−0
- src/OpenAFP/Prelude/Exts.hs +104/−0
- src/OpenAFP/Prelude/InstanceAFP.hs +736/−0
- src/OpenAFP/Prelude/InstancePTX.hs +211/−0
- src/OpenAFP/Prelude/InstanceT.hs +478/−0
- src/OpenAFP/Prelude/Instances.hs +386/−0
- src/OpenAFP/Prelude/Lookups.hs +216/−0
- src/OpenAFP/Prelude/Utils.hs +201/−0
- src/OpenAFP/Records.hs +329/−0
- src/OpenAFP/Records/AFP.hs +516/−0
- src/OpenAFP/Records/AFP/BAG.hs +12/−0
- src/OpenAFP/Records/AFP/BBC.hs +12/−0
- src/OpenAFP/Records/AFP/BCA.hs +12/−0
- src/OpenAFP/Records/AFP/BCF.hs +12/−0
- src/OpenAFP/Records/AFP/BCP.hs +12/−0
- src/OpenAFP/Records/AFP/BDA.hs +12/−0
- src/OpenAFP/Records/AFP/BDD.hs +12/−0
- src/OpenAFP/Records/AFP/BDG.hs +12/−0
- src/OpenAFP/Records/AFP/BDI.hs +12/−0
- src/OpenAFP/Records/AFP/BDM.hs +12/−0
- src/OpenAFP/Records/AFP/BDT.hs +12/−0
- src/OpenAFP/Records/AFP/BDX.hs +12/−0
- src/OpenAFP/Records/AFP/BFG.hs +12/−0
- src/OpenAFP/Records/AFP/BFM.hs +12/−0
- src/OpenAFP/Records/AFP/BFN.hs +12/−0
- src/OpenAFP/Records/AFP/BGR.hs +12/−0
- src/OpenAFP/Records/AFP/BII.hs +12/−0
- src/OpenAFP/Records/AFP/BIM.hs +12/−0
- src/OpenAFP/Records/AFP/BMM.hs +12/−0
- src/OpenAFP/Records/AFP/BMO.hs +12/−0
- src/OpenAFP/Records/AFP/BNG.hs +12/−0
- src/OpenAFP/Records/AFP/BOC.hs +12/−0
- src/OpenAFP/Records/AFP/BOG.hs +12/−0
- src/OpenAFP/Records/AFP/BPG.hs +12/−0
- src/OpenAFP/Records/AFP/BPM.hs +12/−0
- src/OpenAFP/Records/AFP/BPS.hs +12/−0
- src/OpenAFP/Records/AFP/BPT.hs +12/−0
- src/OpenAFP/Records/AFP/BR.hs +12/−0
- src/OpenAFP/Records/AFP/BRG.hs +12/−0
- src/OpenAFP/Records/AFP/BSG.hs +12/−0
- src/OpenAFP/Records/AFP/CAT.hs +12/−0
- src/OpenAFP/Records/AFP/CDD.hs +12/−0
- src/OpenAFP/Records/AFP/CFC.hs +13/−0
- src/OpenAFP/Records/AFP/CFI.hs +19/−0
- src/OpenAFP/Records/AFP/CPC.hs +17/−0
- src/OpenAFP/Records/AFP/CPD.hs +12/−0
- src/OpenAFP/Records/AFP/CPI.hs +18/−0
- src/OpenAFP/Records/AFP/CTC.hs +12/−0
- src/OpenAFP/Records/AFP/DXD.hs +12/−0
- src/OpenAFP/Records/AFP/EAG.hs +12/−0
- src/OpenAFP/Records/AFP/EBC.hs +12/−0
- src/OpenAFP/Records/AFP/ECA.hs +12/−0
- src/OpenAFP/Records/AFP/ECF.hs +12/−0
- src/OpenAFP/Records/AFP/ECP.hs +12/−0
- src/OpenAFP/Records/AFP/EDG.hs +12/−0
- src/OpenAFP/Records/AFP/EDI.hs +12/−0
- src/OpenAFP/Records/AFP/EDM.hs +12/−0
- src/OpenAFP/Records/AFP/EDT.hs +12/−0
- src/OpenAFP/Records/AFP/EDX.hs +12/−0
- src/OpenAFP/Records/AFP/EFG.hs +12/−0
- src/OpenAFP/Records/AFP/EFM.hs +12/−0
- src/OpenAFP/Records/AFP/EFN.hs +12/−0
- src/OpenAFP/Records/AFP/EGR.hs +12/−0
- src/OpenAFP/Records/AFP/EII.hs +12/−0
- src/OpenAFP/Records/AFP/EIM.hs +12/−0
- src/OpenAFP/Records/AFP/EMM.hs +12/−0
- src/OpenAFP/Records/AFP/EMO.hs +12/−0
- src/OpenAFP/Records/AFP/ENG.hs +12/−0
- src/OpenAFP/Records/AFP/EOC.hs +12/−0
- src/OpenAFP/Records/AFP/EOG.hs +12/−0
- src/OpenAFP/Records/AFP/EPG.hs +12/−0
- src/OpenAFP/Records/AFP/EPM.hs +12/−0
- src/OpenAFP/Records/AFP/EPS.hs +12/−0
- src/OpenAFP/Records/AFP/EPT.hs +12/−0
- src/OpenAFP/Records/AFP/ER.hs +12/−0
- src/OpenAFP/Records/AFP/ERG.hs +12/−0
- src/OpenAFP/Records/AFP/ESG.hs +12/−0
- src/OpenAFP/Records/AFP/FGD.hs +12/−0
- src/OpenAFP/Records/AFP/FNC.hs +30/−0
- src/OpenAFP/Records/AFP/FND.hs +12/−0
- src/OpenAFP/Records/AFP/FNG.hs +12/−0
- src/OpenAFP/Records/AFP/FNI.hs +26/−0
- src/OpenAFP/Records/AFP/FNM.hs +18/−0
- src/OpenAFP/Records/AFP/FNN.hs +12/−0
- src/OpenAFP/Records/AFP/FNO.hs +17/−0
- src/OpenAFP/Records/AFP/FNP.hs +12/−0
- src/OpenAFP/Records/AFP/GAD.hs +12/−0
- src/OpenAFP/Records/AFP/GDD.hs +12/−0
- src/OpenAFP/Records/AFP/ICP.hs +17/−0
- src/OpenAFP/Records/AFP/IDD.hs +12/−0
- src/OpenAFP/Records/AFP/IEL.hs +12/−0
- src/OpenAFP/Records/AFP/IID.hs +23/−0
- src/OpenAFP/Records/AFP/IMM.hs +12/−0
- src/OpenAFP/Records/AFP/IOB.hs +12/−0
- src/OpenAFP/Records/AFP/IOC.hs +21/−0
- src/OpenAFP/Records/AFP/IPD.hs +12/−0
- src/OpenAFP/Records/AFP/IPG.hs +12/−0
- src/OpenAFP/Records/AFP/IPO.hs +12/−0
- src/OpenAFP/Records/AFP/IPS.hs +12/−0
- src/OpenAFP/Records/AFP/IRD.hs +12/−0
- src/OpenAFP/Records/AFP/LLE.hs +12/−0
- src/OpenAFP/Records/AFP/LNC.hs +12/−0
- src/OpenAFP/Records/AFP/LND.hs +12/−0
- src/OpenAFP/Records/AFP/MBC.hs +12/−0
- src/OpenAFP/Records/AFP/MCA.hs +12/−0
- src/OpenAFP/Records/AFP/MCC.hs +12/−0
- src/OpenAFP/Records/AFP/MCD.hs +12/−0
- src/OpenAFP/Records/AFP/MCF.hs +14/−0
- src/OpenAFP/Records/AFP/MCF1.hs +25/−0
- src/OpenAFP/Records/AFP/MDD.hs +12/−0
- src/OpenAFP/Records/AFP/MDR.hs +12/−0
- src/OpenAFP/Records/AFP/MFC.hs +12/−0
- src/OpenAFP/Records/AFP/MGO.hs +12/−0
- src/OpenAFP/Records/AFP/MIO.hs +12/−0
- src/OpenAFP/Records/AFP/MMC.hs +12/−0
- src/OpenAFP/Records/AFP/MMO.hs +12/−0
- src/OpenAFP/Records/AFP/MMT.hs +12/−0
- src/OpenAFP/Records/AFP/MPG.hs +12/−0
- src/OpenAFP/Records/AFP/MPO.hs +12/−0
- src/OpenAFP/Records/AFP/MPS.hs +12/−0
- src/OpenAFP/Records/AFP/MSU.hs +12/−0
- src/OpenAFP/Records/AFP/NOP.hs +12/−0
- src/OpenAFP/Records/AFP/OBD.hs +12/−0
- src/OpenAFP/Records/AFP/OBP.hs +12/−0
- src/OpenAFP/Records/AFP/OCD.hs +12/−0
- src/OpenAFP/Records/AFP/PFC.hs +12/−0
- src/OpenAFP/Records/AFP/PGD.hs +20/−0
- src/OpenAFP/Records/AFP/PGP.hs +12/−0
- src/OpenAFP/Records/AFP/PGP1.hs +12/−0
- src/OpenAFP/Records/AFP/PMC.hs +12/−0
- src/OpenAFP/Records/AFP/PTD.hs +12/−0
- src/OpenAFP/Records/AFP/PTD1.hs +12/−0
- src/OpenAFP/Records/AFP/PTX.hs +15/−0
- src/OpenAFP/Records/AFP/TLE.hs +19/−0
- src/OpenAFP/Records/MCF.hs +9/−0
- src/OpenAFP/Records/MCF/T.hs +9/−0
- src/OpenAFP/Records/PTX.hs +81/−0
- src/OpenAFP/Records/PTX/AMB.hs +10/−0
- src/OpenAFP/Records/PTX/AMI.hs +10/−0
- src/OpenAFP/Records/PTX/BLN.hs +10/−0
- src/OpenAFP/Records/PTX/BSU.hs +10/−0
- src/OpenAFP/Records/PTX/DBR.hs +10/−0
- src/OpenAFP/Records/PTX/DIR.hs +10/−0
- src/OpenAFP/Records/PTX/ESU.hs +10/−0
- src/OpenAFP/Records/PTX/NOP.hs +10/−0
- src/OpenAFP/Records/PTX/RMB.hs +10/−0
- src/OpenAFP/Records/PTX/RMI.hs +10/−0
- src/OpenAFP/Records/PTX/RPS.hs +10/−0
- src/OpenAFP/Records/PTX/SBI.hs +10/−0
- src/OpenAFP/Records/PTX/SCFL.hs +10/−0
- src/OpenAFP/Records/PTX/SIA.hs +10/−0
- src/OpenAFP/Records/PTX/SIM.hs +10/−0
- src/OpenAFP/Records/PTX/STC.hs +10/−0
- src/OpenAFP/Records/PTX/STO.hs +11/−0
- src/OpenAFP/Records/PTX/SVI.hs +10/−0
- src/OpenAFP/Records/PTX/TRN.hs +10/−0
- src/OpenAFP/Records/T.hs +233/−0
- src/OpenAFP/Records/T/AD.hs +10/−0
- src/OpenAFP/Records/T/AQ.hs +10/−0
- src/OpenAFP/Records/T/AV.hs +10/−0
- src/OpenAFP/Records/T/C.hs +10/−0
- src/OpenAFP/Records/T/CF.hs +10/−0
- src/OpenAFP/Records/T/CGCSGI.hs +10/−0
- src/OpenAFP/Records/T/CR.hs +10/−0
- src/OpenAFP/Records/T/CS.hs +10/−0
- src/OpenAFP/Records/T/DP.hs +10/−0
- src/OpenAFP/Records/T/EF.hs +10/−0
- src/OpenAFP/Records/T/ERLI.hs +10/−0
- src/OpenAFP/Records/T/ESI.hs +10/−0
- src/OpenAFP/Records/T/FCGCSGI.hs +10/−0
- src/OpenAFP/Records/T/FDS.hs +10/−0
- src/OpenAFP/Records/T/FF.hs +10/−0
- src/OpenAFP/Records/T/FHSF.hs +10/−0
- src/OpenAFP/Records/T/FO.hs +10/−0
- src/OpenAFP/Records/T/FQN.hs +12/−0
- src/OpenAFP/Records/T/FRMT.hs +10/−0
- src/OpenAFP/Records/T/II.hs +10/−0
- src/OpenAFP/Records/T/LDOPM.hs +10/−0
- src/OpenAFP/Records/T/LDTS.hs +10/−0
- src/OpenAFP/Records/T/MA.hs +10/−0
- src/OpenAFP/Records/T/MEC.hs +10/−0
- src/OpenAFP/Records/T/MF.hs +10/−0
- src/OpenAFP/Records/T/MIS.hs +10/−0
- src/OpenAFP/Records/T/MMPN.hs +10/−0
- src/OpenAFP/Records/T/MO.hs +10/−0
- src/OpenAFP/Records/T/MOR.hs +10/−0
- src/OpenAFP/Records/T/OAMU.hs +10/−0
- src/OpenAFP/Records/T/OAS.hs +10/−0
- src/OpenAFP/Records/T/OBE.hs +10/−0
- src/OpenAFP/Records/T/OBO.hs +10/−0
- src/OpenAFP/Records/T/OCH.hs +10/−0
- src/OpenAFP/Records/T/OCL.hs +10/−0
- src/OpenAFP/Records/T/OCO.hs +10/−0
- src/OpenAFP/Records/T/OFSS.hs +10/−0
- src/OpenAFP/Records/T/OO.hs +10/−0
- src/OpenAFP/Records/T/OOI.hs +10/−0
- src/OpenAFP/Records/T/OSFE.hs +10/−0
- src/OpenAFP/Records/T/OSFO.hs +10/−0
- src/OpenAFP/Records/T/PC.hs +10/−0
- src/OpenAFP/Records/T/POCP.hs +10/−0
- src/OpenAFP/Records/T/PPI.hs +10/−0
- src/OpenAFP/Records/T/PSMR.hs +10/−0
- src/OpenAFP/Records/T/PSRM.hs +10/−0
- src/OpenAFP/Records/T/PV.hs +10/−0
- src/OpenAFP/Records/T/RLI.hs +11/−0
- src/OpenAFP/Records/T/ROI.hs +10/−0
- src/OpenAFP/Records/T/ROT.hs +10/−0
- src/OpenAFP/Records/T/RSN.hs +10/−0
- src/OpenAFP/Records/T/RUA.hs +10/−0
- src/OpenAFP/Records/T/T1CRMT.hs +10/−0
- src/OpenAFP/Records/T/T2FRMT.hs +10/−0
- src/OpenAFP/Records/T/TO.hs +10/−0
- src/OpenAFP/Records/T/TS.hs +10/−0
- src/OpenAFP/Records/T/UDTS.hs +10/−0
- src/OpenAFP/Types.hs +64/−0
- src/OpenAFP/Types/Buffer.hs +71/−0
- src/OpenAFP/Types/Chunk.hs +233/−0
- src/OpenAFP/Types/Record.hs +69/−0
- src/OpenAFP/Types/View.hs +39/−0
+ LICENSE view
@@ -0,0 +1,20 @@+The "MIT" License++Permission is hereby granted, free of charge, to any person obtaining+a copy of this software and associated documentation files (the+"Software"), to deal in the Software without restriction, including+without limitation the rights to use, copy, modify, merge, publish,+distribute, sublicense, and/or sell copies of the Software, and to+permit persons to whom the Software is furnished to do so, subject to+the following conditions:++The above copyright notice and this permission notice shall be+included in all copies or substantial portions of the Software.++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ OpenAFP.cabal view
@@ -0,0 +1,92 @@+name: OpenAFP+version: 1.0+license: BSD3+License-file: LICENSE+author: Audrey Tang+maintainer: audreyt@audreyt.org+synopsis: IBM AFP document format parser and generator+description: IBM AFP document format parser and generator+exposed-modules: OpenAFP.Internals.Binary OpenAFP.Internals.Ebc2Asc+ OpenAFP.Internals.UConv+ OpenAFP.Prelude.Utils OpenAFP.Prelude.Instances OpenAFP.Prelude.InstanceT+ OpenAFP.Prelude.Lookups+ OpenAFP.Prelude.InstanceAFP OpenAFP.Prelude.InstancePTX OpenAFP.Prelude.Exts+ OpenAFP.Records.T.LDOPM OpenAFP.Records.T.OSFO OpenAFP.Records.T.FRMT+ OpenAFP.Records.T.OCH OpenAFP.Records.T.MO OpenAFP.Records.T.T2FRMT+ OpenAFP.Records.T.FDS OpenAFP.Records.T.OCL OpenAFP.Records.T.OO+ OpenAFP.Records.T.CGCSGI OpenAFP.Records.T.PSRM OpenAFP.Records.T.TO+ OpenAFP.Records.T.AD OpenAFP.Records.T.RLI OpenAFP.Records.T.TS+ OpenAFP.Records.T.RUA OpenAFP.Records.T.CF OpenAFP.Records.T.PPI+ OpenAFP.Records.T.ROI OpenAFP.Records.T.EF OpenAFP.Records.T.ERLI+ OpenAFP.Records.T.FF OpenAFP.Records.T.MOR OpenAFP.Records.T.FCGCSGI+ OpenAFP.Records.T.POCP OpenAFP.Records.T.MF OpenAFP.Records.T.DP+ OpenAFP.Records.T.MEC OpenAFP.Records.T.CR OpenAFP.Records.T.OBE+ OpenAFP.Records.T.T1CRMT OpenAFP.Records.T.LDTS OpenAFP.Records.T.AV+ OpenAFP.Records.T.MMPN OpenAFP.Records.T.OFSS OpenAFP.Records.T.OBO+ OpenAFP.Records.T.UDTS OpenAFP.Records.T.ESI OpenAFP.Records.T.OCO+ OpenAFP.Records.T.PSMR OpenAFP.Records.T.OAS OpenAFP.Records.T.C+ OpenAFP.Records.T.FQN OpenAFP.Records.T.PV OpenAFP.Records.T.FHSF+ OpenAFP.Records.T.OOI OpenAFP.Records.T.MIS OpenAFP.Records.T.OSFE+ OpenAFP.Records.T.MA OpenAFP.Records.T.OAMU OpenAFP.Records.T.II+ OpenAFP.Records.T.AQ OpenAFP.Records.T.PC OpenAFP.Records.T.RSN+ OpenAFP.Records.T.FO OpenAFP.Records.T.ROT OpenAFP.Records.T.CS+ OpenAFP.Records.MCF.T OpenAFP.Records.AFP.ECP OpenAFP.Records.AFP.BIM+ OpenAFP.Records.AFP.PFC OpenAFP.Records.AFP.PTD1 OpenAFP.Records.AFP.IEL+ OpenAFP.Records.AFP.BMM OpenAFP.Records.AFP.ICP OpenAFP.Records.AFP.PTX+ OpenAFP.Records.AFP.EDT OpenAFP.Records.AFP.FNI OpenAFP.Records.AFP.IPD+ OpenAFP.Records.AFP.LNC OpenAFP.Records.AFP.BPM OpenAFP.Records.AFP.IRD+ OpenAFP.Records.AFP.PMC OpenAFP.Records.AFP.EDX OpenAFP.Records.AFP.FNM+ OpenAFP.Records.AFP.MCF1 OpenAFP.Records.AFP.EPT OpenAFP.Records.AFP.EBC+ OpenAFP.Records.AFP.BDD OpenAFP.Records.AFP.EAG OpenAFP.Records.AFP.MMT+ OpenAFP.Records.AFP.EDG OpenAFP.Records.AFP.FGD OpenAFP.Records.AFP.EFG+ OpenAFP.Records.AFP.CFI OpenAFP.Records.AFP.MBC OpenAFP.Records.AFP.MCC+ OpenAFP.Records.AFP.BCP OpenAFP.Records.AFP.MFC OpenAFP.Records.AFP.EOC+ OpenAFP.Records.AFP.FND OpenAFP.Records.AFP.ENG OpenAFP.Records.AFP.BDT+ OpenAFP.Records.AFP.EOG OpenAFP.Records.AFP.IOC OpenAFP.Records.AFP.EPG+ OpenAFP.Records.AFP.CPI OpenAFP.Records.AFP.MMC OpenAFP.Records.AFP.BDX+ OpenAFP.Records.AFP.ERG OpenAFP.Records.AFP.ESG OpenAFP.Records.AFP.IPG+ OpenAFP.Records.AFP.EMO OpenAFP.Records.AFP.MGO OpenAFP.Records.AFP.FNP+ OpenAFP.Records.AFP.MPG OpenAFP.Records.AFP.MIO OpenAFP.Records.AFP.BPT+ OpenAFP.Records.AFP.BBC OpenAFP.Records.AFP.EPS OpenAFP.Records.AFP.IPO+ OpenAFP.Records.AFP.MMO OpenAFP.Records.AFP.BAG OpenAFP.Records.AFP.CDD+ OpenAFP.Records.AFP.GAD OpenAFP.Records.AFP.IPS OpenAFP.Records.AFP.MPO+ OpenAFP.Records.AFP.BDG OpenAFP.Records.AFP.NOP OpenAFP.Records.AFP.ECF+ OpenAFP.Records.AFP.BFG OpenAFP.Records.AFP.GDD OpenAFP.Records.AFP.MPS+ OpenAFP.Records.AFP.BOC OpenAFP.Records.AFP.OBD OpenAFP.Records.AFP.MCF+ OpenAFP.Records.AFP.OCD OpenAFP.Records.AFP.CPD OpenAFP.Records.AFP.BNG+ OpenAFP.Records.AFP.FNC OpenAFP.Records.AFP.BOG OpenAFP.Records.AFP.CAT+ OpenAFP.Records.AFP.EFN OpenAFP.Records.AFP.BPG OpenAFP.Records.AFP.IOB+ OpenAFP.Records.AFP.BRG OpenAFP.Records.AFP.FNG OpenAFP.Records.AFP.BSG+ OpenAFP.Records.AFP.LLE OpenAFP.Records.AFP.EGR OpenAFP.Records.AFP.BMO+ OpenAFP.Records.AFP.OBP OpenAFP.Records.AFP.FNO OpenAFP.Records.AFP.MDR+ OpenAFP.Records.AFP.BPS OpenAFP.Records.AFP.TLE OpenAFP.Records.AFP.ECA+ OpenAFP.Records.AFP.BCF OpenAFP.Records.AFP.CFC OpenAFP.Records.AFP.MCA+ OpenAFP.Records.AFP.EDI OpenAFP.Records.AFP.BR OpenAFP.Records.AFP.EDM+ OpenAFP.Records.AFP.CPC OpenAFP.Records.AFP.BFN OpenAFP.Records.AFP.EII+ OpenAFP.Records.AFP.ER OpenAFP.Records.AFP.EFM OpenAFP.Records.AFP.PGP1+ OpenAFP.Records.AFP.CTC OpenAFP.Records.AFP.EIM OpenAFP.Records.AFP.BGR+ OpenAFP.Records.AFP.PGD OpenAFP.Records.AFP.LND OpenAFP.Records.AFP.EMM+ OpenAFP.Records.AFP.DXD OpenAFP.Records.AFP.EPM OpenAFP.Records.AFP.FNN+ OpenAFP.Records.AFP.IMM OpenAFP.Records.AFP.BCA OpenAFP.Records.AFP.BDA+ OpenAFP.Records.AFP.PGP OpenAFP.Records.AFP.PTD OpenAFP.Records.AFP.BDI+ OpenAFP.Records.AFP.IDD OpenAFP.Records.AFP.BDM OpenAFP.Records.AFP.BII+ OpenAFP.Records.AFP.MCD OpenAFP.Records.AFP.BFM OpenAFP.Records.AFP.MDD+ OpenAFP.Records.AFP.MSU OpenAFP.Records.AFP.IID OpenAFP.Records.PTX.AMI+ OpenAFP.Records.PTX.DBR OpenAFP.Records.PTX.BLN OpenAFP.Records.PTX.SIA+ OpenAFP.Records.PTX.SBI OpenAFP.Records.PTX.DIR OpenAFP.Records.PTX.RMB+ OpenAFP.Records.PTX.SCFL OpenAFP.Records.PTX.RMI OpenAFP.Records.PTX.SIM+ OpenAFP.Records.PTX.STC OpenAFP.Records.PTX.BSU OpenAFP.Records.PTX.NOP+ OpenAFP.Records.PTX.ESU OpenAFP.Records.PTX.AMB OpenAFP.Records.PTX.SVI+ OpenAFP.Records.PTX.TRN OpenAFP.Records.PTX.RPS OpenAFP.Records.PTX.STO+ OpenAFP.Records.AFP OpenAFP.Records.PTX OpenAFP.Records.T OpenAFP.Records.MCF+ OpenAFP.Types.Chunk OpenAFP.Types.Buffer OpenAFP.Types.View+ OpenAFP.Types.Record OpenAFP.Internals OpenAFP.Records OpenAFP.Types OpenAFP +category: Data+includes: unicode/ucnv.h+extensions: CPP, ForeignFunctionInterface+build-depends: base, mtl, haskell98, regex-compat+include-dirs: /usr/include /usr/local/include /opt/local/include+extra-lib-dirs: /usr/lib /usr/local/lib /opt/local/lib+ld-options: -licuuc+ghc-options: -fglasgow-exts -funbox-strict-fields -fno-warn-missing-signatures+hs-source-dirs: src
+ Setup.lhs view
@@ -0,0 +1,10 @@+#!/usr/bin/env runghc+\begin{code}++module Main where+import Distribution.Simple++main :: IO ()+main = defaultMain++\end{code}
+ src/OpenAFP.hs view
@@ -0,0 +1,97 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++-----------------------------------------------------------------------------+-- |+-- Module : OpenAFP+-- Copyright : (c) Audrey Tang 2004, 2006+-- License : BSD-style+-- +-- Maintainer : audreyt@audreyt.org+-- Stability : experimental+-- Portability : non-portable (GHC-only)+--+-- This module re-exports all Records, Types, Internals and Prelude modules,+-- and provides some toplevel convenience functions.+--+-----------------------------------------------------------------------------++module OpenAFP (+ module OpenAFP.Types,+ module OpenAFP.Records,+ module OpenAFP.Internals,+ module OpenAFP.Prelude.Exts,+ module OpenAFP.Prelude.Utils,+ module OpenAFP.Prelude.Lookups,+ module OpenAFP.Prelude.Instances,+ module OpenAFP.Internals.UConv,++ readAFP, writeAFP, filterAFP,+ readArgs, afp_Chunks,+) where+import OpenAFP.Types+import OpenAFP.Records+import OpenAFP.Internals+import OpenAFP.Internals.UConv+import OpenAFP.Prelude.Utils+import OpenAFP.Prelude.Lookups+import OpenAFP.Prelude.Instances+import OpenAFP.Prelude.Exts++afp_Chunks :: FilePath -> [AFP_]+afp_Chunks filename = unsafePerformIO $ readAFP filename++writeAFP :: (Binary a) => FilePath -> [a] -> IO ()+writeAFP filename c = do+ fh <- openBinaryFile filename WriteMode+ bh <- openBinIO_ fh+ put bh $ c+ hClose fh+ return ()++filterAFP :: FilePath -> FilePath -> [(ChunkType, AFP_ -> IO [AFP_])] -> IO ()+filterAFP input output filters = do+ ifh <- openBinaryFile input ReadMode+ ibh <- openBinIO_ ifh+ ofh <- openBinaryFile output WriteMode+ obh <- openBinIO_ ofh+ filterAFPChunks ibh obh filters `catchError` \e -> return ()+ hClose ifh+ hClose ofh+ return ()++filterAFPChunks ibh obh filters = do+ eof <- isEOFBin ibh+ if eof then return () else do+ c <- get ibh :: IO AFP_+ filterChunk c filters obh+ filterAFPChunks ibh obh filters++filterChunk c possibleFilters bh+ | null filters = put bh c+ | otherwise = mapM_ (\(_, f) -> do+ c' <- f c+ put bh c') filters+ where+ filters = filter (\(t, _) -> (t == chunkType c)) possibleFilters++instance RecChunk FilePath AFP_ N3 Buffer2 where+ readChunks = afp_Chunks++instance Rec Char++readAFP :: (MonadIO m) => FilePath -> m [AFP_]+readAFP filename = liftIO $ do+ fh <- openBinaryFile filename ReadMode+ bh <- openBinIO_ fh+ cs <- get bh+ return cs++readArgs :: (MonadIO m) => Int -> m [String]+readArgs n = liftIO $ do+ args <- getArgs+ when ((length args) < n) $ do+ pgm <- getProgName+ putStrLn $ "Usage: " ++ pgm ++ " input.afp output.afp"+ exitFailure+ return args+
+ src/OpenAFP/Internals.hs view
@@ -0,0 +1,110 @@+{-# OPTIONS -fglasgow-exts #-}++-----------------------------------------------------------------------------+-- |+-- Module : OpenAFP.Internals+-- Copyright : (c) Audrey Tang 2004, 2006+-- License : BSD-style+-- +-- Maintainer : audreyt@audreyt.org+-- Stability : experimental+-- Portability : non-portable (GHC-only)+--+-- This module imports and re-exports external modules used by OpenAFP,+-- as well as OpenAFP's own internal modules.+--+-----------------------------------------------------------------------------++module OpenAFP.Internals (+ module OpenAFP.Internals.Binary,+ module OpenAFP.Internals.Ebc2Asc,++ module Control.Exception,+ module Control.Monad.RWS,+ module Control.Monad.Error,+ module Data.Array.Unboxed,+ module Data.Bits,+ module Data.Char,+ module Data.List,+ module Data.HashTable,+ module Data.Word,+ module Data.Typeable,+ module Data.IORef,+ module Data.Maybe,+ module Debug.Trace,+ module Foreign.C.String,+ module Foreign.C.Types,+ module Foreign.Marshal.Alloc,+ module Foreign.Marshal.Array,+ module Foreign.Marshal.Utils,+ module Foreign.Ptr,+ module Foreign.ForeignPtr,+ module Foreign.Storable,+ module System.Mem.Weak,+ module System.Console.GetOpt,+ module System.IO,+ module System.Cmd,+ module System.Environment,+ module System.Exit,+ module System.IO.Unsafe,+ module System.IO.Error,+ module System.Directory,+ module Text.Regex,+ module GHC.IOBase,++ IOm, StateIO,++ hashNew, hashLookup, hashInsert, hashDelete,+ stateGet, statePut+) where+import OpenAFP.Internals.Binary+import OpenAFP.Internals.Ebc2Asc++import Control.Exception hiding (try, catch, ioError)+import Control.Monad.Error (throwError, catchError, MonadError(..), Error(..))+import Control.Monad.RWS hiding (get, put)+import qualified Control.Monad.RWS (get, put)+import Data.Array.Unboxed+import Data.Bits+import Data.Char+import Data.List+import Data.HashTable hiding (lookup, insert, delete, new)+import qualified Data.HashTable (lookup, insert, delete, new)+import Data.Word+import Data.Typeable+import Data.IORef+import Data.Maybe+import Debug.Trace+import Foreign.C.String+import Foreign.C.Types+import Foreign.Marshal.Alloc+import Foreign.Marshal.Array+import Foreign.Marshal.Utils+import Foreign.Ptr+import Foreign.ForeignPtr+import Foreign.Storable+import Numeric+import System.Cmd+import System.Console.GetOpt+import System.IO+import System.Environment+import System.Exit+import System.Mem.Weak+import System.IO.Unsafe+import System.IO.Error+import System.Directory+import Text.Regex+import GHC.IOBase (IOArray, newIOArray, readIOArray, writeIOArray)++hashNew = Data.HashTable.new+hashLookup = Data.HashTable.lookup+hashInsert = Data.HashTable.insert+hashDelete = Data.HashTable.delete++stateGet :: (Control.Monad.RWS.MonadState s m) => m s+stateGet = Control.Monad.RWS.get+statePut :: (Control.Monad.RWS.MonadState s m) => s -> m ()+statePut = Control.Monad.RWS.put++type IOm a = (MonadPlus m, MonadIO m, MonadError e m, Show e, Typeable e) => m a+type StateIO v a = (MonadPlus m, MonadIO m, MonadReader v m, MonadError e m, Show e, Typeable e) => m a
+ src/OpenAFP/Internals/Binary.hs view
@@ -0,0 +1,531 @@+{-# OPTIONS -fglasgow-exts -O -funbox-strict-fields #-}++-----------------------------------------------------------------------------+-- |+-- Module : OpenAFP.Internals.Binary+-- Copyright : (c) Audrey Tang 2004, 2006+-- License : BSD-style+-- +-- Maintainer : audreyt@audreyt.org+-- Stability : experimental+-- Portability : non-portable (GHC-only)+--+-- Binary IO library for buffers and file handles.+--+-- Based on Binary.hs from GHC source tree, (c) The University of Glasgow 2002.+--+-- Based on the nhc98 Binary library, which is copyright+-- (c) Malcolm Wallace and Colin Runciman, University of York, 1998.+-- Under the terms of the license for that software, we must tell you+-- where you can obtain the original version of the Binary library, namely+-- <http://www.cs.york.ac.uk/fp/nhc98/>+--+-----------------------------------------------------------------------------++module OpenAFP.Internals.Binary (+ {-class-} Binary(..),+ {-type-} BinHandle,++ openBinIO, openBinIO_,+ openBinBuf, newBinBuf,++ seekBin, tellBin, closeBin, isEOFBin, sizeBin,++ putByte, getByte,++ getBuf, putBuf, bufOf,++ N0(..),++ N1(..), N2(..), N3(..), N4(..),+ I1(..), I2(..), I4(..), I8(..),+ A1(..), A2(..), A3(..), A4(..), A6(..), A8(..), A12(..),+ PStringLen,+ ) where++import Data.Array.Unboxed+import Data.Bits+import Data.Int+import Data.Word+import Data.Typeable+import Control.Monad ( when )+import System.IO as IO+import System.IO.Error ( mkIOError, eofErrorType )+import GHC.Exts+import GHC.Word ( Word8(..) )+import Foreign.Storable+import Data.Char+import Foreign.Ptr+import Numeric (showHex)++import System.Mem.Weak+import Foreign.C.Types+import Foreign.Marshal.Utils+import Foreign.ForeignPtr++import GHC.Base+import GHC.IOBase++---------------------------------------------------------------+-- BinHandle+---------------------------------------------------------------++data BinHandle =+ BinIO { -- binary data stored in a file+ off_r :: !IntM, -- the current offset (cached)+ hdl :: !IO.Handle -- the file handle (must be seekable)+ }+ |+ BinBuf { -- PStringLen based buffers+ off_r :: !IntM, -- the current offset (cached)+ buf :: !PStringLen -- the memory buffer+ }+ deriving (Show, Typeable)++type PStringLen = (ForeignPtr CChar, Int)++---------------------------------------------------------------+-- Accessors+---------------------------------------------------------------++bufOf :: BinHandle -> PStringLen+bufOf (BinIO _ _) = error "bufOf not defined"+bufOf (BinBuf _ buf) = buf++instance Show IntM where+ show i = (show $ unsafePerformIO $ readIntM i)++---------------------------------------------------------------+-- class Binary+---------------------------------------------------------------++class Binary a where+ put :: BinHandle -> a -> IO ()+ get :: BinHandle -> IO a++openBinIO_ :: IO.Handle -> IO BinHandle+openBinIO_ h = openBinIO h ++openBinIO :: IO.Handle -> IO BinHandle+openBinIO h = do+ r <- newIntM+ writeIntM r 0+ return (BinIO r h)++openBinBuf :: PStringLen -> IO BinHandle+openBinBuf pstrlen = do+ ix_r <- newIntM+ writeIntM ix_r 0+ return $ BinBuf ix_r pstrlen++newBinBuf :: Int -> IO BinHandle+newBinBuf size+ | size <= 0 = error "newBinBuf: size must be >= 0"+ | otherwise = do+ pstr <- mallocForeignPtrBytes size+ openBinBuf (pstr, size)++tellBin :: BinHandle -> IO Int+tellBin (BinIO r _) = readIntM r+tellBin (BinBuf r _) = readIntM r++seekBin :: BinHandle -> Int -> IO ()+seekBin (BinIO ix_r h) p = do + writeIntM ix_r p+ hSeek h AbsoluteSeek (fromIntegral p)+seekBin (BinBuf ix_r _) p = do+ writeIntM ix_r p++closeBin :: BinHandle -> IO ()+closeBin (BinIO _ h) = hClose h+closeBin (BinBuf _ _) = return ()++isEOFBin :: BinHandle -> IO Bool+isEOFBin (BinIO _ h) = hIsEOF h+isEOFBin (BinBuf ix_r (_, len)) = do+ ix <- readIntM ix_r+ return (ix >= len)++sizeBin :: BinHandle -> IO Int+sizeBin (BinIO _ h) = do+ size <- hFileSize h+ return $ fromEnum size+sizeBin (BinBuf _ (_, len)) = return len++-- -----------------------------------------------------------------------------+-- Low-level reading/writing of bytes++putWord8 :: BinHandle -> Word8 -> IO ()+putWord8 (BinIO ix_r h) w = do+ -- ix <- readIntM ix_r+ hPutChar h $ chr $ fromEnum w -- XXX not really correct+ -- writeIntM ix_r (ix+1)+ return ()+putWord8 (BinBuf ix_r (pstr, len)) w = do+ ix <- readIntM ix_r+ when (ix >= len) $+ ioError (mkIOError eofErrorType "putWord8" Nothing Nothing)+ writeIntM ix_r (ix+1)+ withForeignPtr pstr $ \cstr ->+ pokeByteOff cstr ix w+ return ()++getWord8 :: BinHandle -> IO Word8+getWord8 (BinIO ix_r h) = do+ ix <- readIntM ix_r+ c <- hGetChar h+ writeIntM ix_r (ix+1)+ return $! (fromIntegral (ord c)) -- XXX not really correct+getWord8 (BinBuf ix_r (pstr, len)) = do+ ix <- readIntM ix_r+-- when (ix >= len) $+-- ioError (mkIOError eofErrorType "getWord8" Nothing Nothing)+ writeIntM ix_r (ix+1)+ withForeignPtr pstr $ \cstr ->+ peekByteOff cstr ix++getBuf :: BinHandle -> Int -> IO PStringLen+getBuf (BinIO ix_r h) size = do+ pstr <- mallocForeignPtrBytes size+ withForeignPtr pstr $ \cstr -> do+ len <- hGetBuf h cstr size+ ix <- readIntM ix_r+ writeIntM ix_r (ix + len)+ return (pstr, len)+getBuf (BinBuf ix_r (pstr, len)) size = do+ ix <- readIntM ix_r+ let len' = min (len - ix) size+ writeIntM ix_r (ix + len')+ withForeignPtr pstr $ \cstr -> do+ pstr' <- newForeignPtr_ (plusPtr cstr ix)+ addFinalizer pstr' $ touchForeignPtr pstr -- ???+ return (pstr', len')++putBuf :: BinHandle -> PStringLen -> IO ()+putBuf (BinIO ix_r h) (pstr, len) = do+ ix <- readIntM ix_r+ writeIntM ix_r (ix + len)+ withForeignPtr pstr $ \cstr ->+ hPutBuf h cstr len+putBuf (BinBuf ix_r (pstr, len)) (pstr', len') = do+ ix <- readIntM ix_r+ when ((ix + len') > len) $+ ioError (mkIOError eofErrorType "putBuf" Nothing Nothing)+ writeIntM ix_r (ix+len')+ withForeignPtr pstr $ \cstr ->+ withForeignPtr pstr' $ \cstr' ->+ copyBytes (plusPtr cstr ix) cstr' len'++putByte :: BinHandle -> Word8 -> IO ()+putByte bh w = put bh w++getByte :: BinHandle -> IO Word8+getByte = getWord8++-- -----------------------------------------------------------------------------+-- Primitve Word writes++instance Binary Word8 where+ put = putWord8+ get = getWord8++instance Binary Word16 where+ put h w = do -- XXX too slow.. inline putWord8?+ putByte h (fromIntegral (w `shiftR` 8))+ putByte h (fromIntegral (w .&. 0xff))+ get h = do+ w1 <- getWord8 h+ w2 <- getWord8 h+ return $! ((fromIntegral w1 `shiftL` 8) .|. fromIntegral w2)++newtype A1 = A1 Word8 deriving (Ord, Enum, Real, Integral, Eq, Num, Bits, Typeable, Storable, Binary)+newtype A2 = A2 Word16 deriving (Ord, Enum, Real, Integral, Eq, Num, Bits, Typeable, Storable, Binary)+newtype A3 = A3 Word32 deriving (Ord, Enum, Real, Integral, Eq, Num, Bits, Typeable)+newtype A4 = A4 Word32 deriving (Ord, Enum, Real, Integral, Eq, Num, Bits, Typeable, Storable, Binary)+newtype A6 = A6 Word64 deriving (Ord, Enum, Real, Integral, Eq, Num, Bits, Typeable)+newtype A8 = A8 Word64 deriving (Ord, Enum, Real, Integral, Eq, Num, Bits, Typeable, Storable, Binary)+newtype A12 = A12 Integer deriving (Ord, Enum, Real, Integral, Eq, Num, Bits, Typeable)++newtype I1 = I1 Int8 deriving (Ord, Enum, Real, Integral, Eq, Num, Bits, Typeable, Storable, Binary, Ix, IArray UArray, Show)+newtype I2 = I2 Int16 deriving (Ord, Enum, Real, Integral, Eq, Num, Bits, Typeable, Storable, Binary, Ix, IArray UArray, Show)+newtype I4 = I4 Int32 deriving (Ord, Enum, Real, Integral, Eq, Num, Bits, Typeable, Storable, Binary, Ix, IArray UArray, Show)+newtype I8 = I8 Int64 deriving (Ord, Enum, Real, Integral, Eq, Num, Bits, Typeable, Storable, Binary, Ix, IArray UArray, Show)++newtype N1 = N1 Word8 deriving (Ord, Enum, Real, Integral, Eq, Num, Bits, Typeable, Storable, Binary, Ix, IArray UArray)+newtype N2 = N2 Word16 deriving (Ord, Enum, Real, Integral, Eq, Num, Bits, Typeable, Storable, Binary)+newtype N3 = N3 Word32 deriving (Ord, Enum, Real, Integral, Eq, Num, Bits, Typeable)+newtype N4 = N4 Word32 deriving (Ord, Enum, Real, Integral, Eq, Num, Bits, Typeable, Storable, Binary)++newtype N0 = N0 () deriving (Show, Ord, Enum, Eq, Typeable, Binary, Ix)++instance Num N0 where+ x + _ = x+ x * _ = x+ abs x = x+ signum x = x+ fromInteger _ = N0 ()++instance Show N1 where show = zeropad 1+instance Show N2 where show = zeropad 2+instance Show N3 where show = zeropad 3+instance Show N4 where show = zeropad 4++instance Show A1 where show = zeropad 1+instance Show A2 where show = zeropad 2+instance Show A3 where show = zeropad 3+instance Show A4 where show = zeropad 4+instance Show A6 where show = zeropad 6+instance Show A8 where show = zeropad 8+instance Show A12 where show = zeropad 12++{-# INLINE zeropad #-}+zeropad :: (Integral a) => Int -> a -> String+zeropad len str = replicate len' '0' ++ str'+ where str' = map toUpper $ showHex str ""+ len' = 2*len - length str'++instance Storable N3 where+ sizeOf w = 3+ alignment w = 8++instance Storable A3 where+ sizeOf w = 3+ alignment w = 8++instance Storable A6 where+ sizeOf w = 6+ alignment w = 8++instance Storable A12 where+ sizeOf w = 12+ alignment w = 8++instance (Storable a, Storable b) => Storable (a, b) where+ alignment _ = error "alignment not defined"+ sizeOf (x, y) = (sizeOf x) + (sizeOf y)++instance Binary N3 where+ put h w = do+ putByte h (fromIntegral (w `shiftR` 16))+ putByte h (fromIntegral ((w `shiftR` 8) .&. 0xff))+ putByte h (fromIntegral (w .&. 0xff))+ get h = do+ w1 <- getWord8 h+ w2 <- getWord8 h+ w3 <- getWord8 h+ return $! ((fromIntegral w1 `shiftL` 16) .|. + (fromIntegral w2 `shiftL` 8) .|. + (fromIntegral w3))++instance Binary A3 where+ put h w = do+ putByte h (fromIntegral (w `shiftR` 16))+ putByte h (fromIntegral ((w `shiftR` 8) .&. 0xff))+ putByte h (fromIntegral (w .&. 0xff))+ get h = do+ w1 <- getWord8 h+ w2 <- getWord8 h+ w3 <- getWord8 h+ return $! ((fromIntegral w1 `shiftL` 16) .|. + (fromIntegral w2 `shiftL` 8) .|. + (fromIntegral w3))++instance Binary A6 where+ put h w = do+ putByte h (fromIntegral (w `shiftR` 40))+ putByte h (fromIntegral ((w `shiftR` 32) .&. 0xff))+ putByte h (fromIntegral ((w `shiftR` 24) .&. 0xff))+ putByte h (fromIntegral ((w `shiftR` 16) .&. 0xff))+ putByte h (fromIntegral ((w `shiftR` 8) .&. 0xff))+ putByte h (fromIntegral (w .&. 0xff))+ get h = do+ w1 <- getWord8 h+ w2 <- getWord8 h+ w3 <- getWord8 h+ w4 <- getWord8 h+ w5 <- getWord8 h+ w6 <- getWord8 h+ return $! ((fromIntegral w1 `shiftL` 40) .|. + (fromIntegral w2 `shiftL` 32) .|. + (fromIntegral w3 `shiftL` 24) .|. + (fromIntegral w4 `shiftL` 16) .|. + (fromIntegral w5 `shiftL` 8) .|. + (fromIntegral w6))++instance Binary A12 where+ put h w = do+ putByte h (fromIntegral (w `shiftR` 88))+ putByte h (fromIntegral ((w `shiftR` 80) .&. 0xff))+ putByte h (fromIntegral ((w `shiftR` 72) .&. 0xff))+ putByte h (fromIntegral ((w `shiftR` 64) .&. 0xff))+ putByte h (fromIntegral ((w `shiftR` 56) .&. 0xff))+ putByte h (fromIntegral ((w `shiftR` 48) .&. 0xff))+ putByte h (fromIntegral ((w `shiftR` 40) .&. 0xff))+ putByte h (fromIntegral ((w `shiftR` 32) .&. 0xff))+ putByte h (fromIntegral ((w `shiftR` 24) .&. 0xff))+ putByte h (fromIntegral ((w `shiftR` 16) .&. 0xff))+ putByte h (fromIntegral ((w `shiftR` 8) .&. 0xff))+ putByte h (fromIntegral (w .&. 0xff))+ get h = do+ w1 <- getWord8 h+ w2 <- getWord8 h+ w3 <- getWord8 h+ w4 <- getWord8 h+ w5 <- getWord8 h+ w6 <- getWord8 h+ return $! ((fromIntegral w1 `shiftL` 88) .|. + (fromIntegral w2 `shiftL` 80) .|. + (fromIntegral w3 `shiftL` 72) .|. + (fromIntegral w4 `shiftL` 64) .|. + (fromIntegral w5 `shiftL` 56) .|. + (fromIntegral w2 `shiftL` 48) .|. + (fromIntegral w3 `shiftL` 40) .|. + (fromIntegral w2 `shiftL` 32) .|. + (fromIntegral w3 `shiftL` 24) .|. + (fromIntegral w4 `shiftL` 16) .|. + (fromIntegral w5 `shiftL` 8) .|. + (fromIntegral w6))++instance Binary Word32 where+ put h w = do+ putByte h (fromIntegral (w `shiftR` 24))+ putByte h (fromIntegral ((w `shiftR` 16) .&. 0xff))+ putByte h (fromIntegral ((w `shiftR` 8) .&. 0xff))+ putByte h (fromIntegral (w .&. 0xff))+ get h = do+ w1 <- getWord8 h+ w2 <- getWord8 h+ w3 <- getWord8 h+ w4 <- getWord8 h+ return $! ((fromIntegral w1 `shiftL` 24) .|. + (fromIntegral w2 `shiftL` 16) .|. + (fromIntegral w3 `shiftL` 8) .|. + (fromIntegral w4))+++instance Binary Word64 where+ put h w = do+ putByte h (fromIntegral (w `shiftR` 56))+ putByte h (fromIntegral ((w `shiftR` 48) .&. 0xff))+ putByte h (fromIntegral ((w `shiftR` 40) .&. 0xff))+ putByte h (fromIntegral ((w `shiftR` 32) .&. 0xff))+ putByte h (fromIntegral ((w `shiftR` 24) .&. 0xff))+ putByte h (fromIntegral ((w `shiftR` 16) .&. 0xff))+ putByte h (fromIntegral ((w `shiftR` 8) .&. 0xff))+ putByte h (fromIntegral (w .&. 0xff))+ get h = do+ w1 <- getWord8 h+ w2 <- getWord8 h+ w3 <- getWord8 h+ w4 <- getWord8 h+ w5 <- getWord8 h+ w6 <- getWord8 h+ w7 <- getWord8 h+ w8 <- getWord8 h+ return $! ((fromIntegral w1 `shiftL` 56) .|. + (fromIntegral w2 `shiftL` 48) .|. + (fromIntegral w3 `shiftL` 40) .|. + (fromIntegral w4 `shiftL` 32) .|. + (fromIntegral w5 `shiftL` 24) .|. + (fromIntegral w6 `shiftL` 16) .|. + (fromIntegral w7 `shiftL` 8) .|. + (fromIntegral w8))++-- -----------------------------------------------------------------------------+-- Primitve Int writes++instance Binary Int8 where+ put h w = put h (fromIntegral w :: Word8)+ get h = do w <- get h; return $! (fromIntegral (w::Word8))++instance Binary Int16 where+ put h w = put h (fromIntegral w :: Word16)+ get h = do w <- get h; return $! (fromIntegral (w::Word16))++instance Binary Int32 where+ put h w = put h (fromIntegral w :: Word32)+ get h = do w <- get h; return $! (fromIntegral (w::Word32))++instance Binary Int64 where+ put h w = put h (fromIntegral w :: Word64)+ get h = do w <- get h; return $! (fromIntegral (w::Word64))++-- -----------------------------------------------------------------------------+-- Instances for standard types++instance Binary () where+ put bh () = return ()+ get _ = return ()++instance Binary Bool where+ put bh b = putByte bh (fromIntegral (fromEnum b))+ get bh = do x <- getWord8 bh; return $! (toEnum (fromEnum x))++instance Binary Char where+ put bh c = put bh (fromIntegral (ord c) :: Word8)+ get bh = do x <- get bh; return $! (chr (fromEnum (x :: Word8)))++-- XXX - 32-bitism+instance Binary Int where+ put bh i = put bh (fromIntegral i :: Int32)+ get bh = do+ x <- get bh+ return $! (fromIntegral (x :: Int32))++instance Binary a => Binary [a] where+ put bh list = do mapM_ (put bh) list+ get bh@(BinBuf ix_r (_, len)) = do+ ix <- readIntM ix_r+ if (ix >= len) then+ return []+ else do+ x <- get bh+ xs <- get bh+ return (x:xs)+ get bh@(BinIO _ _) = (do+ x <- get bh+ xs <- unsafeInterleaveIO $ get bh+ return (x:xs)) `catch` \e -> return []++instance (Binary a, Binary b) => Binary (a,b) where+ put bh (a,b) = do put bh a; put bh b+ get bh = do a <- get bh+ b <- get bh+ return (a,b)++instance (Binary a, Binary b, Binary c) => Binary (a,b,c) where+ put bh (a,b,c) = do put bh a; put bh b; put bh c+ get bh = do a <- get bh+ b <- get bh+ c <- get bh+ return (a,b,c)++instance (Binary a, Binary b, Binary c, Binary d) => Binary (a,b,c,d) where+ put bh (a,b,c,d)= do put bh a; put bh b; put bh c; put bh d+ get bh = do a <- get bh+ b <- get bh+ c <- get bh+ d <- get bh+ return (a,b,c,d)++---------------------------------------------------------------+-- Support code: IntM+---------------------------------------------------------------++data IntM = IntM (MutableByteArray# RealWorld)++newIntM :: IO IntM+newIntM = IO $ \s ->+ case newByteArray# size s of { (# s, arr #) ->+ (# s, IntM arr #) }+ where I# size = 4 -- XXX - 32-bitism++readIntM :: IntM -> IO Int+readIntM (IntM arr) = IO $ \s ->+ case readIntArray# arr 0# s of { (# s, i #) ->+ (# s, I# i #) }++writeIntM :: IntM -> Int -> IO ()+writeIntM (IntM arr) (I# i) = IO $ \s ->+ case writeIntArray# arr 0# i s of { s ->+ (# s, () #) }
+ src/OpenAFP/Internals/Ebc2Asc.hs view
@@ -0,0 +1,76 @@+{-# OPTIONS -O -fglasgow-exts #-}++module OpenAFP.Internals.Ebc2Asc where+import Data.Word+import Data.Array.Unboxed+import OpenAFP.Internals.Binary++ebc2asc :: UArray N1 Char+ebc2asc = listArray (0, 255) [+ '\x00', '\x01', '\x02', '\x03', '\x00', '\x09', '\x00', '\x00',+ '\x00', '\x00', '\x00', '\x0B', '\x0C', '\x0D', '\x20', '\x20',+ '\x10', '\x11', '\x12', '\x13', '\x00', '\x00', '\x08', '\x00',+ '\x18', '\x19', '\x00', '\x00', '\x1C', '\x1D', '\x1E', '\x1F',+ '\x00', '\x00', '\x00', '\x00', '\x00', '\x0A', '\x17', '\x1B',+ '\x00', '\x00', '\x00', '\x00', '\x00', '\x05', '\x06', '\x07',+ '\x00', '\x00', '\x16', '\x00', '\x00', '\x00', '\x00', '\x04',+ '\x00', '\x00', '\x00', '\x00', '\x14', '\x15', '\x00', '\x00',+ '\x20', '\x20', '\x20', '\x20', '\x20', '\x20', '\x20', '\x20',+ '\x20', '\x20', '\x5B', '\x2E', '\x3C', '\x28', '\x2B', '\x21',+ '\x26', '\x20', '\x20', '\x20', '\x20', '\x20', '\x20', '\x20',+ '\x20', '\x20', '\x5D', '\x24', '\x2A', '\x29', '\x3B', '\x5E',+ '\x2D', '\x2F', '\x20', '\x20', '\x20', '\x20', '\x20', '\x20',+ '\x20', '\x20', '\x7C', '\x2C', '\x25', '\x5F', '\x3E', '\x3F',+ '\x20', '\x20', '\x20', '\x20', '\x20', '\x20', '\x20', '\x20',+ '\x20', '\x60', '\x3A', '\x23', '\x40', '\x27', '\x3D', '\x22',+ '\x20', '\x61', '\x62', '\x63', '\x64', '\x65', '\x66', '\x67',+ '\x68', '\x69', '\x20', '\x20', '\x20', '\x20', '\x20', '\x20',+ '\x20', '\x6A', '\x6B', '\x6C', '\x6D', '\x6E', '\x6F', '\x70',+ '\x71', '\x72', '\x20', '\x20', '\x20', '\x20', '\x20', '\x20',+ '\x20', '\x7E', '\x73', '\x74', '\x75', '\x76', '\x77', '\x78',+ '\x79', '\x7A', '\x20', '\x20', '\x20', '\x20', '\x20', '\x20',+ '\x20', '\x20', '\x20', '\x20', '\x20', '\x20', '\x20', '\x20',+ '\x20', '\x20', '\x20', '\x20', '\x20', '\x20', '\x20', '\x20',+ '\x7B', '\x41', '\x42', '\x43', '\x44', '\x45', '\x46', '\x47',+ '\x48', '\x49', '\x20', '\x20', '\x20', '\x20', '\x20', '\x20',+ '\x7D', '\x4A', '\x4B', '\x4C', '\x4D', '\x4E', '\x4F', '\x50',+ '\x51', '\x52', '\x20', '\x20', '\x20', '\x20', '\x20', '\x20',+ '\x5C', '\x20', '\x53', '\x54', '\x55', '\x56', '\x57', '\x58',+ '\x59', '\x5A', '\x20', '\x20', '\x20', '\x20', '\x20', '\x20',+ '\x30', '\x31', '\x32', '\x33', '\x34', '\x35', '\x36', '\x37',+ '\x38', '\x39', '\x20', '\x20', '\x20', '\x20', '\x20', '\x20' ]++asc2ebc :: UArray Int N1+asc2ebc = listArray (0, 255) [+ 0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F,+ 0x16, 0x05, 0x25, 0x0B, 0x0C, 0x0D, 0x3F, 0x3F,+ 0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26,+ 0x18, 0x19, 0x3F, 0x27, 0x1C, 0x1D, 0x1E, 0x1F,+ 0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D,+ 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,+ 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,+ 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,+ 0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,+ 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,+ 0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6,+ 0xE7, 0xE8, 0xE9, 0x4A, 0xE0, 0x6A, 0x5F, 0x6D,+ 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,+ 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,+ 0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6,+ 0xA7, 0xA8, 0xA9, 0xC0, 0x4F, 0xD0, 0xA1, 0x40,+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40 ]
+ src/OpenAFP/Internals/UConv.hs view
@@ -0,0 +1,67 @@+{-# OPTIONS -#include <unicode/ucnv.h> #-}+{-# OPTIONS -fglasgow-exts #-}++-----------------------------------------------------------------------------+-- |+-- Module : OpenAFP.Internals.UConv+-- Copyright : Audrey Tang+-- License : BSD-style+--+-- Maintainer : audreyt@audreyt.org+-- Stability : experimental+-- Portability : non-portable (FFI extensions, UNIX98)+--+-- This module provides an interface to IBM ICU's uconv functionality+--+-----------------------------------------------------------------------------++-- Make with: ghc --make main.hs -L/usr/local/lib -licuuc -O -I/usr/local/include++module OpenAFP.Internals.UConv where++import Foreign+import Foreign.C+import Foreign.Ptr+import OpenAFP.Internals.Binary+import System.IO.Unsafe(unsafePerformIO)++-- |+-- Convert a sequence of bytes from one encoding to another.+uconv :: String -- ^ The encoding to convert from+ -> String -- ^ The encoding to convert to+ -> [N1] -- ^ The byte sequence to convert+ -> Maybe String -- ^ The byte sequence converted+uconv fromcode tocode bytes = unsafePerformIO $ do+ -- Create a conversion descriptor+ withCString fromcode $ \fromcode_c -> do+ withCString tocode $ \tocode_c -> do+ allocaBytes in_len $ \in_c -> do+ pokeArray in_c bytes+ allocaBytes out_len $ \out_c -> do+ alloca $ \err -> do+ poke err (0 :: Word8)+ len <- ucnv_convert tocode_c + fromcode_c + (castPtr out_c)+ (toEnum out_len)+ (castPtr in_c)+ (toEnum in_len)+ err+ errCode <- peek err :: IO Word8+ if (errCode == 0) then+ return . Just =<< peekCStringLen (out_c, fromEnum len)+ else + return Nothing -- ("<<error: " ++ (show errCode) ++ ">>")+ where+ out_len = (4 * in_len)+ in_len = (length bytes)++foreign import ccall "ucnv_convert_3_4" ucnv_convert ::+ CString -> -- toConverterName+ CString -> -- fromConverterName+ Ptr CChar -> -- target+ Int32 -> -- targetCapacity+ Ptr CChar -> -- source+ Int32 -> -- sourceLength+ Ptr Word8 -> -- pErrorCode+ IO Int32 -- return: targetLength
+ src/OpenAFP/Prelude/Exts.hs view
@@ -0,0 +1,104 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields -cpp #-}++-----------------------------------------------------------------------------+-- |+-- Module : OpenAFP.Prelude.Exts+-- Copyright : (c) Audrey Tang 2004, 2006+-- License : BSD-style+-- +-- Maintainer : audreyt@audreyt.org+-- Stability : experimental+-- Portability : non-portable (GHC-only)+--+-- PreludeExts from the Haskell Wiki under the BSD license.+--+-----------------------------------------------------------------------------++module OpenAFP.Prelude.Exts where+import OpenAFP.Internals++-- | Applies a bunch of functions to a value.+rmap :: [a -> b] -> a -> [b]+rmap fs x = map ($ x) fs++-- Catch user errors, but let others through+onUserError :: IO a -> (String -> IO a) -> IO a+m `onUserError` h+ = m `catchError` \e ->+ if isUserError e+ then h (ioeGetErrorString e)+ else throwError e++type RE = String+(=~) :: String -> String -> Bool+s =~ p = isJust $ matchRegex (mkRegexWithOpts p False True) s++splitRegexWithMatches :: RE -> String -> ([String], [String])+splitRegexWithMatches regexpr src = splitRegex' src+ where+ regex = mkRegex regexpr+ splitRegex' :: String -> ([String], [String])+ splitRegex' s =+ case matchRegexAll regex s of+ Just (before, match, after, _) ->+ case splitRegex' after of (text, matches) -> (before : text, match : matches)+ Nothing -> ([s], [])++splitBy :: (a -> Bool) -> [a] -> [[a]]+splitBy _ [] = []+splitBy f list = first : splitBy f (dropWhile f rest)+ where + (first, rest) = break f list++lower :: String -> String+lower = map toLower++upper :: String -> String+upper = map toUpper++---------------------------------------------------------------------------------+-- Tom Moertel - from lambdabot's Util module++-- | Join lists with the given glue elements. Example:+--+-- > joinList ", " ["one","two","three"] ===> "one, two, three"++joinList :: [a] -- ^ Glue to join with+ -> [[a]] -- ^ Elements to glue together+ -> [a] -- ^ Result: glued-together list++joinList glue xs = (concat . intersperse glue) xs++-- | Split a list into pieces that were held together by glue. Example:+--+-- > split ", " "one, two, three" ===> ["one","two","three"]++split :: Eq a => [a] -- ^ Glue that holds pieces together+ -> [a] -- ^ List to break into pieces+ -> [[a]] -- ^ Result: list of pieces++split glue xs = split' xs+ where+ split' [] = []+ split' xs = piece : split' (dropGlue rest)+ where (piece, rest) = breakOnGlue glue xs+ dropGlue = drop (length glue)++-- | Break off the first piece of a list held together by glue,+-- leaving the glue attached to the remainder of the list. Example:+--+-- > breakOnGlue ", " "one, two, three" ===> ("one", ", two, three")++breakOnGlue :: (Eq a) => [a] -- ^ Glue that holds pieces together+ -> [a] -- ^ List from which to break off a piece+ -> ([a],[a]) -- ^ Result: (first piece, glue ++ rest of list)++breakOnGlue _ [] = ([],[])+breakOnGlue glue rest@(x:xs)+ | glue `isPrefixOf` rest = ([], rest)+ | otherwise = (x:piece, rest') where (piece, rest') = breakOnGlue glue xs++split_first_word :: String -> (String, String)+split_first_word xs = (w, dropWhile isSpace xs')+ where (w, xs') = break isSpace xs+
+ src/OpenAFP/Prelude/InstanceAFP.hs view
@@ -0,0 +1,736 @@+{-# OPTIONS -fglasgow-exts #-}++module OpenAFP.Prelude.InstanceAFP () where+import OpenAFP.Types+import OpenAFP.Records+import OpenAFP.Internals++recOf :: (ChunkBuf c n b, Binary (Record r)) => c -> IO r+recOf c = return . fromRecord =<< chunkToRecord c++apply :: (MonadIO m) => (t -> IO a) -> t -> (a -> m b) -> m b+apply ctr c f = f =<< (liftIO $ ctr c)++instance Rec BAG where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BAG a01 a02 a03+ recPut bh r = do put bh $ bag_Type r; put bh $ bag_ r; put bh $ bag r; return ()+ recSizeOf r = sum [ sizeOf $ bag_Type r, sizeOf $ bag_ r, sizeOf $ bag r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bag_Type r), viewField "_" (viewNumber $ bag_ r), viewField "" (viewNStr $ bag r) ]+ recType = fromEnum . bag_Type++instance Rec BBC where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BBC a01 a02 a03+ recPut bh r = do put bh $ bbc_Type r; put bh $ bbc_ r; put bh $ bbc r; return ()+ recSizeOf r = sum [ sizeOf $ bbc_Type r, sizeOf $ bbc_ r, sizeOf $ bbc r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bbc_Type r), viewField "_" (viewNumber $ bbc_ r), viewField "" (viewNStr $ bbc r) ]+ recType = fromEnum . bbc_Type++instance Rec BCA where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BCA a01 a02 a03+ recPut bh r = do put bh $ bca_Type r; put bh $ bca_ r; put bh $ bca r; return ()+ recSizeOf r = sum [ sizeOf $ bca_Type r, sizeOf $ bca_ r, sizeOf $ bca r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bca_Type r), viewField "_" (viewNumber $ bca_ r), viewField "" (viewNStr $ bca r) ]+ recType = fromEnum . bca_Type++instance Rec BCF where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BCF a01 a02 a03+ recPut bh r = do put bh $ bcf_Type r; put bh $ bcf_ r; put bh $ bcf r; return ()+ recSizeOf r = sum [ sizeOf $ bcf_Type r, sizeOf $ bcf_ r, sizeOf $ bcf r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bcf_Type r), viewField "_" (viewNumber $ bcf_ r), viewField "" (viewNStr $ bcf r) ]+ recType = fromEnum . bcf_Type++instance Rec BCP where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BCP a01 a02 a03+ recPut bh r = do put bh $ bcp_Type r; put bh $ bcp_ r; put bh $ bcp r; return ()+ recSizeOf r = sum [ sizeOf $ bcp_Type r, sizeOf $ bcp_ r, sizeOf $ bcp r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bcp_Type r), viewField "_" (viewNumber $ bcp_ r), viewField "" (viewNStr $ bcp r) ]+ recType = fromEnum . bcp_Type++instance Rec BDA where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BDA a01 a02 a03+ recPut bh r = do put bh $ bda_Type r; put bh $ bda_ r; put bh $ bda r; return ()+ recSizeOf r = sum [ sizeOf $ bda_Type r, sizeOf $ bda_ r, sizeOf $ bda r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bda_Type r), viewField "_" (viewNumber $ bda_ r), viewField "" (viewNStr $ bda r) ]+ recType = fromEnum . bda_Type++instance Rec BDD where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BDD a01 a02 a03+ recPut bh r = do put bh $ bdd_Type r; put bh $ bdd_ r; put bh $ bdd r; return ()+ recSizeOf r = sum [ sizeOf $ bdd_Type r, sizeOf $ bdd_ r, sizeOf $ bdd r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bdd_Type r), viewField "_" (viewNumber $ bdd_ r), viewField "" (viewNStr $ bdd r) ]+ recType = fromEnum . bdd_Type++instance Rec BDG where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BDG a01 a02 a03+ recPut bh r = do put bh $ bdg_Type r; put bh $ bdg_ r; put bh $ bdg r; return ()+ recSizeOf r = sum [ sizeOf $ bdg_Type r, sizeOf $ bdg_ r, sizeOf $ bdg r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bdg_Type r), viewField "_" (viewNumber $ bdg_ r), viewField "" (viewNStr $ bdg r) ]+ recType = fromEnum . bdg_Type++instance Rec BDI where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BDI a01 a02 a03+ recPut bh r = do put bh $ bdi_Type r; put bh $ bdi_ r; put bh $ bdi r; return ()+ recSizeOf r = sum [ sizeOf $ bdi_Type r, sizeOf $ bdi_ r, sizeOf $ bdi r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bdi_Type r), viewField "_" (viewNumber $ bdi_ r), viewField "" (viewNStr $ bdi r) ]+ recType = fromEnum . bdi_Type++instance Rec BDM where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BDM a01 a02 a03+ recPut bh r = do put bh $ bdm_Type r; put bh $ bdm_ r; put bh $ bdm r; return ()+ recSizeOf r = sum [ sizeOf $ bdm_Type r, sizeOf $ bdm_ r, sizeOf $ bdm r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bdm_Type r), viewField "_" (viewNumber $ bdm_ r), viewField "" (viewNStr $ bdm r) ]+ recType = fromEnum . bdm_Type++instance Rec BDT where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BDT a01 a02 a03+ recPut bh r = do put bh $ bdt_Type r; put bh $ bdt_ r; put bh $ bdt r; return ()+ recSizeOf r = sum [ sizeOf $ bdt_Type r, sizeOf $ bdt_ r, sizeOf $ bdt r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bdt_Type r), viewField "_" (viewNumber $ bdt_ r), viewField "" (viewNStr $ bdt r) ]+ recType = fromEnum . bdt_Type++instance Rec BDX where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BDX a01 a02 a03+ recPut bh r = do put bh $ bdx_Type r; put bh $ bdx_ r; put bh $ bdx r; return ()+ recSizeOf r = sum [ sizeOf $ bdx_Type r, sizeOf $ bdx_ r, sizeOf $ bdx r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bdx_Type r), viewField "_" (viewNumber $ bdx_ r), viewField "" (viewNStr $ bdx r) ]+ recType = fromEnum . bdx_Type++instance Rec BFG where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BFG a01 a02 a03+ recPut bh r = do put bh $ bfg_Type r; put bh $ bfg_ r; put bh $ bfg r; return ()+ recSizeOf r = sum [ sizeOf $ bfg_Type r, sizeOf $ bfg_ r, sizeOf $ bfg r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bfg_Type r), viewField "_" (viewNumber $ bfg_ r), viewField "" (viewNStr $ bfg r) ]+ recType = fromEnum . bfg_Type++instance Rec BFM where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BFM a01 a02 a03+ recPut bh r = do put bh $ bfm_Type r; put bh $ bfm_ r; put bh $ bfm r; return ()+ recSizeOf r = sum [ sizeOf $ bfm_Type r, sizeOf $ bfm_ r, sizeOf $ bfm r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bfm_Type r), viewField "_" (viewNumber $ bfm_ r), viewField "" (viewNStr $ bfm r) ]+ recType = fromEnum . bfm_Type++instance Rec BFN where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BFN a01 a02 a03+ recPut bh r = do put bh $ bfn_Type r; put bh $ bfn_ r; put bh $ bfn r; return ()+ recSizeOf r = sum [ sizeOf $ bfn_Type r, sizeOf $ bfn_ r, sizeOf $ bfn r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bfn_Type r), viewField "_" (viewNumber $ bfn_ r), viewField "" (viewNStr $ bfn r) ]+ recType = fromEnum . bfn_Type++instance Rec BGR where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BGR a01 a02 a03+ recPut bh r = do put bh $ bgr_Type r; put bh $ bgr_ r; put bh $ bgr r; return ()+ recSizeOf r = sum [ sizeOf $ bgr_Type r, sizeOf $ bgr_ r, sizeOf $ bgr r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bgr_Type r), viewField "_" (viewNumber $ bgr_ r), viewField "" (viewNStr $ bgr r) ]+ recType = fromEnum . bgr_Type++instance Rec BII where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BII a01 a02 a03+ recPut bh r = do put bh $ bii_Type r; put bh $ bii_ r; put bh $ bii_ImageObjectName r; return ()+ recSizeOf r = sum [ sizeOf $ bii_Type r, sizeOf $ bii_ r, sizeOf $ bii_ImageObjectName r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bii_Type r), viewField "_" (viewNumber $ bii_ r), viewField "ImageObjectName" (viewString $ bii_ImageObjectName r) ]+ recType = fromEnum . bii_Type++instance Rec BIM where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BIM a01 a02 a03+ recPut bh r = do put bh $ bim_Type r; put bh $ bim_ r; put bh $ bim r; return ()+ recSizeOf r = sum [ sizeOf $ bim_Type r, sizeOf $ bim_ r, sizeOf $ bim r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bim_Type r), viewField "_" (viewNumber $ bim_ r), viewField "" (viewNStr $ bim r) ]+ recType = fromEnum . bim_Type++instance Rec BMM where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BMM a01 a02 a03+ recPut bh r = do put bh $ bmm_Type r; put bh $ bmm_ r; put bh $ bmm r; return ()+ recSizeOf r = sum [ sizeOf $ bmm_Type r, sizeOf $ bmm_ r, sizeOf $ bmm r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bmm_Type r), viewField "_" (viewNumber $ bmm_ r), viewField "" (viewNStr $ bmm r) ]+ recType = fromEnum . bmm_Type++instance Rec BMO where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BMO a01 a02 a03+ recPut bh r = do put bh $ bmo_Type r; put bh $ bmo_ r; put bh $ bmo r; return ()+ recSizeOf r = sum [ sizeOf $ bmo_Type r, sizeOf $ bmo_ r, sizeOf $ bmo r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bmo_Type r), viewField "_" (viewNumber $ bmo_ r), viewField "" (viewNStr $ bmo r) ]+ recType = fromEnum . bmo_Type++instance Rec BNG where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BNG a01 a02 a03+ recPut bh r = do put bh $ bng_Type r; put bh $ bng_ r; put bh $ bng r; return ()+ recSizeOf r = sum [ sizeOf $ bng_Type r, sizeOf $ bng_ r, sizeOf $ bng r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bng_Type r), viewField "_" (viewNumber $ bng_ r), viewField "" (viewNStr $ bng r) ]+ recType = fromEnum . bng_Type++instance Rec BOC where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BOC a01 a02 a03+ recPut bh r = do put bh $ boc_Type r; put bh $ boc_ r; put bh $ boc r; return ()+ recSizeOf r = sum [ sizeOf $ boc_Type r, sizeOf $ boc_ r, sizeOf $ boc r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ boc_Type r), viewField "_" (viewNumber $ boc_ r), viewField "" (viewNStr $ boc r) ]+ recType = fromEnum . boc_Type++instance Rec BOG where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BOG a01 a02 a03+ recPut bh r = do put bh $ bog_Type r; put bh $ bog_ r; put bh $ bog r; return ()+ recSizeOf r = sum [ sizeOf $ bog_Type r, sizeOf $ bog_ r, sizeOf $ bog r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bog_Type r), viewField "_" (viewNumber $ bog_ r), viewField "" (viewNStr $ bog r) ]+ recType = fromEnum . bog_Type++instance Rec BPG where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BPG a01 a02 a03+ recPut bh r = do put bh $ bpg_Type r; put bh $ bpg_ r; put bh $ bpg r; return ()+ recSizeOf r = sum [ sizeOf $ bpg_Type r, sizeOf $ bpg_ r, sizeOf $ bpg r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bpg_Type r), viewField "_" (viewNumber $ bpg_ r), viewField "" (viewNStr $ bpg r) ]+ recType = fromEnum . bpg_Type++instance Rec BPM where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BPM a01 a02 a03+ recPut bh r = do put bh $ bpm_Type r; put bh $ bpm_ r; put bh $ bpm r; return ()+ recSizeOf r = sum [ sizeOf $ bpm_Type r, sizeOf $ bpm_ r, sizeOf $ bpm r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bpm_Type r), viewField "_" (viewNumber $ bpm_ r), viewField "" (viewNStr $ bpm r) ]+ recType = fromEnum . bpm_Type++instance Rec BPS where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BPS a01 a02 a03+ recPut bh r = do put bh $ bps_Type r; put bh $ bps_ r; put bh $ bps r; return ()+ recSizeOf r = sum [ sizeOf $ bps_Type r, sizeOf $ bps_ r, sizeOf $ bps r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bps_Type r), viewField "_" (viewNumber $ bps_ r), viewField "" (viewNStr $ bps r) ]+ recType = fromEnum . bps_Type++instance Rec BPT where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BPT a01 a02 a03+ recPut bh r = do put bh $ bpt_Type r; put bh $ bpt_ r; put bh $ bpt r; return ()+ recSizeOf r = sum [ sizeOf $ bpt_Type r, sizeOf $ bpt_ r, sizeOf $ bpt r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bpt_Type r), viewField "_" (viewNumber $ bpt_ r), viewField "" (viewNStr $ bpt r) ]+ recType = fromEnum . bpt_Type++instance Rec BR where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BR a01 a02 a03+ recPut bh r = do put bh $ br_Type r; put bh $ br_ r; put bh $ br r; return ()+ recSizeOf r = sum [ sizeOf $ br_Type r, sizeOf $ br_ r, sizeOf $ br r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ br_Type r), viewField "_" (viewNumber $ br_ r), viewField "" (viewNStr $ br r) ]+ recType = fromEnum . br_Type++instance Rec BRG where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BRG a01 a02 a03+ recPut bh r = do put bh $ brg_Type r; put bh $ brg_ r; put bh $ brg r; return ()+ recSizeOf r = sum [ sizeOf $ brg_Type r, sizeOf $ brg_ r, sizeOf $ brg r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ brg_Type r), viewField "_" (viewNumber $ brg_ r), viewField "" (viewNStr $ brg r) ]+ recType = fromEnum . brg_Type++instance Rec BSG where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ BSG a01 a02 a03+ recPut bh r = do put bh $ bsg_Type r; put bh $ bsg_ r; put bh $ bsg r; return ()+ recSizeOf r = sum [ sizeOf $ bsg_Type r, sizeOf $ bsg_ r, sizeOf $ bsg r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ bsg_Type r), viewField "_" (viewNumber $ bsg_ r), viewField "" (viewNStr $ bsg r) ]+ recType = fromEnum . bsg_Type++instance Rec CAT where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ CAT a01 a02 a03+ recPut bh r = do put bh $ cat_Type r; put bh $ cat_ r; put bh $ cat r; return ()+ recSizeOf r = sum [ sizeOf $ cat_Type r, sizeOf $ cat_ r, sizeOf $ cat r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ cat_Type r), viewField "_" (viewNumber $ cat_ r), viewField "" (viewNStr $ cat r) ]+ recType = fromEnum . cat_Type++instance Rec CDD where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ CDD a01 a02 a03+ recPut bh r = do put bh $ cdd_Type r; put bh $ cdd_ r; put bh $ cdd r; return ()+ recSizeOf r = sum [ sizeOf $ cdd_Type r, sizeOf $ cdd_ r, sizeOf $ cdd r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ cdd_Type r), viewField "_" (viewNumber $ cdd_ r), viewField "" (viewNStr $ cdd r) ]+ recType = fromEnum . cdd_Type++instance Rec CFC where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; a04 <- get bh; return $ CFC a01 a02 a03 a04+ recPut bh r = do put bh $ cfc_Type r; put bh $ cfc_ r; put bh $ cfc_CFIRepeatingGroupLength r; put bh $ cfc r; return ()+ recSizeOf r = sum [ sizeOf $ cfc_Type r, sizeOf $ cfc_ r, sizeOf $ cfc_CFIRepeatingGroupLength r, sizeOf $ cfc r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ cfc_Type r), viewField "_" (viewNumber $ cfc_ r), viewField "CFIRepeatingGroupLength" (viewNumber $ cfc_CFIRepeatingGroupLength r), viewField "" (viewNStr $ cfc r) ]+ recType = fromEnum . cfc_Type++instance Rec CFI where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ CFI a01 a02 a03+ recPut bh r = do put bh $ cfi_Type r; put bh $ cfi_ r; put bh $ cfi_Data r; return ()+ recSizeOf r = sum [ sizeOf $ cfi_Type r, sizeOf $ cfi_ r, sizeOf $ cfi_Data r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ cfi_Type r), viewField "_" (viewNumber $ cfi_ r), viewField "Data" (viewData $ cfi_Data r) ]+ recType = fromEnum . cfi_Type++instance Rec CFI_Data where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; a04 <- get bh; return $ CFI_Data a01 a02 a03 a04+ recPut bh r = do put bh $ cfi_FontCharacterSetName r; put bh $ cfi_CodePageName r; put bh $ cfi_CodedFontName r; put bh $ cfi_Section r; return ()+ recSizeOf r = sum [ sizeOf $ cfi_FontCharacterSetName r, sizeOf $ cfi_CodePageName r, sizeOf $ cfi_CodedFontName r, sizeOf $ cfi_Section r ]+ recView r = viewRecord (typeOf r) [ viewField "FontCharacterSetName" (viewString $ cfi_FontCharacterSetName r), viewField "CodePageName" (viewString $ cfi_CodePageName r), viewField "CodedFontName" (viewString $ cfi_CodedFontName r), viewField "Section" (viewNumber $ cfi_Section r) ]+ recType r = 0++instance RecData CFI CFI_Data where+ readData r = cfi_Data r+ writeData r cs = r { cfi_Data = cs }++instance Rec CPC where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; a04 <- get bh; a05 <- get bh; a06 <- get bh; a07 <- get bh; a08 <- get bh; return $ CPC a01 a02 a03 a04 a05 a06 a07 a08+ recPut bh r = do put bh $ cpc_Type r; put bh $ cpc_ r; put bh $ cpc_GCGID r; put bh $ cpc_UseFlags r; put bh $ cpc_CPIRepeatingGroupLength r; put bh $ cpc_SpaceCharacterSection r; put bh $ cpc_UseFlags2 r; put bh $ cpc r; return ()+ recSizeOf r = sum [ sizeOf $ cpc_Type r, sizeOf $ cpc_ r, sizeOf $ cpc_GCGID r, sizeOf $ cpc_UseFlags r, sizeOf $ cpc_CPIRepeatingGroupLength r, sizeOf $ cpc_SpaceCharacterSection r, sizeOf $ cpc_UseFlags2 r, sizeOf $ cpc r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ cpc_Type r), viewField "_" (viewNumber $ cpc_ r), viewField "GCGID" (viewString $ cpc_GCGID r), viewField "UseFlags" (viewNumber $ cpc_UseFlags r), viewField "CPIRepeatingGroupLength" (viewNumber $ cpc_CPIRepeatingGroupLength r), viewField "SpaceCharacterSection" (viewNumber $ cpc_SpaceCharacterSection r), viewField "UseFlags2" (viewNumber $ cpc_UseFlags2 r), viewField "" (viewNStr $ cpc r) ]+ recType = fromEnum . cpc_Type++instance Rec CPD where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ CPD a01 a02 a03+ recPut bh r = do put bh $ cpd_Type r; put bh $ cpd_ r; put bh $ cpd r; return ()+ recSizeOf r = sum [ sizeOf $ cpd_Type r, sizeOf $ cpd_ r, sizeOf $ cpd r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ cpd_Type r), viewField "_" (viewNumber $ cpd_ r), viewField "" (viewNStr $ cpd r) ]+ recType = fromEnum . cpd_Type++instance Rec CPI where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ CPI a01 a02 a03+ recPut bh r = do put bh $ cpi_Type r; put bh $ cpi_ r; put bh $ cpi_Data r; return ()+ recSizeOf r = sum [ sizeOf $ cpi_Type r, sizeOf $ cpi_ r, sizeOf $ cpi_Data r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ cpi_Type r), viewField "_" (viewNumber $ cpi_ r), viewField "Data" (viewData $ cpi_Data r) ]+ recType = fromEnum . cpi_Type++instance Rec CPI_Data where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ CPI_Data a01 a02 a03+ recPut bh r = do put bh $ cpi_GCGID r; put bh $ cpi_Section r; put bh $ cpi_CodePoint r; return ()+ recSizeOf r = sum [ sizeOf $ cpi_GCGID r, sizeOf $ cpi_Section r, sizeOf $ cpi_CodePoint r ]+ recView r = viewRecord (typeOf r) [ viewField "GCGID" (viewString $ cpi_GCGID r), viewField "Section" (viewNumber $ cpi_Section r), viewField "CodePoint" (viewNumber $ cpi_CodePoint r) ]+ recType r = 0++instance RecData CPI CPI_Data where+ readData r = cpi_Data r+ writeData r cs = r { cpi_Data = cs }++instance Rec CTC where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ CTC a01 a02 a03+ recPut bh r = do put bh $ ctc_Type r; put bh $ ctc_ r; put bh $ ctc r; return ()+ recSizeOf r = sum [ sizeOf $ ctc_Type r, sizeOf $ ctc_ r, sizeOf $ ctc r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ctc_Type r), viewField "_" (viewNumber $ ctc_ r), viewField "" (viewNStr $ ctc r) ]+ recType = fromEnum . ctc_Type++instance Rec DXD where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ DXD a01 a02 a03+ recPut bh r = do put bh $ dxd_Type r; put bh $ dxd_ r; put bh $ dxd r; return ()+ recSizeOf r = sum [ sizeOf $ dxd_Type r, sizeOf $ dxd_ r, sizeOf $ dxd r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ dxd_Type r), viewField "_" (viewNumber $ dxd_ r), viewField "" (viewNStr $ dxd r) ]+ recType = fromEnum . dxd_Type++instance Rec EAG where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ EAG a01 a02 a03+ recPut bh r = do put bh $ eag_Type r; put bh $ eag_ r; put bh $ eag r; return ()+ recSizeOf r = sum [ sizeOf $ eag_Type r, sizeOf $ eag_ r, sizeOf $ eag r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ eag_Type r), viewField "_" (viewNumber $ eag_ r), viewField "" (viewNStr $ eag r) ]+ recType = fromEnum . eag_Type++instance Rec EBC where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ EBC a01 a02 a03+ recPut bh r = do put bh $ ebc_Type r; put bh $ ebc_ r; put bh $ ebc r; return ()+ recSizeOf r = sum [ sizeOf $ ebc_Type r, sizeOf $ ebc_ r, sizeOf $ ebc r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ebc_Type r), viewField "_" (viewNumber $ ebc_ r), viewField "" (viewNStr $ ebc r) ]+ recType = fromEnum . ebc_Type++instance Rec ECA where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ ECA a01 a02 a03+ recPut bh r = do put bh $ eca_Type r; put bh $ eca_ r; put bh $ eca r; return ()+ recSizeOf r = sum [ sizeOf $ eca_Type r, sizeOf $ eca_ r, sizeOf $ eca r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ eca_Type r), viewField "_" (viewNumber $ eca_ r), viewField "" (viewNStr $ eca r) ]+ recType = fromEnum . eca_Type++instance Rec ECF where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ ECF a01 a02 a03+ recPut bh r = do put bh $ ecf_Type r; put bh $ ecf_ r; put bh $ ecf r; return ()+ recSizeOf r = sum [ sizeOf $ ecf_Type r, sizeOf $ ecf_ r, sizeOf $ ecf r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ecf_Type r), viewField "_" (viewNumber $ ecf_ r), viewField "" (viewNStr $ ecf r) ]+ recType = fromEnum . ecf_Type++instance Rec ECP where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ ECP a01 a02 a03+ recPut bh r = do put bh $ ecp_Type r; put bh $ ecp_ r; put bh $ ecp r; return ()+ recSizeOf r = sum [ sizeOf $ ecp_Type r, sizeOf $ ecp_ r, sizeOf $ ecp r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ecp_Type r), viewField "_" (viewNumber $ ecp_ r), viewField "" (viewNStr $ ecp r) ]+ recType = fromEnum . ecp_Type++instance Rec EDG where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ EDG a01 a02 a03+ recPut bh r = do put bh $ edg_Type r; put bh $ edg_ r; put bh $ edg r; return ()+ recSizeOf r = sum [ sizeOf $ edg_Type r, sizeOf $ edg_ r, sizeOf $ edg r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ edg_Type r), viewField "_" (viewNumber $ edg_ r), viewField "" (viewNStr $ edg r) ]+ recType = fromEnum . edg_Type++instance Rec EDI where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ EDI a01 a02 a03+ recPut bh r = do put bh $ edi_Type r; put bh $ edi_ r; put bh $ edi r; return ()+ recSizeOf r = sum [ sizeOf $ edi_Type r, sizeOf $ edi_ r, sizeOf $ edi r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ edi_Type r), viewField "_" (viewNumber $ edi_ r), viewField "" (viewNStr $ edi r) ]+ recType = fromEnum . edi_Type++instance Rec EDM where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ EDM a01 a02 a03+ recPut bh r = do put bh $ edm_Type r; put bh $ edm_ r; put bh $ edm r; return ()+ recSizeOf r = sum [ sizeOf $ edm_Type r, sizeOf $ edm_ r, sizeOf $ edm r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ edm_Type r), viewField "_" (viewNumber $ edm_ r), viewField "" (viewNStr $ edm r) ]+ recType = fromEnum . edm_Type++instance Rec EDT where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ EDT a01 a02 a03+ recPut bh r = do put bh $ edt_Type r; put bh $ edt_ r; put bh $ edt r; return ()+ recSizeOf r = sum [ sizeOf $ edt_Type r, sizeOf $ edt_ r, sizeOf $ edt r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ edt_Type r), viewField "_" (viewNumber $ edt_ r), viewField "" (viewNStr $ edt r) ]+ recType = fromEnum . edt_Type++instance Rec EDX where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ EDX a01 a02 a03+ recPut bh r = do put bh $ edx_Type r; put bh $ edx_ r; put bh $ edx r; return ()+ recSizeOf r = sum [ sizeOf $ edx_Type r, sizeOf $ edx_ r, sizeOf $ edx r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ edx_Type r), viewField "_" (viewNumber $ edx_ r), viewField "" (viewNStr $ edx r) ]+ recType = fromEnum . edx_Type++instance Rec EFG where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ EFG a01 a02 a03+ recPut bh r = do put bh $ efg_Type r; put bh $ efg_ r; put bh $ efg r; return ()+ recSizeOf r = sum [ sizeOf $ efg_Type r, sizeOf $ efg_ r, sizeOf $ efg r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ efg_Type r), viewField "_" (viewNumber $ efg_ r), viewField "" (viewNStr $ efg r) ]+ recType = fromEnum . efg_Type++instance Rec EFM where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ EFM a01 a02 a03+ recPut bh r = do put bh $ efm_Type r; put bh $ efm_ r; put bh $ efm r; return ()+ recSizeOf r = sum [ sizeOf $ efm_Type r, sizeOf $ efm_ r, sizeOf $ efm r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ efm_Type r), viewField "_" (viewNumber $ efm_ r), viewField "" (viewNStr $ efm r) ]+ recType = fromEnum . efm_Type++instance Rec EFN where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ EFN a01 a02 a03+ recPut bh r = do put bh $ efn_Type r; put bh $ efn_ r; put bh $ efn r; return ()+ recSizeOf r = sum [ sizeOf $ efn_Type r, sizeOf $ efn_ r, sizeOf $ efn r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ efn_Type r), viewField "_" (viewNumber $ efn_ r), viewField "" (viewNStr $ efn r) ]+ recType = fromEnum . efn_Type++instance Rec EGR where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ EGR a01 a02 a03+ recPut bh r = do put bh $ egr_Type r; put bh $ egr_ r; put bh $ egr r; return ()+ recSizeOf r = sum [ sizeOf $ egr_Type r, sizeOf $ egr_ r, sizeOf $ egr r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ egr_Type r), viewField "_" (viewNumber $ egr_ r), viewField "" (viewNStr $ egr r) ]+ recType = fromEnum . egr_Type++instance Rec EII where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ EII a01 a02 a03+ recPut bh r = do put bh $ eii_Type r; put bh $ eii_ r; put bh $ eii_ImageObjectName r; return ()+ recSizeOf r = sum [ sizeOf $ eii_Type r, sizeOf $ eii_ r, sizeOf $ eii_ImageObjectName r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ eii_Type r), viewField "_" (viewNumber $ eii_ r), viewField "ImageObjectName" (viewString $ eii_ImageObjectName r) ]+ recType = fromEnum . eii_Type++instance Rec EIM where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ EIM a01 a02 a03+ recPut bh r = do put bh $ eim_Type r; put bh $ eim_ r; put bh $ eim r; return ()+ recSizeOf r = sum [ sizeOf $ eim_Type r, sizeOf $ eim_ r, sizeOf $ eim r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ eim_Type r), viewField "_" (viewNumber $ eim_ r), viewField "" (viewNStr $ eim r) ]+ recType = fromEnum . eim_Type++instance Rec EMM where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ EMM a01 a02 a03+ recPut bh r = do put bh $ emm_Type r; put bh $ emm_ r; put bh $ emm r; return ()+ recSizeOf r = sum [ sizeOf $ emm_Type r, sizeOf $ emm_ r, sizeOf $ emm r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ emm_Type r), viewField "_" (viewNumber $ emm_ r), viewField "" (viewNStr $ emm r) ]+ recType = fromEnum . emm_Type++instance Rec EMO where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ EMO a01 a02 a03+ recPut bh r = do put bh $ emo_Type r; put bh $ emo_ r; put bh $ emo r; return ()+ recSizeOf r = sum [ sizeOf $ emo_Type r, sizeOf $ emo_ r, sizeOf $ emo r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ emo_Type r), viewField "_" (viewNumber $ emo_ r), viewField "" (viewNStr $ emo r) ]+ recType = fromEnum . emo_Type++instance Rec ENG where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ ENG a01 a02 a03+ recPut bh r = do put bh $ eng_Type r; put bh $ eng_ r; put bh $ eng r; return ()+ recSizeOf r = sum [ sizeOf $ eng_Type r, sizeOf $ eng_ r, sizeOf $ eng r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ eng_Type r), viewField "_" (viewNumber $ eng_ r), viewField "" (viewNStr $ eng r) ]+ recType = fromEnum . eng_Type++instance Rec EOC where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ EOC a01 a02 a03+ recPut bh r = do put bh $ eoc_Type r; put bh $ eoc_ r; put bh $ eoc r; return ()+ recSizeOf r = sum [ sizeOf $ eoc_Type r, sizeOf $ eoc_ r, sizeOf $ eoc r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ eoc_Type r), viewField "_" (viewNumber $ eoc_ r), viewField "" (viewNStr $ eoc r) ]+ recType = fromEnum . eoc_Type++instance Rec EOG where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ EOG a01 a02 a03+ recPut bh r = do put bh $ eog_Type r; put bh $ eog_ r; put bh $ eog r; return ()+ recSizeOf r = sum [ sizeOf $ eog_Type r, sizeOf $ eog_ r, sizeOf $ eog r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ eog_Type r), viewField "_" (viewNumber $ eog_ r), viewField "" (viewNStr $ eog r) ]+ recType = fromEnum . eog_Type++instance Rec EPG where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ EPG a01 a02 a03+ recPut bh r = do put bh $ epg_Type r; put bh $ epg_ r; put bh $ epg r; return ()+ recSizeOf r = sum [ sizeOf $ epg_Type r, sizeOf $ epg_ r, sizeOf $ epg r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ epg_Type r), viewField "_" (viewNumber $ epg_ r), viewField "" (viewNStr $ epg r) ]+ recType = fromEnum . epg_Type++instance Rec EPM where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ EPM a01 a02 a03+ recPut bh r = do put bh $ epm_Type r; put bh $ epm_ r; put bh $ epm r; return ()+ recSizeOf r = sum [ sizeOf $ epm_Type r, sizeOf $ epm_ r, sizeOf $ epm r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ epm_Type r), viewField "_" (viewNumber $ epm_ r), viewField "" (viewNStr $ epm r) ]+ recType = fromEnum . epm_Type++instance Rec EPS where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ EPS a01 a02 a03+ recPut bh r = do put bh $ eps_Type r; put bh $ eps_ r; put bh $ eps r; return ()+ recSizeOf r = sum [ sizeOf $ eps_Type r, sizeOf $ eps_ r, sizeOf $ eps r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ eps_Type r), viewField "_" (viewNumber $ eps_ r), viewField "" (viewNStr $ eps r) ]+ recType = fromEnum . eps_Type++instance Rec EPT where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ EPT a01 a02 a03+ recPut bh r = do put bh $ ept_Type r; put bh $ ept_ r; put bh $ ept r; return ()+ recSizeOf r = sum [ sizeOf $ ept_Type r, sizeOf $ ept_ r, sizeOf $ ept r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ept_Type r), viewField "_" (viewNumber $ ept_ r), viewField "" (viewNStr $ ept r) ]+ recType = fromEnum . ept_Type++instance Rec ER where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ ER a01 a02 a03+ recPut bh r = do put bh $ er_Type r; put bh $ er_ r; put bh $ er r; return ()+ recSizeOf r = sum [ sizeOf $ er_Type r, sizeOf $ er_ r, sizeOf $ er r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ er_Type r), viewField "_" (viewNumber $ er_ r), viewField "" (viewNStr $ er r) ]+ recType = fromEnum . er_Type++instance Rec ERG where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ ERG a01 a02 a03+ recPut bh r = do put bh $ erg_Type r; put bh $ erg_ r; put bh $ erg r; return ()+ recSizeOf r = sum [ sizeOf $ erg_Type r, sizeOf $ erg_ r, sizeOf $ erg r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ erg_Type r), viewField "_" (viewNumber $ erg_ r), viewField "" (viewNStr $ erg r) ]+ recType = fromEnum . erg_Type++instance Rec ESG where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ ESG a01 a02 a03+ recPut bh r = do put bh $ esg_Type r; put bh $ esg_ r; put bh $ esg r; return ()+ recSizeOf r = sum [ sizeOf $ esg_Type r, sizeOf $ esg_ r, sizeOf $ esg r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ esg_Type r), viewField "_" (viewNumber $ esg_ r), viewField "" (viewNStr $ esg r) ]+ recType = fromEnum . esg_Type++instance Rec FGD where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ FGD a01 a02 a03+ recPut bh r = do put bh $ fgd_Type r; put bh $ fgd_ r; put bh $ fgd r; return ()+ recSizeOf r = sum [ sizeOf $ fgd_Type r, sizeOf $ fgd_ r, sizeOf $ fgd r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ fgd_Type r), viewField "_" (viewNumber $ fgd_ r), viewField "" (viewNStr $ fgd r) ]+ recType = fromEnum . fgd_Type++instance Rec FNC where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; a04 <- get bh; a05 <- get bh; a06 <- get bh; a07 <- get bh; a08 <- get bh; a09 <- get bh; a10 <- get bh; a11 <- get bh; a12 <- get bh; a13 <- get bh; a14 <- get bh; a15 <- get bh; a16 <- get bh; a17 <- get bh; a18 <- get bh; a19 <- get bh; return $ FNC a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19+ recPut bh r = do put bh $ fnc_Type r; put bh $ fnc_ r; put bh $ fnc_Constant r; put bh $ fnc_PatternTechnologyIdentifier r; put bh $ fnc_FNCReserved1 r; put bh $ fnc_UseFlags r; put bh $ fnc_UnitXBase r; put bh $ fnc_UnitYBase r; put bh $ fnc_UnitXValue r; put bh $ fnc_UnitYValue r; put bh $ fnc_MaxWidth r; put bh $ fnc_MaxHeight r; put bh $ fnc_FNORepeatingGroupLength r; put bh $ fnc_FNIRepeatingGroupLength r; put bh $ fnc_PatternDataAlignmentCode r; put bh $ fnc_PatternDataCount1 r; put bh $ fnc_FNPRepeatingGroupLength r; put bh $ fnc_FNMRepeatingGroupLength r; put bh $ fnc r; return ()+ recSizeOf r = sum [ sizeOf $ fnc_Type r, sizeOf $ fnc_ r, sizeOf $ fnc_Constant r, sizeOf $ fnc_PatternTechnologyIdentifier r, sizeOf $ fnc_FNCReserved1 r, sizeOf $ fnc_UseFlags r, sizeOf $ fnc_UnitXBase r, sizeOf $ fnc_UnitYBase r, sizeOf $ fnc_UnitXValue r, sizeOf $ fnc_UnitYValue r, sizeOf $ fnc_MaxWidth r, sizeOf $ fnc_MaxHeight r, sizeOf $ fnc_FNORepeatingGroupLength r, sizeOf $ fnc_FNIRepeatingGroupLength r, sizeOf $ fnc_PatternDataAlignmentCode r, sizeOf $ fnc_PatternDataCount1 r, sizeOf $ fnc_FNPRepeatingGroupLength r, sizeOf $ fnc_FNMRepeatingGroupLength r, sizeOf $ fnc r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ fnc_Type r), viewField "_" (viewNumber $ fnc_ r), viewField "Constant" (viewString $ fnc_Constant r), viewField "PatternTechnologyIdentifier" (viewNumber $ fnc_PatternTechnologyIdentifier r), viewField "FNCReserved1" (viewString $ fnc_FNCReserved1 r), viewField "UseFlags" (viewNumber $ fnc_UseFlags r), viewField "UnitXBase" (viewNumber $ fnc_UnitXBase r), viewField "UnitYBase" (viewNumber $ fnc_UnitYBase r), viewField "UnitXValue" (viewNumber $ fnc_UnitXValue r), viewField "UnitYValue" (viewNumber $ fnc_UnitYValue r), viewField "MaxWidth" (viewNumber $ fnc_MaxWidth r), viewField "MaxHeight" (viewNumber $ fnc_MaxHeight r), viewField "FNORepeatingGroupLength" (viewNumber $ fnc_FNORepeatingGroupLength r), viewField "FNIRepeatingGroupLength" (viewNumber $ fnc_FNIRepeatingGroupLength r), viewField "PatternDataAlignmentCode" (viewNumber $ fnc_PatternDataAlignmentCode r), viewField "PatternDataCount1" (viewString $ fnc_PatternDataCount1 r), viewField "FNPRepeatingGroupLength" (viewNumber $ fnc_FNPRepeatingGroupLength r), viewField "FNMRepeatingGroupLength" (viewNumber $ fnc_FNMRepeatingGroupLength r), viewField "" (viewNStr $ fnc r) ]+ recType = fromEnum . fnc_Type++instance Rec FND where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ FND a01 a02 a03+ recPut bh r = do put bh $ fnd_Type r; put bh $ fnd_ r; put bh $ fnd r; return ()+ recSizeOf r = sum [ sizeOf $ fnd_Type r, sizeOf $ fnd_ r, sizeOf $ fnd r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ fnd_Type r), viewField "_" (viewNumber $ fnd_ r), viewField "" (viewNStr $ fnd r) ]+ recType = fromEnum . fnd_Type++instance Rec FNG where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ FNG a01 a02 a03+ recPut bh r = do put bh $ fng_Type r; put bh $ fng_ r; put bh $ fng r; return ()+ recSizeOf r = sum [ sizeOf $ fng_Type r, sizeOf $ fng_ r, sizeOf $ fng r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ fng_Type r), viewField "_" (viewNumber $ fng_ r), viewField "" (viewNStr $ fng r) ]+ recType = fromEnum . fng_Type++instance Rec FNI where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ FNI a01 a02 a03+ recPut bh r = do put bh $ fni_Type r; put bh $ fni_ r; put bh $ fni_Data r; return ()+ recSizeOf r = sum [ sizeOf $ fni_Type r, sizeOf $ fni_ r, sizeOf $ fni_Data r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ fni_Type r), viewField "_" (viewNumber $ fni_ r), viewField "Data" (viewData $ fni_Data r) ]+ recType = fromEnum . fni_Type++instance Rec FNI_Data where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; a04 <- get bh; a05 <- get bh; a06 <- get bh; a07 <- get bh; a08 <- get bh; a09 <- get bh; a10 <- get bh; a11 <- get bh; return $ FNI_Data a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11+ recPut bh r = do put bh $ fni_GCGID r; put bh $ fni_CharacterIncrement r; put bh $ fni_AscendHeight r; put bh $ fni_DescendDepth r; put bh $ fni_Reserved1 r; put bh $ fni_FNMCount r; put bh $ fni_ASpace r; put bh $ fni_BSpace r; put bh $ fni_CSpace r; put bh $ fni_Reserved2 r; put bh $ fni_BaseOffset r; return ()+ recSizeOf r = sum [ sizeOf $ fni_GCGID r, sizeOf $ fni_CharacterIncrement r, sizeOf $ fni_AscendHeight r, sizeOf $ fni_DescendDepth r, sizeOf $ fni_Reserved1 r, sizeOf $ fni_FNMCount r, sizeOf $ fni_ASpace r, sizeOf $ fni_BSpace r, sizeOf $ fni_CSpace r, sizeOf $ fni_Reserved2 r, sizeOf $ fni_BaseOffset r ]+ recView r = viewRecord (typeOf r) [ viewField "GCGID" (viewString $ fni_GCGID r), viewField "CharacterIncrement" (viewNumber $ fni_CharacterIncrement r), viewField "AscendHeight" (viewNumber $ fni_AscendHeight r), viewField "DescendDepth" (viewNumber $ fni_DescendDepth r), viewField "Reserved1" (viewNumber $ fni_Reserved1 r), viewField "FNMCount" (viewNumber $ fni_FNMCount r), viewField "ASpace" (viewNumber $ fni_ASpace r), viewField "BSpace" (viewNumber $ fni_BSpace r), viewField "CSpace" (viewNumber $ fni_CSpace r), viewField "Reserved2" (viewNumber $ fni_Reserved2 r), viewField "BaseOffset" (viewNumber $ fni_BaseOffset r) ]+ recType r = 0++instance RecData FNI FNI_Data where+ readData r = fni_Data r+ writeData r cs = r { fni_Data = cs }++instance Rec FNM where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ FNM a01 a02 a03+ recPut bh r = do put bh $ fnm_Type r; put bh $ fnm_ r; put bh $ fnm_Data r; return ()+ recSizeOf r = sum [ sizeOf $ fnm_Type r, sizeOf $ fnm_ r, sizeOf $ fnm_Data r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ fnm_Type r), viewField "_" (viewNumber $ fnm_ r), viewField "Data" (viewData $ fnm_Data r) ]+ recType = fromEnum . fnm_Type++instance Rec FNM_Data where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ FNM_Data a01 a02 a03+ recPut bh r = do put bh $ fnm_Width r; put bh $ fnm_Height r; put bh $ fnm_Offset r; return ()+ recSizeOf r = sum [ sizeOf $ fnm_Width r, sizeOf $ fnm_Height r, sizeOf $ fnm_Offset r ]+ recView r = viewRecord (typeOf r) [ viewField "Width" (viewNumber $ fnm_Width r), viewField "Height" (viewNumber $ fnm_Height r), viewField "Offset" (viewNumber $ fnm_Offset r) ]+ recType r = 0++instance RecData FNM FNM_Data where+ readData r = fnm_Data r+ writeData r cs = r { fnm_Data = cs }++instance Rec FNN where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ FNN a01 a02 a03+ recPut bh r = do put bh $ fnn_Type r; put bh $ fnn_ r; put bh $ fnn r; return ()+ recSizeOf r = sum [ sizeOf $ fnn_Type r, sizeOf $ fnn_ r, sizeOf $ fnn r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ fnn_Type r), viewField "_" (viewNumber $ fnn_ r), viewField "" (viewNStr $ fnn r) ]+ recType = fromEnum . fnn_Type++instance Rec FNO where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; a04 <- get bh; a05 <- get bh; a06 <- get bh; a07 <- get bh; a08 <- get bh; return $ FNO a01 a02 a03 a04 a05 a06 a07 a08+ recPut bh r = do put bh $ fno_Type r; put bh $ fno_ r; put bh $ fno_Reserved r; put bh $ fno_CharacterRotation r; put bh $ fno_MaxBaseOffset r; put bh $ fno_MaxCharacterIncrement r; put bh $ fno_SpaceCharacterIncrement r; put bh $ fno r; return ()+ recSizeOf r = sum [ sizeOf $ fno_Type r, sizeOf $ fno_ r, sizeOf $ fno_Reserved r, sizeOf $ fno_CharacterRotation r, sizeOf $ fno_MaxBaseOffset r, sizeOf $ fno_MaxCharacterIncrement r, sizeOf $ fno_SpaceCharacterIncrement r, sizeOf $ fno r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ fno_Type r), viewField "_" (viewNumber $ fno_ r), viewField "Reserved" (viewNumber $ fno_Reserved r), viewField "CharacterRotation" (viewNumber $ fno_CharacterRotation r), viewField "MaxBaseOffset" (viewNumber $ fno_MaxBaseOffset r), viewField "MaxCharacterIncrement" (viewNumber $ fno_MaxCharacterIncrement r), viewField "SpaceCharacterIncrement" (viewNumber $ fno_SpaceCharacterIncrement r), viewField "" (viewNStr $ fno r) ]+ recType = fromEnum . fno_Type++instance Rec FNP where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ FNP a01 a02 a03+ recPut bh r = do put bh $ fnp_Type r; put bh $ fnp_ r; put bh $ fnp r; return ()+ recSizeOf r = sum [ sizeOf $ fnp_Type r, sizeOf $ fnp_ r, sizeOf $ fnp r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ fnp_Type r), viewField "_" (viewNumber $ fnp_ r), viewField "" (viewNStr $ fnp r) ]+ recType = fromEnum . fnp_Type++instance Rec GAD where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ GAD a01 a02 a03+ recPut bh r = do put bh $ gad_Type r; put bh $ gad_ r; put bh $ gad r; return ()+ recSizeOf r = sum [ sizeOf $ gad_Type r, sizeOf $ gad_ r, sizeOf $ gad r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ gad_Type r), viewField "_" (viewNumber $ gad_ r), viewField "" (viewNStr $ gad r) ]+ recType = fromEnum . gad_Type++instance Rec GDD where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ GDD a01 a02 a03+ recPut bh r = do put bh $ gdd_Type r; put bh $ gdd_ r; put bh $ gdd r; return ()+ recSizeOf r = sum [ sizeOf $ gdd_Type r, sizeOf $ gdd_ r, sizeOf $ gdd r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ gdd_Type r), viewField "_" (viewNumber $ gdd_ r), viewField "" (viewNStr $ gdd r) ]+ recType = fromEnum . gdd_Type++instance Rec ICP where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; a04 <- get bh; a05 <- get bh; a06 <- get bh; a07 <- get bh; a08 <- get bh; return $ ICP a01 a02 a03 a04 a05 a06 a07 a08+ recPut bh r = do put bh $ icp_Type r; put bh $ icp_ r; put bh $ icp_XCellOffset r; put bh $ icp_YCellOffset r; put bh $ icp_XCellSize r; put bh $ icp_YCellSize r; put bh $ icp_XFillSize r; put bh $ icp_YFillSize r; return ()+ recSizeOf r = sum [ sizeOf $ icp_Type r, sizeOf $ icp_ r, sizeOf $ icp_XCellOffset r, sizeOf $ icp_YCellOffset r, sizeOf $ icp_XCellSize r, sizeOf $ icp_YCellSize r, sizeOf $ icp_XFillSize r, sizeOf $ icp_YFillSize r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ icp_Type r), viewField "_" (viewNumber $ icp_ r), viewField "XCellOffset" (viewNumber $ icp_XCellOffset r), viewField "YCellOffset" (viewNumber $ icp_YCellOffset r), viewField "XCellSize" (viewNumber $ icp_XCellSize r), viewField "YCellSize" (viewNumber $ icp_YCellSize r), viewField "XFillSize" (viewNumber $ icp_XFillSize r), viewField "YFillSize" (viewNumber $ icp_YFillSize r) ]+ recType = fromEnum . icp_Type++instance Rec IDD where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ IDD a01 a02 a03+ recPut bh r = do put bh $ idd_Type r; put bh $ idd_ r; put bh $ idd r; return ()+ recSizeOf r = sum [ sizeOf $ idd_Type r, sizeOf $ idd_ r, sizeOf $ idd r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ idd_Type r), viewField "_" (viewNumber $ idd_ r), viewField "" (viewNStr $ idd r) ]+ recType = fromEnum . idd_Type++instance Rec IEL where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ IEL a01 a02 a03+ recPut bh r = do put bh $ iel_Type r; put bh $ iel_ r; put bh $ iel r; return ()+ recSizeOf r = sum [ sizeOf $ iel_Type r, sizeOf $ iel_ r, sizeOf $ iel r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ iel_Type r), viewField "_" (viewNumber $ iel_ r), viewField "" (viewNStr $ iel r) ]+ recType = fromEnum . iel_Type++instance Rec IID where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; a04 <- get bh; a05 <- get bh; a06 <- get bh; a07 <- get bh; a08 <- get bh; a09 <- get bh; a10 <- get bh; a11 <- get bh; a12 <- get bh; a13 <- get bh; a14 <- get bh; return $ IID a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12 a13 a14+ recPut bh r = do put bh $ iid_Type r; put bh $ iid_ r; put bh $ iid_ConstantData1 r; put bh $ iid_XBase r; put bh $ iid_YBase r; put bh $ iid_XUnits r; put bh $ iid_YUnits r; put bh $ iid_XSize r; put bh $ iid_YSize r; put bh $ iid_ConstantData2 r; put bh $ iid_XCellSizeDefault r; put bh $ iid_YCellSizeDefault r; put bh $ iid_ConstantData3 r; put bh $ iid_Color r; return ()+ recSizeOf r = sum [ sizeOf $ iid_Type r, sizeOf $ iid_ r, sizeOf $ iid_ConstantData1 r, sizeOf $ iid_XBase r, sizeOf $ iid_YBase r, sizeOf $ iid_XUnits r, sizeOf $ iid_YUnits r, sizeOf $ iid_XSize r, sizeOf $ iid_YSize r, sizeOf $ iid_ConstantData2 r, sizeOf $ iid_XCellSizeDefault r, sizeOf $ iid_YCellSizeDefault r, sizeOf $ iid_ConstantData3 r, sizeOf $ iid_Color r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ iid_Type r), viewField "_" (viewNumber $ iid_ r), viewField "ConstantData1" (viewString $ iid_ConstantData1 r), viewField "XBase" (viewNumber $ iid_XBase r), viewField "YBase" (viewNumber $ iid_YBase r), viewField "XUnits" (viewNumber $ iid_XUnits r), viewField "YUnits" (viewNumber $ iid_YUnits r), viewField "XSize" (viewNumber $ iid_XSize r), viewField "YSize" (viewNumber $ iid_YSize r), viewField "ConstantData2" (viewString $ iid_ConstantData2 r), viewField "XCellSizeDefault" (viewNumber $ iid_XCellSizeDefault r), viewField "YCellSizeDefault" (viewNumber $ iid_YCellSizeDefault r), viewField "ConstantData3" (viewString $ iid_ConstantData3 r), viewField "Color" (viewNumber $ iid_Color r) ]+ recType = fromEnum . iid_Type++instance Rec IMM where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ IMM a01 a02 a03+ recPut bh r = do put bh $ imm_Type r; put bh $ imm_ r; put bh $ imm r; return ()+ recSizeOf r = sum [ sizeOf $ imm_Type r, sizeOf $ imm_ r, sizeOf $ imm r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ imm_Type r), viewField "_" (viewNumber $ imm_ r), viewField "" (viewNStr $ imm r) ]+ recType = fromEnum . imm_Type++instance Rec IOB where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ IOB a01 a02 a03+ recPut bh r = do put bh $ iob_Type r; put bh $ iob_ r; put bh $ iob r; return ()+ recSizeOf r = sum [ sizeOf $ iob_Type r, sizeOf $ iob_ r, sizeOf $ iob r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ iob_Type r), viewField "_" (viewNumber $ iob_ r), viewField "" (viewNStr $ iob r) ]+ recType = fromEnum . iob_Type++instance Rec IOC where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; a04 <- get bh; a05 <- get bh; a06 <- get bh; a07 <- get bh; a08 <- get bh; a09 <- get bh; a10 <- get bh; a11 <- get bh; a12 <- get bh; return $ IOC a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11 a12+ recPut bh r = do put bh $ ioc_Type r; put bh $ ioc_ r; put bh $ ioc_Reserved1 r; put bh $ ioc_XOffset r; put bh $ ioc_Reserved2 r; put bh $ ioc_YOffset r; put bh $ ioc_XOrientation r; put bh $ ioc_YOrientation r; put bh $ ioc_ConstantData1 r; put bh $ ioc_XMap r; put bh $ ioc_YMap r; put bh $ ioc_ConstantData2 r; return ()+ recSizeOf r = sum [ sizeOf $ ioc_Type r, sizeOf $ ioc_ r, sizeOf $ ioc_Reserved1 r, sizeOf $ ioc_XOffset r, sizeOf $ ioc_Reserved2 r, sizeOf $ ioc_YOffset r, sizeOf $ ioc_XOrientation r, sizeOf $ ioc_YOrientation r, sizeOf $ ioc_ConstantData1 r, sizeOf $ ioc_XMap r, sizeOf $ ioc_YMap r, sizeOf $ ioc_ConstantData2 r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ioc_Type r), viewField "_" (viewNumber $ ioc_ r), viewField "Reserved1" (viewString $ ioc_Reserved1 r), viewField "XOffset" (viewNumber $ ioc_XOffset r), viewField "Reserved2" (viewString $ ioc_Reserved2 r), viewField "YOffset" (viewNumber $ ioc_YOffset r), viewField "XOrientation" (viewNumber $ ioc_XOrientation r), viewField "YOrientation" (viewNumber $ ioc_YOrientation r), viewField "ConstantData1" (viewString $ ioc_ConstantData1 r), viewField "XMap" (viewNumber $ ioc_XMap r), viewField "YMap" (viewNumber $ ioc_YMap r), viewField "ConstantData2" (viewString $ ioc_ConstantData2 r) ]+ recType = fromEnum . ioc_Type++instance Rec IPD where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ IPD a01 a02 a03+ recPut bh r = do put bh $ ipd_Type r; put bh $ ipd_ r; put bh $ ipd r; return ()+ recSizeOf r = sum [ sizeOf $ ipd_Type r, sizeOf $ ipd_ r, sizeOf $ ipd r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ipd_Type r), viewField "_" (viewNumber $ ipd_ r), viewField "" (viewNStr $ ipd r) ]+ recType = fromEnum . ipd_Type++instance Rec IPG where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ IPG a01 a02 a03+ recPut bh r = do put bh $ ipg_Type r; put bh $ ipg_ r; put bh $ ipg r; return ()+ recSizeOf r = sum [ sizeOf $ ipg_Type r, sizeOf $ ipg_ r, sizeOf $ ipg r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ipg_Type r), viewField "_" (viewNumber $ ipg_ r), viewField "" (viewNStr $ ipg r) ]+ recType = fromEnum . ipg_Type++instance Rec IPO where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ IPO a01 a02 a03+ recPut bh r = do put bh $ ipo_Type r; put bh $ ipo_ r; put bh $ ipo r; return ()+ recSizeOf r = sum [ sizeOf $ ipo_Type r, sizeOf $ ipo_ r, sizeOf $ ipo r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ipo_Type r), viewField "_" (viewNumber $ ipo_ r), viewField "" (viewNStr $ ipo r) ]+ recType = fromEnum . ipo_Type++instance Rec IPS where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ IPS a01 a02 a03+ recPut bh r = do put bh $ ips_Type r; put bh $ ips_ r; put bh $ ips r; return ()+ recSizeOf r = sum [ sizeOf $ ips_Type r, sizeOf $ ips_ r, sizeOf $ ips r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ips_Type r), viewField "_" (viewNumber $ ips_ r), viewField "" (viewNStr $ ips r) ]+ recType = fromEnum . ips_Type++instance Rec IRD where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ IRD a01 a02 a03+ recPut bh r = do put bh $ ird_Type r; put bh $ ird_ r; put bh $ ird_ImageData r; return ()+ recSizeOf r = sum [ sizeOf $ ird_Type r, sizeOf $ ird_ r, sizeOf $ ird_ImageData r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ird_Type r), viewField "_" (viewNumber $ ird_ r), viewField "ImageData" (viewNStr $ ird_ImageData r) ]+ recType = fromEnum . ird_Type++instance Rec LLE where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ LLE a01 a02 a03+ recPut bh r = do put bh $ lle_Type r; put bh $ lle_ r; put bh $ lle r; return ()+ recSizeOf r = sum [ sizeOf $ lle_Type r, sizeOf $ lle_ r, sizeOf $ lle r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ lle_Type r), viewField "_" (viewNumber $ lle_ r), viewField "" (viewNStr $ lle r) ]+ recType = fromEnum . lle_Type++instance Rec LNC where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ LNC a01 a02 a03+ recPut bh r = do put bh $ lnc_Type r; put bh $ lnc_ r; put bh $ lnc r; return ()+ recSizeOf r = sum [ sizeOf $ lnc_Type r, sizeOf $ lnc_ r, sizeOf $ lnc r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ lnc_Type r), viewField "_" (viewNumber $ lnc_ r), viewField "" (viewNStr $ lnc r) ]+ recType = fromEnum . lnc_Type++instance Rec LND where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ LND a01 a02 a03+ recPut bh r = do put bh $ lnd_Type r; put bh $ lnd_ r; put bh $ lnd r; return ()+ recSizeOf r = sum [ sizeOf $ lnd_Type r, sizeOf $ lnd_ r, sizeOf $ lnd r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ lnd_Type r), viewField "_" (viewNumber $ lnd_ r), viewField "" (viewNStr $ lnd r) ]+ recType = fromEnum . lnd_Type++instance Rec MBC where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ MBC a01 a02 a03+ recPut bh r = do put bh $ mbc_Type r; put bh $ mbc_ r; put bh $ mbc r; return ()+ recSizeOf r = sum [ sizeOf $ mbc_Type r, sizeOf $ mbc_ r, sizeOf $ mbc r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ mbc_Type r), viewField "_" (viewNumber $ mbc_ r), viewField "" (viewNStr $ mbc r) ]+ recType = fromEnum . mbc_Type++instance Rec MCA where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ MCA a01 a02 a03+ recPut bh r = do put bh $ mca_Type r; put bh $ mca_ r; put bh $ mca r; return ()+ recSizeOf r = sum [ sizeOf $ mca_Type r, sizeOf $ mca_ r, sizeOf $ mca r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ mca_Type r), viewField "_" (viewNumber $ mca_ r), viewField "" (viewNStr $ mca r) ]+ recType = fromEnum . mca_Type++instance Rec MCC where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ MCC a01 a02 a03+ recPut bh r = do put bh $ mcc_Type r; put bh $ mcc_ r; put bh $ mcc r; return ()+ recSizeOf r = sum [ sizeOf $ mcc_Type r, sizeOf $ mcc_ r, sizeOf $ mcc r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ mcc_Type r), viewField "_" (viewNumber $ mcc_ r), viewField "" (viewNStr $ mcc r) ]+ recType = fromEnum . mcc_Type++instance Rec MCD where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ MCD a01 a02 a03+ recPut bh r = do put bh $ mcd_Type r; put bh $ mcd_ r; put bh $ mcd r; return ()+ recSizeOf r = sum [ sizeOf $ mcd_Type r, sizeOf $ mcd_ r, sizeOf $ mcd r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ mcd_Type r), viewField "_" (viewNumber $ mcd_ r), viewField "" (viewNStr $ mcd r) ]+ recType = fromEnum . mcd_Type+
+ src/OpenAFP/Prelude/InstancePTX.hs view
@@ -0,0 +1,211 @@+{-# OPTIONS -fglasgow-exts #-}++module OpenAFP.Prelude.InstancePTX () where+import OpenAFP.Types+import OpenAFP.Records+import OpenAFP.Internals++recOf :: (ChunkBuf c n b, Binary (Record r)) => c -> IO r+recOf c = return . fromRecord =<< chunkToRecord c++apply :: (MonadIO m) => (t -> IO a) -> t -> (a -> m b) -> m b+apply ctr c f = f =<< (liftIO $ ctr c)++instance Rec PTX_AMB where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ PTX_AMB a01 a02+ recPut bh r = do put bh $ ptx_amb_Type r; put bh $ ptx_amb r; return ()+ recSizeOf r = sum [ sizeOf $ ptx_amb_Type r, sizeOf $ ptx_amb r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ptx_amb_Type r), viewField "" (viewNumber $ ptx_amb r) ]+ recType = fromEnum . ptx_amb_Type++instance Rec PTX_AMI where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ PTX_AMI a01 a02+ recPut bh r = do put bh $ ptx_ami_Type r; put bh $ ptx_ami r; return ()+ recSizeOf r = sum [ sizeOf $ ptx_ami_Type r, sizeOf $ ptx_ami r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ptx_ami_Type r), viewField "" (viewNumber $ ptx_ami r) ]+ recType = fromEnum . ptx_ami_Type++instance Rec PTX_BLN where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ PTX_BLN a01 a02+ recPut bh r = do put bh $ ptx_bln_Type r; put bh $ ptx_bln r; return ()+ recSizeOf r = sum [ sizeOf $ ptx_bln_Type r, sizeOf $ ptx_bln r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ptx_bln_Type r), viewField "" (viewNStr $ ptx_bln r) ]+ recType = fromEnum . ptx_bln_Type++instance Rec PTX_BSU where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ PTX_BSU a01 a02+ recPut bh r = do put bh $ ptx_bsu_Type r; put bh $ ptx_bsu r; return ()+ recSizeOf r = sum [ sizeOf $ ptx_bsu_Type r, sizeOf $ ptx_bsu r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ptx_bsu_Type r), viewField "" (viewNStr $ ptx_bsu r) ]+ recType = fromEnum . ptx_bsu_Type++instance Rec PTX_DBR where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ PTX_DBR a01 a02+ recPut bh r = do put bh $ ptx_dbr_Type r; put bh $ ptx_dbr r; return ()+ recSizeOf r = sum [ sizeOf $ ptx_dbr_Type r, sizeOf $ ptx_dbr r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ptx_dbr_Type r), viewField "" (viewNStr $ ptx_dbr r) ]+ recType = fromEnum . ptx_dbr_Type++instance Rec PTX_DIR where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ PTX_DIR a01 a02+ recPut bh r = do put bh $ ptx_dir_Type r; put bh $ ptx_dir r; return ()+ recSizeOf r = sum [ sizeOf $ ptx_dir_Type r, sizeOf $ ptx_dir r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ptx_dir_Type r), viewField "" (viewNStr $ ptx_dir r) ]+ recType = fromEnum . ptx_dir_Type++instance Rec PTX_ESU where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ PTX_ESU a01 a02+ recPut bh r = do put bh $ ptx_esu_Type r; put bh $ ptx_esu r; return ()+ recSizeOf r = sum [ sizeOf $ ptx_esu_Type r, sizeOf $ ptx_esu r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ptx_esu_Type r), viewField "" (viewNStr $ ptx_esu r) ]+ recType = fromEnum . ptx_esu_Type++instance Rec PTX_NOP where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ PTX_NOP a01 a02+ recPut bh r = do put bh $ ptx_nop_Type r; put bh $ ptx_nop r; return ()+ recSizeOf r = sum [ sizeOf $ ptx_nop_Type r, sizeOf $ ptx_nop r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ptx_nop_Type r), viewField "" (viewNStr $ ptx_nop r) ]+ recType = fromEnum . ptx_nop_Type++instance Rec PTX_RMB where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ PTX_RMB a01 a02+ recPut bh r = do put bh $ ptx_rmb_Type r; put bh $ ptx_rmb r; return ()+ recSizeOf r = sum [ sizeOf $ ptx_rmb_Type r, sizeOf $ ptx_rmb r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ptx_rmb_Type r), viewField "" (viewNumber $ ptx_rmb r) ]+ recType = fromEnum . ptx_rmb_Type++instance Rec PTX_RMI where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ PTX_RMI a01 a02+ recPut bh r = do put bh $ ptx_rmi_Type r; put bh $ ptx_rmi r; return ()+ recSizeOf r = sum [ sizeOf $ ptx_rmi_Type r, sizeOf $ ptx_rmi r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ptx_rmi_Type r), viewField "" (viewNumber $ ptx_rmi r) ]+ recType = fromEnum . ptx_rmi_Type++instance Rec PTX_RPS where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ PTX_RPS a01 a02+ recPut bh r = do put bh $ ptx_rps_Type r; put bh $ ptx_rps r; return ()+ recSizeOf r = sum [ sizeOf $ ptx_rps_Type r, sizeOf $ ptx_rps r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ptx_rps_Type r), viewField "" (viewNStr $ ptx_rps r) ]+ recType = fromEnum . ptx_rps_Type++instance Rec PTX_SBI where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ PTX_SBI a01 a02+ recPut bh r = do put bh $ ptx_sbi_Type r; put bh $ ptx_sbi r; return ()+ recSizeOf r = sum [ sizeOf $ ptx_sbi_Type r, sizeOf $ ptx_sbi r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ptx_sbi_Type r), viewField "" (viewNumber $ ptx_sbi r) ]+ recType = fromEnum . ptx_sbi_Type++instance Rec PTX_SCFL where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ PTX_SCFL a01 a02+ recPut bh r = do put bh $ ptx_scfl_Type r; put bh $ ptx_scfl r; return ()+ recSizeOf r = sum [ sizeOf $ ptx_scfl_Type r, sizeOf $ ptx_scfl r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ptx_scfl_Type r), viewField "" (viewNumber $ ptx_scfl r) ]+ recType = fromEnum . ptx_scfl_Type++instance Rec PTX_SIA where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ PTX_SIA a01 a02+ recPut bh r = do put bh $ ptx_sia_Type r; put bh $ ptx_sia r; return ()+ recSizeOf r = sum [ sizeOf $ ptx_sia_Type r, sizeOf $ ptx_sia r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ptx_sia_Type r), viewField "" (viewNumber $ ptx_sia r) ]+ recType = fromEnum . ptx_sia_Type++instance Rec PTX_SIM where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ PTX_SIM a01 a02+ recPut bh r = do put bh $ ptx_sim_Type r; put bh $ ptx_sim r; return ()+ recSizeOf r = sum [ sizeOf $ ptx_sim_Type r, sizeOf $ ptx_sim r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ptx_sim_Type r), viewField "" (viewNumber $ ptx_sim r) ]+ recType = fromEnum . ptx_sim_Type++instance Rec PTX_STC where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ PTX_STC a01 a02+ recPut bh r = do put bh $ ptx_stc_Type r; put bh $ ptx_stc r; return ()+ recSizeOf r = sum [ sizeOf $ ptx_stc_Type r, sizeOf $ ptx_stc r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ptx_stc_Type r), viewField "" (viewNStr $ ptx_stc r) ]+ recType = fromEnum . ptx_stc_Type++instance Rec PTX_STO where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ PTX_STO a01 a02 a03+ recPut bh r = do put bh $ ptx_sto_Type r; put bh $ ptx_sto_Orientation r; put bh $ ptx_sto_WrapDirection r; return ()+ recSizeOf r = sum [ sizeOf $ ptx_sto_Type r, sizeOf $ ptx_sto_Orientation r, sizeOf $ ptx_sto_WrapDirection r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ptx_sto_Type r), viewField "Orientation" (viewNumber $ ptx_sto_Orientation r), viewField "WrapDirection" (viewNumber $ ptx_sto_WrapDirection r) ]+ recType = fromEnum . ptx_sto_Type++instance Rec PTX_SVI where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ PTX_SVI a01 a02+ recPut bh r = do put bh $ ptx_svi_Type r; put bh $ ptx_svi r; return ()+ recSizeOf r = sum [ sizeOf $ ptx_svi_Type r, sizeOf $ ptx_svi r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ptx_svi_Type r), viewField "" (viewNumber $ ptx_svi r) ]+ recType = fromEnum . ptx_svi_Type++instance Rec PTX_TRN where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ PTX_TRN a01 a02+ recPut bh r = do put bh $ ptx_trn_Type r; put bh $ ptx_trn r; return ()+ recSizeOf r = sum [ sizeOf $ ptx_trn_Type r, sizeOf $ ptx_trn r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ptx_trn_Type r), viewField "" (viewNStr $ ptx_trn r) ]+ recType = fromEnum . ptx_trn_Type++instance ChunkBuf PTX_ N1 Buffer1 where+ chunkCon = PTX_+ chunkDecon (PTX_ x) = x+ chunkTypeLookup = lookupPTX+ chunkApply = applyPTX++applyPTX :: forall m x. (MonadIO m)+ => N1 -> PTX_ -> (forall a. (Rec a) => (a -> m x)) -> m x+applyPTX x rec f = case x of+ 0x74 -> apply recOf rec (f :: PTX_STC -> m x)+ 0x75 -> apply recOf rec (f :: PTX_STC -> m x)+ 0xC0 -> apply recOf rec (f :: PTX_SIM -> m x)+ 0xC1 -> apply recOf rec (f :: PTX_SIM -> m x)+ 0xC2 -> apply recOf rec (f :: PTX_SIA -> m x)+ 0xC3 -> apply recOf rec (f :: PTX_SIA -> m x)+ 0xC4 -> apply recOf rec (f :: PTX_SVI -> m x)+ 0xC5 -> apply recOf rec (f :: PTX_SVI -> m x)+ 0xC6 -> apply recOf rec (f :: PTX_AMI -> m x)+ 0xC7 -> apply recOf rec (f :: PTX_AMI -> m x)+ 0xC8 -> apply recOf rec (f :: PTX_RMI -> m x)+ 0xC9 -> apply recOf rec (f :: PTX_RMI -> m x)+ 0xD0 -> apply recOf rec (f :: PTX_SBI -> m x)+ 0xD1 -> apply recOf rec (f :: PTX_SBI -> m x)+ 0xD2 -> apply recOf rec (f :: PTX_AMB -> m x)+ 0xD3 -> apply recOf rec (f :: PTX_AMB -> m x)+ 0xD4 -> apply recOf rec (f :: PTX_RMB -> m x)+ 0xD5 -> apply recOf rec (f :: PTX_RMB -> m x)+ 0xD8 -> apply recOf rec (f :: PTX_BLN -> m x)+ 0xD9 -> apply recOf rec (f :: PTX_BLN -> m x)+ 0xDA -> apply recOf rec (f :: PTX_TRN -> m x)+ 0xDB -> apply recOf rec (f :: PTX_TRN -> m x)+ 0xE4 -> apply recOf rec (f :: PTX_DIR -> m x)+ 0xE5 -> apply recOf rec (f :: PTX_DIR -> m x)+ 0xE6 -> apply recOf rec (f :: PTX_DBR -> m x)+ 0xE7 -> apply recOf rec (f :: PTX_DBR -> m x)+ 0xEE -> apply recOf rec (f :: PTX_RPS -> m x)+ 0xEF -> apply recOf rec (f :: PTX_RPS -> m x)+ 0xF0 -> apply recOf rec (f :: PTX_SCFL -> m x)+ 0xF1 -> apply recOf rec (f :: PTX_SCFL -> m x)+ 0xF2 -> apply recOf rec (f :: PTX_BSU -> m x)+ 0xF3 -> apply recOf rec (f :: PTX_BSU -> m x)+ 0xF4 -> apply recOf rec (f :: PTX_ESU -> m x)+ 0xF5 -> apply recOf rec (f :: PTX_ESU -> m x)+ 0xF6 -> apply recOf rec (f :: PTX_STO -> m x)+ 0xF7 -> apply recOf rec (f :: PTX_STO -> m x)+ 0xF8 -> apply recOf rec (f :: PTX_NOP -> m x)+ 0xF9 -> apply recOf rec (f :: PTX_NOP -> m x)+ _ -> apply recOf rec (f :: Unknown -> m x)++instance RecChunk PTX PTX_ N1 Buffer1 where+ readChunks r = ptx_Chunks r+ writeChunks r io = do+ cs <- io+ return $ r { ptx_Chunks = cs }++instance Rec PTX_ where+ recSizeOf c = 1 + (snd $ chunkToPStrLen c)++instance Rec PTX where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; a04 <- get bh; return $ PTX a01 a02 a03 a04+ recPut bh r = do put bh $ ptx_Type r; put bh $ ptx_ r; put bh $ ptx_EscapeSequence r; put bh $ ptx_Chunks r; return ()+ recSizeOf r = sum [ sizeOf $ ptx_Type r, sizeOf $ ptx_ r, sizeOf $ ptx_EscapeSequence r, sizeOf $ ptx_Chunks r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ptx_Type r), viewField "_" (viewNumber $ ptx_ r), viewField "EscapeSequence" (viewNumber $ ptx_EscapeSequence r), viewField "Chunks" (viewChunks $ ptx_Chunks r) ]+ recType = fromEnum . ptx_Type+
+ src/OpenAFP/Prelude/InstanceT.hs view
@@ -0,0 +1,478 @@+{-# OPTIONS -fglasgow-exts #-}++module OpenAFP.Prelude.InstanceT () where+import OpenAFP.Types+import OpenAFP.Records+import OpenAFP.Internals++recOf :: (ChunkBuf c n b, Binary (Record r)) => c -> IO r+recOf c = return . fromRecord =<< chunkToRecord c++apply :: (MonadIO m) => (t -> IO a) -> t -> (a -> m b) -> m b+apply ctr c f = f =<< (liftIO $ ctr c)++instance Rec T_AD where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_AD a01 a02+ recPut bh r = do put bh $ t_ad_Type r; put bh $ t_ad r; return ()+ recSizeOf r = sum [ sizeOf $ t_ad_Type r, sizeOf $ t_ad r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_ad_Type r), viewField "" (viewNStr $ t_ad r) ]+ recType = fromEnum . t_ad_Type++instance Rec T_AQ where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_AQ a01 a02+ recPut bh r = do put bh $ t_aq_Type r; put bh $ t_aq r; return ()+ recSizeOf r = sum [ sizeOf $ t_aq_Type r, sizeOf $ t_aq r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_aq_Type r), viewField "" (viewNStr $ t_aq r) ]+ recType = fromEnum . t_aq_Type++instance Rec T_AV where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_AV a01 a02+ recPut bh r = do put bh $ t_av_Type r; put bh $ t_av r; return ()+ recSizeOf r = sum [ sizeOf $ t_av_Type r, sizeOf $ t_av r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_av_Type r), viewField "" (viewNStr $ t_av r) ]+ recType = fromEnum . t_av_Type++instance Rec T_C where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_C a01 a02+ recPut bh r = do put bh $ t_c_Type r; put bh $ t_c r; return ()+ recSizeOf r = sum [ sizeOf $ t_c_Type r, sizeOf $ t_c r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_c_Type r), viewField "" (viewNStr $ t_c r) ]+ recType = fromEnum . t_c_Type++instance Rec T_CF where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_CF a01 a02+ recPut bh r = do put bh $ t_cf_Type r; put bh $ t_cf r; return ()+ recSizeOf r = sum [ sizeOf $ t_cf_Type r, sizeOf $ t_cf r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_cf_Type r), viewField "" (viewNStr $ t_cf r) ]+ recType = fromEnum . t_cf_Type++instance Rec T_CGCSGI where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_CGCSGI a01 a02+ recPut bh r = do put bh $ t_cgcsgi_Type r; put bh $ t_cgcsgi r; return ()+ recSizeOf r = sum [ sizeOf $ t_cgcsgi_Type r, sizeOf $ t_cgcsgi r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_cgcsgi_Type r), viewField "" (viewNStr $ t_cgcsgi r) ]+ recType = fromEnum . t_cgcsgi_Type++instance Rec T_CR where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_CR a01 a02+ recPut bh r = do put bh $ t_cr_Type r; put bh $ t_cr r; return ()+ recSizeOf r = sum [ sizeOf $ t_cr_Type r, sizeOf $ t_cr r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_cr_Type r), viewField "" (viewNStr $ t_cr r) ]+ recType = fromEnum . t_cr_Type++instance Rec T_CS where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_CS a01 a02+ recPut bh r = do put bh $ t_cs_Type r; put bh $ t_cs r; return ()+ recSizeOf r = sum [ sizeOf $ t_cs_Type r, sizeOf $ t_cs r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_cs_Type r), viewField "" (viewNStr $ t_cs r) ]+ recType = fromEnum . t_cs_Type++instance Rec T_DP where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_DP a01 a02+ recPut bh r = do put bh $ t_dp_Type r; put bh $ t_dp r; return ()+ recSizeOf r = sum [ sizeOf $ t_dp_Type r, sizeOf $ t_dp r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_dp_Type r), viewField "" (viewNStr $ t_dp r) ]+ recType = fromEnum . t_dp_Type++instance Rec T_EF where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_EF a01 a02+ recPut bh r = do put bh $ t_ef_Type r; put bh $ t_ef r; return ()+ recSizeOf r = sum [ sizeOf $ t_ef_Type r, sizeOf $ t_ef r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_ef_Type r), viewField "" (viewNStr $ t_ef r) ]+ recType = fromEnum . t_ef_Type++instance Rec T_ERLI where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_ERLI a01 a02+ recPut bh r = do put bh $ t_erli_Type r; put bh $ t_erli r; return ()+ recSizeOf r = sum [ sizeOf $ t_erli_Type r, sizeOf $ t_erli r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_erli_Type r), viewField "" (viewNStr $ t_erli r) ]+ recType = fromEnum . t_erli_Type++instance Rec T_ESI where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_ESI a01 a02+ recPut bh r = do put bh $ t_esi_Type r; put bh $ t_esi r; return ()+ recSizeOf r = sum [ sizeOf $ t_esi_Type r, sizeOf $ t_esi r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_esi_Type r), viewField "" (viewNStr $ t_esi r) ]+ recType = fromEnum . t_esi_Type++instance Rec T_FCGCSGI where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_FCGCSGI a01 a02+ recPut bh r = do put bh $ t_fcgcsgi_Type r; put bh $ t_fcgcsgi r; return ()+ recSizeOf r = sum [ sizeOf $ t_fcgcsgi_Type r, sizeOf $ t_fcgcsgi r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_fcgcsgi_Type r), viewField "" (viewNStr $ t_fcgcsgi r) ]+ recType = fromEnum . t_fcgcsgi_Type++instance Rec T_FDS where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_FDS a01 a02+ recPut bh r = do put bh $ t_fds_Type r; put bh $ t_fds r; return ()+ recSizeOf r = sum [ sizeOf $ t_fds_Type r, sizeOf $ t_fds r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_fds_Type r), viewField "" (viewNStr $ t_fds r) ]+ recType = fromEnum . t_fds_Type++instance Rec T_FF where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_FF a01 a02+ recPut bh r = do put bh $ t_ff_Type r; put bh $ t_ff r; return ()+ recSizeOf r = sum [ sizeOf $ t_ff_Type r, sizeOf $ t_ff r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_ff_Type r), viewField "" (viewNStr $ t_ff r) ]+ recType = fromEnum . t_ff_Type++instance Rec T_FHSF where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_FHSF a01 a02+ recPut bh r = do put bh $ t_fhsf_Type r; put bh $ t_fhsf r; return ()+ recSizeOf r = sum [ sizeOf $ t_fhsf_Type r, sizeOf $ t_fhsf r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_fhsf_Type r), viewField "" (viewNStr $ t_fhsf r) ]+ recType = fromEnum . t_fhsf_Type++instance Rec T_FO where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_FO a01 a02+ recPut bh r = do put bh $ t_fo_Type r; put bh $ t_fo r; return ()+ recSizeOf r = sum [ sizeOf $ t_fo_Type r, sizeOf $ t_fo r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_fo_Type r), viewField "" (viewNStr $ t_fo r) ]+ recType = fromEnum . t_fo_Type++instance Rec T_FQN where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; a04 <- get bh; return $ T_FQN a01 a02 a03 a04+ recPut bh r = do put bh $ t_fqn_Type r; put bh $ t_fqn_SubType r; put bh $ t_fqn_Format r; put bh $ t_fqn r; return ()+ recSizeOf r = sum [ sizeOf $ t_fqn_Type r, sizeOf $ t_fqn_SubType r, sizeOf $ t_fqn_Format r, sizeOf $ t_fqn r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_fqn_Type r), viewField "SubType" (viewNumber $ t_fqn_SubType r), viewField "Format" (viewNumber $ t_fqn_Format r), viewField "" (viewString $ t_fqn r) ]+ recType = fromEnum . t_fqn_Type++instance Rec T_FRMT where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_FRMT a01 a02+ recPut bh r = do put bh $ t_frmt_Type r; put bh $ t_frmt r; return ()+ recSizeOf r = sum [ sizeOf $ t_frmt_Type r, sizeOf $ t_frmt r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_frmt_Type r), viewField "" (viewNStr $ t_frmt r) ]+ recType = fromEnum . t_frmt_Type++instance Rec T_II where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_II a01 a02+ recPut bh r = do put bh $ t_ii_Type r; put bh $ t_ii r; return ()+ recSizeOf r = sum [ sizeOf $ t_ii_Type r, sizeOf $ t_ii r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_ii_Type r), viewField "" (viewNStr $ t_ii r) ]+ recType = fromEnum . t_ii_Type++instance Rec T_LDOPM where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_LDOPM a01 a02+ recPut bh r = do put bh $ t_ldopm_Type r; put bh $ t_ldopm r; return ()+ recSizeOf r = sum [ sizeOf $ t_ldopm_Type r, sizeOf $ t_ldopm r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_ldopm_Type r), viewField "" (viewNStr $ t_ldopm r) ]+ recType = fromEnum . t_ldopm_Type++instance Rec T_LDTS where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_LDTS a01 a02+ recPut bh r = do put bh $ t_ldts_Type r; put bh $ t_ldts r; return ()+ recSizeOf r = sum [ sizeOf $ t_ldts_Type r, sizeOf $ t_ldts r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_ldts_Type r), viewField "" (viewNStr $ t_ldts r) ]+ recType = fromEnum . t_ldts_Type++instance Rec T_MA where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_MA a01 a02+ recPut bh r = do put bh $ t_ma_Type r; put bh $ t_ma r; return ()+ recSizeOf r = sum [ sizeOf $ t_ma_Type r, sizeOf $ t_ma r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_ma_Type r), viewField "" (viewNStr $ t_ma r) ]+ recType = fromEnum . t_ma_Type++instance Rec T_MEC where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_MEC a01 a02+ recPut bh r = do put bh $ t_mec_Type r; put bh $ t_mec r; return ()+ recSizeOf r = sum [ sizeOf $ t_mec_Type r, sizeOf $ t_mec r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_mec_Type r), viewField "" (viewNStr $ t_mec r) ]+ recType = fromEnum . t_mec_Type++instance Rec T_MF where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_MF a01 a02+ recPut bh r = do put bh $ t_mf_Type r; put bh $ t_mf r; return ()+ recSizeOf r = sum [ sizeOf $ t_mf_Type r, sizeOf $ t_mf r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_mf_Type r), viewField "" (viewNStr $ t_mf r) ]+ recType = fromEnum . t_mf_Type++instance Rec T_MIS where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_MIS a01 a02+ recPut bh r = do put bh $ t_mis_Type r; put bh $ t_mis r; return ()+ recSizeOf r = sum [ sizeOf $ t_mis_Type r, sizeOf $ t_mis r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_mis_Type r), viewField "" (viewNStr $ t_mis r) ]+ recType = fromEnum . t_mis_Type++instance Rec T_MMPN where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_MMPN a01 a02+ recPut bh r = do put bh $ t_mmpn_Type r; put bh $ t_mmpn r; return ()+ recSizeOf r = sum [ sizeOf $ t_mmpn_Type r, sizeOf $ t_mmpn r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_mmpn_Type r), viewField "" (viewNStr $ t_mmpn r) ]+ recType = fromEnum . t_mmpn_Type++instance Rec T_MO where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_MO a01 a02+ recPut bh r = do put bh $ t_mo_Type r; put bh $ t_mo r; return ()+ recSizeOf r = sum [ sizeOf $ t_mo_Type r, sizeOf $ t_mo r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_mo_Type r), viewField "" (viewNStr $ t_mo r) ]+ recType = fromEnum . t_mo_Type++instance Rec T_MOR where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_MOR a01 a02+ recPut bh r = do put bh $ t_mor_Type r; put bh $ t_mor r; return ()+ recSizeOf r = sum [ sizeOf $ t_mor_Type r, sizeOf $ t_mor r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_mor_Type r), viewField "" (viewNStr $ t_mor r) ]+ recType = fromEnum . t_mor_Type++instance Rec T_OAMU where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_OAMU a01 a02+ recPut bh r = do put bh $ t_oamu_Type r; put bh $ t_oamu r; return ()+ recSizeOf r = sum [ sizeOf $ t_oamu_Type r, sizeOf $ t_oamu r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_oamu_Type r), viewField "" (viewNStr $ t_oamu r) ]+ recType = fromEnum . t_oamu_Type++instance Rec T_OAS where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_OAS a01 a02+ recPut bh r = do put bh $ t_oas_Type r; put bh $ t_oas r; return ()+ recSizeOf r = sum [ sizeOf $ t_oas_Type r, sizeOf $ t_oas r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_oas_Type r), viewField "" (viewNStr $ t_oas r) ]+ recType = fromEnum . t_oas_Type++instance Rec T_OBE where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_OBE a01 a02+ recPut bh r = do put bh $ t_obe_Type r; put bh $ t_obe r; return ()+ recSizeOf r = sum [ sizeOf $ t_obe_Type r, sizeOf $ t_obe r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_obe_Type r), viewField "" (viewNStr $ t_obe r) ]+ recType = fromEnum . t_obe_Type++instance Rec T_OBO where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_OBO a01 a02+ recPut bh r = do put bh $ t_obo_Type r; put bh $ t_obo r; return ()+ recSizeOf r = sum [ sizeOf $ t_obo_Type r, sizeOf $ t_obo r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_obo_Type r), viewField "" (viewNStr $ t_obo r) ]+ recType = fromEnum . t_obo_Type++instance Rec T_OCH where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_OCH a01 a02+ recPut bh r = do put bh $ t_och_Type r; put bh $ t_och r; return ()+ recSizeOf r = sum [ sizeOf $ t_och_Type r, sizeOf $ t_och r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_och_Type r), viewField "" (viewNStr $ t_och r) ]+ recType = fromEnum . t_och_Type++instance Rec T_OCL where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_OCL a01 a02+ recPut bh r = do put bh $ t_ocl_Type r; put bh $ t_ocl r; return ()+ recSizeOf r = sum [ sizeOf $ t_ocl_Type r, sizeOf $ t_ocl r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_ocl_Type r), viewField "" (viewNStr $ t_ocl r) ]+ recType = fromEnum . t_ocl_Type++instance Rec T_OCO where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_OCO a01 a02+ recPut bh r = do put bh $ t_oco_Type r; put bh $ t_oco r; return ()+ recSizeOf r = sum [ sizeOf $ t_oco_Type r, sizeOf $ t_oco r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_oco_Type r), viewField "" (viewNStr $ t_oco r) ]+ recType = fromEnum . t_oco_Type++instance Rec T_OFSS where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_OFSS a01 a02+ recPut bh r = do put bh $ t_ofss_Type r; put bh $ t_ofss r; return ()+ recSizeOf r = sum [ sizeOf $ t_ofss_Type r, sizeOf $ t_ofss r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_ofss_Type r), viewField "" (viewNStr $ t_ofss r) ]+ recType = fromEnum . t_ofss_Type++instance Rec T_OO where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_OO a01 a02+ recPut bh r = do put bh $ t_oo_Type r; put bh $ t_oo r; return ()+ recSizeOf r = sum [ sizeOf $ t_oo_Type r, sizeOf $ t_oo r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_oo_Type r), viewField "" (viewNStr $ t_oo r) ]+ recType = fromEnum . t_oo_Type++instance Rec T_OOI where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_OOI a01 a02+ recPut bh r = do put bh $ t_ooi_Type r; put bh $ t_ooi r; return ()+ recSizeOf r = sum [ sizeOf $ t_ooi_Type r, sizeOf $ t_ooi r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_ooi_Type r), viewField "" (viewNStr $ t_ooi r) ]+ recType = fromEnum . t_ooi_Type++instance Rec T_OSFE where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_OSFE a01 a02+ recPut bh r = do put bh $ t_osfe_Type r; put bh $ t_osfe r; return ()+ recSizeOf r = sum [ sizeOf $ t_osfe_Type r, sizeOf $ t_osfe r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_osfe_Type r), viewField "" (viewNStr $ t_osfe r) ]+ recType = fromEnum . t_osfe_Type++instance Rec T_OSFO where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_OSFO a01 a02+ recPut bh r = do put bh $ t_osfo_Type r; put bh $ t_osfo r; return ()+ recSizeOf r = sum [ sizeOf $ t_osfo_Type r, sizeOf $ t_osfo r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_osfo_Type r), viewField "" (viewNStr $ t_osfo r) ]+ recType = fromEnum . t_osfo_Type++instance Rec T_PC where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_PC a01 a02+ recPut bh r = do put bh $ t_pc_Type r; put bh $ t_pc r; return ()+ recSizeOf r = sum [ sizeOf $ t_pc_Type r, sizeOf $ t_pc r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_pc_Type r), viewField "" (viewNStr $ t_pc r) ]+ recType = fromEnum . t_pc_Type++instance Rec T_POCP where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_POCP a01 a02+ recPut bh r = do put bh $ t_pocp_Type r; put bh $ t_pocp r; return ()+ recSizeOf r = sum [ sizeOf $ t_pocp_Type r, sizeOf $ t_pocp r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_pocp_Type r), viewField "" (viewNStr $ t_pocp r) ]+ recType = fromEnum . t_pocp_Type++instance Rec T_PPI where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_PPI a01 a02+ recPut bh r = do put bh $ t_ppi_Type r; put bh $ t_ppi r; return ()+ recSizeOf r = sum [ sizeOf $ t_ppi_Type r, sizeOf $ t_ppi r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_ppi_Type r), viewField "" (viewNStr $ t_ppi r) ]+ recType = fromEnum . t_ppi_Type++instance Rec T_PSMR where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_PSMR a01 a02+ recPut bh r = do put bh $ t_psmr_Type r; put bh $ t_psmr r; return ()+ recSizeOf r = sum [ sizeOf $ t_psmr_Type r, sizeOf $ t_psmr r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_psmr_Type r), viewField "" (viewNStr $ t_psmr r) ]+ recType = fromEnum . t_psmr_Type++instance Rec T_PSRM where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_PSRM a01 a02+ recPut bh r = do put bh $ t_psrm_Type r; put bh $ t_psrm r; return ()+ recSizeOf r = sum [ sizeOf $ t_psrm_Type r, sizeOf $ t_psrm r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_psrm_Type r), viewField "" (viewNStr $ t_psrm r) ]+ recType = fromEnum . t_psrm_Type++instance Rec T_PV where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_PV a01 a02+ recPut bh r = do put bh $ t_pv_Type r; put bh $ t_pv r; return ()+ recSizeOf r = sum [ sizeOf $ t_pv_Type r, sizeOf $ t_pv r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_pv_Type r), viewField "" (viewNStr $ t_pv r) ]+ recType = fromEnum . t_pv_Type++instance Rec T_RLI where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ T_RLI a01 a02 a03+ recPut bh r = do put bh $ t_rli_Type r; put bh $ t_rli_SubType r; put bh $ t_rli r; return ()+ recSizeOf r = sum [ sizeOf $ t_rli_Type r, sizeOf $ t_rli_SubType r, sizeOf $ t_rli r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_rli_Type r), viewField "SubType" (viewNumber $ t_rli_SubType r), viewField "" (viewNumber $ t_rli r) ]+ recType = fromEnum . t_rli_Type++instance Rec T_ROI where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_ROI a01 a02+ recPut bh r = do put bh $ t_roi_Type r; put bh $ t_roi r; return ()+ recSizeOf r = sum [ sizeOf $ t_roi_Type r, sizeOf $ t_roi r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_roi_Type r), viewField "" (viewNStr $ t_roi r) ]+ recType = fromEnum . t_roi_Type++instance Rec T_ROT where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_ROT a01 a02+ recPut bh r = do put bh $ t_rot_Type r; put bh $ t_rot r; return ()+ recSizeOf r = sum [ sizeOf $ t_rot_Type r, sizeOf $ t_rot r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_rot_Type r), viewField "" (viewNStr $ t_rot r) ]+ recType = fromEnum . t_rot_Type++instance Rec T_RSN where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_RSN a01 a02+ recPut bh r = do put bh $ t_rsn_Type r; put bh $ t_rsn r; return ()+ recSizeOf r = sum [ sizeOf $ t_rsn_Type r, sizeOf $ t_rsn r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_rsn_Type r), viewField "" (viewNStr $ t_rsn r) ]+ recType = fromEnum . t_rsn_Type++instance Rec T_RUA where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_RUA a01 a02+ recPut bh r = do put bh $ t_rua_Type r; put bh $ t_rua r; return ()+ recSizeOf r = sum [ sizeOf $ t_rua_Type r, sizeOf $ t_rua r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_rua_Type r), viewField "" (viewNStr $ t_rua r) ]+ recType = fromEnum . t_rua_Type++instance Rec T_T1CRMT where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_T1CRMT a01 a02+ recPut bh r = do put bh $ t_t1crmt_Type r; put bh $ t_t1crmt r; return ()+ recSizeOf r = sum [ sizeOf $ t_t1crmt_Type r, sizeOf $ t_t1crmt r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_t1crmt_Type r), viewField "" (viewNStr $ t_t1crmt r) ]+ recType = fromEnum . t_t1crmt_Type++instance Rec T_T2FRMT where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_T2FRMT a01 a02+ recPut bh r = do put bh $ t_t2frmt_Type r; put bh $ t_t2frmt r; return ()+ recSizeOf r = sum [ sizeOf $ t_t2frmt_Type r, sizeOf $ t_t2frmt r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_t2frmt_Type r), viewField "" (viewNStr $ t_t2frmt r) ]+ recType = fromEnum . t_t2frmt_Type++instance Rec T_TO where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_TO a01 a02+ recPut bh r = do put bh $ t_to_Type r; put bh $ t_to r; return ()+ recSizeOf r = sum [ sizeOf $ t_to_Type r, sizeOf $ t_to r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_to_Type r), viewField "" (viewNStr $ t_to r) ]+ recType = fromEnum . t_to_Type++instance Rec T_TS where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_TS a01 a02+ recPut bh r = do put bh $ t_ts_Type r; put bh $ t_ts r; return ()+ recSizeOf r = sum [ sizeOf $ t_ts_Type r, sizeOf $ t_ts r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_ts_Type r), viewField "" (viewNStr $ t_ts r) ]+ recType = fromEnum . t_ts_Type++instance Rec T_UDTS where+ recGet bh = do a01 <- get bh; a02 <- get bh; return $ T_UDTS a01 a02+ recPut bh r = do put bh $ t_udts_Type r; put bh $ t_udts r; return ()+ recSizeOf r = sum [ sizeOf $ t_udts_Type r, sizeOf $ t_udts r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ t_udts_Type r), viewField "" (viewNStr $ t_udts r) ]+ recType = fromEnum . t_udts_Type++instance ChunkBuf T_ N1 Buffer1 where+ chunkCon = T_+ chunkDecon (T_ x) = x+ chunkTypeLookup = lookupT+ chunkApply = applyT++applyT :: forall m x. (MonadIO m)+ => N1 -> T_ -> (forall a. (Rec a) => (a -> m x)) -> m x+applyT x rec f = case x of+ 0x01 -> apply recOf rec (f :: T_CGCSGI -> m x)+ 0x02 -> apply recOf rec (f :: T_FQN -> m x)+ 0x04 -> apply recOf rec (f :: T_MO -> m x)+ 0x10 -> apply recOf rec (f :: T_OCL -> m x)+ 0x18 -> apply recOf rec (f :: T_MIS -> m x)+ 0x1D -> apply recOf rec (f :: T_TO -> m x)+ 0x1F -> apply recOf rec (f :: T_FDS -> m x)+ 0x20 -> apply recOf rec (f :: T_FCGCSGI -> m x)+ 0x21 -> apply recOf rec (f :: T_OFSS -> m x)+ 0x22 -> apply recOf rec (f :: T_ROT -> m x)+ 0x23 -> apply recOf rec (f :: T_ERLI -> m x)+ 0x24 -> apply recOf rec (f :: T_RLI -> m x)+ 0x25 -> apply recOf rec (f :: T_RSN -> m x)+ 0x26 -> apply recOf rec (f :: T_CR -> m x)+ 0x27 -> apply recOf rec (f :: T_LDOPM -> m x)+ 0x2D -> apply recOf rec (f :: T_OBO -> m x)+ 0x36 -> apply recOf rec (f :: T_AV -> m x)+ 0x43 -> apply recOf rec (f :: T_DP -> m x)+ 0x45 -> apply recOf rec (f :: T_MEC -> m x)+ 0x46 -> apply recOf rec (f :: T_POCP -> m x)+ 0x47 -> apply recOf rec (f :: T_RUA -> m x)+ 0x4B -> apply recOf rec (f :: T_OAMU -> m x)+ 0x4C -> apply recOf rec (f :: T_OAS -> m x)+ 0x4D -> apply recOf rec (f :: T_AD -> m x)+ 0x4E -> apply recOf rec (f :: T_CS -> m x)+ 0x50 -> apply recOf rec (f :: T_ESI -> m x)+ 0x56 -> apply recOf rec (f :: T_MMPN -> m x)+ 0x57 -> apply recOf rec (f :: T_OBE -> m x)+ 0x58 -> apply recOf rec (f :: T_OSFO -> m x)+ 0x59 -> apply recOf rec (f :: T_OSFE -> m x)+ 0x5A -> apply recOf rec (f :: T_OO -> m x)+ 0x5D -> apply recOf rec (f :: T_FHSF -> m x)+ 0x5E -> apply recOf rec (f :: T_OCO -> m x)+ 0x62 -> apply recOf rec (f :: T_LDTS -> m x)+ 0x63 -> apply recOf rec (f :: T_T2FRMT -> m x)+ 0x64 -> apply recOf rec (f :: T_OOI -> m x)+ 0x65 -> apply recOf rec (f :: T_C -> m x)+ 0x68 -> apply recOf rec (f :: T_MOR -> m x)+ 0x6C -> apply recOf rec (f :: T_ROI -> m x)+ 0x6D -> apply recOf rec (f :: T_EF -> m x)+ 0x70 -> apply recOf rec (f :: T_PSRM -> m x)+ 0x71 -> apply recOf rec (f :: T_PSMR -> m x)+ 0x72 -> apply recOf rec (f :: T_UDTS -> m x)+ 0x73 -> apply recOf rec (f :: T_II -> m x)+ 0x74 -> apply recOf rec (f :: T_TS -> m x)+ 0x75 -> apply recOf rec (f :: T_CF -> m x)+ 0x78 -> apply recOf rec (f :: T_FF -> m x)+ 0x79 -> apply recOf rec (f :: T_MA -> m x)+ 0x80 -> apply recOf rec (f :: T_AQ -> m x)+ 0x81 -> apply recOf rec (f :: T_PPI -> m x)+ 0x82 -> apply recOf rec (f :: T_PV -> m x)+ 0x83 -> apply recOf rec (f :: T_PC -> m x)+ 0x84 -> apply recOf rec (f :: T_FRMT -> m x)+ 0x85 -> apply recOf rec (f :: T_FO -> m x)+ 0x87 -> apply recOf rec (f :: T_MF -> m x)+ _ -> apply recOf rec (f :: Unknown -> m x)+
+ src/OpenAFP/Prelude/Instances.hs view
@@ -0,0 +1,386 @@+{-# OPTIONS -fglasgow-exts #-}++module OpenAFP.Prelude.Instances where+import OpenAFP.Types+import OpenAFP.Records+import OpenAFP.Internals+import OpenAFP.Prelude.InstanceT+import OpenAFP.Prelude.InstancePTX+import OpenAFP.Prelude.InstanceAFP++instance Rec T_ where+ recSizeOf c = 1 + (snd $ chunkToPStrLen c)++instance ChunkBuf AFP_ N3 Buffer2 where+ chunkCon = AFP_+ chunkDecon (AFP_ x) = x+ chunkTypeLookup = lookupAFP+ chunkApply = applyAFP++recOf :: (ChunkBuf c n b, Binary (Record r)) => c -> IO r+recOf c = return . fromRecord =<< chunkToRecord c++apply :: (MonadIO m) => (t -> IO a) -> t -> (a -> m b) -> m b+apply ctr c f = f =<< (liftIO $ ctr c)++applyAFP :: forall m x. (MonadIO m)+ => N3 -> AFP_ -> (forall a. (Rec a) => (a -> m x)) -> m x+applyAFP x rec f = case x of+ 0xD38C87 -> apply recOf rec (f :: CPI -> m x)+ 0xD38C89 -> apply recOf rec (f :: FNI -> m x)+ 0xD38C8A -> apply recOf rec (f :: CFI -> m x)+ 0xD3A088 -> apply recOf rec (f :: MFC -> m x)+ 0xD3A090 -> apply recOf rec (f :: TLE -> m x)+ 0xD3A288 -> apply recOf rec (f :: MCC -> m x)+ 0xD3A289 -> apply recOf rec (f :: FNM -> m x)+ 0xD3A66B -> apply recOf rec (f :: OBD -> m x)+ 0xD3A67B -> apply recOf rec (f :: IID -> m x)+ 0xD3A687 -> apply recOf rec (f :: CPD -> m x)+ 0xD3A688 -> apply recOf rec (f :: MDD -> m x)+ 0xD3A689 -> apply recOf rec (f :: FND -> m x)+ 0xD3A692 -> apply recOf rec (f :: CDD -> m x)+ 0xD3A69B -> apply recOf rec (f :: PTD1 -> m x)+ 0xD3A6AF -> apply recOf rec (f :: PGD -> m x)+ 0xD3A6BB -> apply recOf rec (f :: GDD -> m x)+ 0xD3A6C5 -> apply recOf rec (f :: FGD -> m x)+ 0xD3A6E3 -> apply recOf rec (f :: DXD -> m x)+ 0xD3A6E7 -> apply recOf rec (f :: LND -> m x)+ 0xD3A6EB -> apply recOf rec (f :: BDD -> m x)+ 0xD3A6FB -> apply recOf rec (f :: IDD -> m x)+ 0xD3A77B -> apply recOf rec (f :: IOC -> m x)+ 0xD3A787 -> apply recOf rec (f :: CPC -> m x)+ 0xD3A788 -> apply recOf rec (f :: MMC -> m x)+ 0xD3A789 -> apply recOf rec (f :: FNC -> m x)+ 0xD3A78A -> apply recOf rec (f :: CFC -> m x)+ 0xD3A79B -> apply recOf rec (f :: CTC -> m x)+ 0xD3A7AF -> apply recOf rec (f :: PMC -> m x)+ 0xD3A85F -> apply recOf rec (f :: BPS -> m x)+ 0xD3A877 -> apply recOf rec (f :: BCA -> m x)+ 0xD3A87B -> apply recOf rec (f :: BII -> m x)+ 0xD3A887 -> apply recOf rec (f :: BCP -> m x)+ 0xD3A889 -> apply recOf rec (f :: BFN -> m x)+ 0xD3A88A -> apply recOf rec (f :: BCF -> m x)+ 0xD3A892 -> apply recOf rec (f :: BOC -> m x)+ 0xD3A89B -> apply recOf rec (f :: BPT -> m x)+ 0xD3A8A7 -> apply recOf rec (f :: BDI -> m x)+ 0xD3A8A8 -> apply recOf rec (f :: BDT -> m x)+ 0xD3A8AD -> apply recOf rec (f :: BNG -> m x)+ 0xD3A8AF -> apply recOf rec (f :: BPG -> m x)+ 0xD3A8BB -> apply recOf rec (f :: BGR -> m x)+ 0xD3A8C4 -> apply recOf rec (f :: BDG -> m x)+ 0xD3A8C5 -> apply recOf rec (f :: BFG -> m x)+ 0xD3A8C6 -> apply recOf rec (f :: BRG -> m x)+ 0xD3A8C7 -> apply recOf rec (f :: BOG -> m x)+ 0xD3A8C9 -> apply recOf rec (f :: BAG -> m x)+ 0xD3A8CA -> apply recOf rec (f :: BDM -> m x)+ 0xD3A8CB -> apply recOf rec (f :: BPM -> m x)+ 0xD3A8CC -> apply recOf rec (f :: BMM -> m x)+ 0xD3A8CD -> apply recOf rec (f :: BFM -> m x)+ 0xD3A8CE -> apply recOf rec (f :: BR -> m x)+ 0xD3A8D9 -> apply recOf rec (f :: BSG -> m x)+ 0xD3A8DF -> apply recOf rec (f :: BMO -> m x)+ 0xD3A8E3 -> apply recOf rec (f :: BDX -> m x)+ 0xD3A8EB -> apply recOf rec (f :: BBC -> m x)+ 0xD3A8FB -> apply recOf rec (f :: BIM -> m x)+ 0xD3A95F -> apply recOf rec (f :: EPS -> m x)+ 0xD3A977 -> apply recOf rec (f :: ECA -> m x)+ 0xD3A97B -> apply recOf rec (f :: EII -> m x)+ 0xD3A987 -> apply recOf rec (f :: ECP -> m x)+ 0xD3A989 -> apply recOf rec (f :: EFN -> m x)+ 0xD3A98A -> apply recOf rec (f :: ECF -> m x)+ 0xD3A992 -> apply recOf rec (f :: EOC -> m x)+ 0xD3A99B -> apply recOf rec (f :: EPT -> m x)+ 0xD3A9A7 -> apply recOf rec (f :: EDI -> m x)+ 0xD3A9A8 -> apply recOf rec (f :: EDT -> m x)+ 0xD3A9AD -> apply recOf rec (f :: ENG -> m x)+ 0xD3A9AF -> apply recOf rec (f :: EPG -> m x)+ 0xD3A9BB -> apply recOf rec (f :: EGR -> m x)+ 0xD3A9C4 -> apply recOf rec (f :: EDG -> m x)+ 0xD3A9C5 -> apply recOf rec (f :: EFG -> m x)+ 0xD3A9C6 -> apply recOf rec (f :: ERG -> m x)+ 0xD3A9C7 -> apply recOf rec (f :: EOG -> m x)+ 0xD3A9C9 -> apply recOf rec (f :: EAG -> m x)+ 0xD3A9CA -> apply recOf rec (f :: EDM -> m x)+ 0xD3A9CB -> apply recOf rec (f :: EPM -> m x)+ 0xD3A9CC -> apply recOf rec (f :: EMM -> m x)+ 0xD3A9CD -> apply recOf rec (f :: EFM -> m x)+ 0xD3A9CE -> apply recOf rec (f :: ER -> m x)+ 0xD3A9D9 -> apply recOf rec (f :: ESG -> m x)+ 0xD3A9DF -> apply recOf rec (f :: EMO -> m x)+ 0xD3A9E3 -> apply recOf rec (f :: EDX -> m x)+ 0xD3A9EB -> apply recOf rec (f :: EBC -> m x)+ 0xD3A9FB -> apply recOf rec (f :: EIM -> m x)+ 0xD3AAE7 -> apply recOf rec (f :: LNC -> m x)+ 0xD3AB77 -> apply recOf rec (f :: MCA -> m x)+ 0xD3AB88 -> apply recOf rec (f :: MMT -> m x)+ 0xD3AB89 -> apply recOf rec (f :: FNN -> m x)+ 0xD3AB8A -> apply recOf rec (f :: MCF -> m x)+ 0xD3AB92 -> apply recOf rec (f :: MCD -> m x)+ 0xD3ABAF -> apply recOf rec (f :: MPG -> m x)+ 0xD3ABBB -> apply recOf rec (f :: MGO -> m x)+ 0xD3ABC3 -> apply recOf rec (f :: MDR -> m x)+ 0xD3ABCC -> apply recOf rec (f :: IMM -> m x)+ 0xD3ABD8 -> apply recOf rec (f :: MPO -> m x)+ 0xD3ABEA -> apply recOf rec (f :: MSU -> m x)+ 0xD3ABEB -> apply recOf rec (f :: MBC -> m x)+ 0xD3ABFB -> apply recOf rec (f :: MIO -> m x)+ 0xD3AC6B -> apply recOf rec (f :: OBP -> m x)+ 0xD3AC7B -> apply recOf rec (f :: ICP -> m x)+ 0xD3AC89 -> apply recOf rec (f :: FNP -> m x)+ 0xD3ACAF -> apply recOf rec (f :: PGP1 -> m x)+ 0xD3AE89 -> apply recOf rec (f :: FNO -> m x)+ 0xD3AF5F -> apply recOf rec (f :: IPS -> m x)+ 0xD3AFAF -> apply recOf rec (f :: IPG -> m x)+ 0xD3AFC3 -> apply recOf rec (f :: IOB -> m x)+ 0xD3AFD8 -> apply recOf rec (f :: IPO -> m x)+ 0xD3B077 -> apply recOf rec (f :: CAT -> m x)+ 0xD3B15F -> apply recOf rec (f :: MPS -> m x)+ 0xD3B18A -> apply recOf rec (f :: MCF1 -> m x)+ 0xD3B19B -> apply recOf rec (f :: PTD -> m x)+ 0xD3B1AF -> apply recOf rec (f :: PGP -> m x)+ 0xD3B1DF -> apply recOf rec (f :: MMO -> m x)+ 0xD3B288 -> apply recOf rec (f :: PFC -> m x)+ 0xD3B2A7 -> apply recOf rec (f :: IEL -> m x)+ 0xD3B490 -> apply recOf rec (f :: LLE -> m x)+ 0xD3EE7B -> apply recOf rec (f :: IRD -> m x)+ 0xD3EE89 -> apply recOf rec (f :: FNG -> m x)+ 0xD3EE92 -> apply recOf rec (f :: OCD -> m x)+ 0xD3EE9B -> apply recOf rec (f :: PTX -> m x)+ 0xD3EEBB -> apply recOf rec (f :: GAD -> m x)+ 0xD3EEEB -> apply recOf rec (f :: BDA -> m x)+ 0xD3EEEE -> apply recOf rec (f :: NOP -> m x)+ 0xD3EEFB -> apply recOf rec (f :: IPD -> m x)+ _ -> apply recOf rec (f :: Unknown -> m x)++instance ChunkBuf MCF_ N0 Buffer2 where+ chunkCon = MCF_+ chunkDecon (MCF_ x) = x+ chunkTypeLookup = lookupMCF+ chunkApply = applyMCF++applyMCF :: forall m x. (MonadIO m)+ => N0 -> MCF_ -> (forall a. (Rec a) => (a -> m x)) -> m x+applyMCF x rec f = case x of+ _ -> apply recOf rec (f :: MCF_T -> m x)++instance RecChunk MCF MCF_ N0 Buffer2 where+ readChunks r = mcf_Chunks r+ writeChunks r io = do+ cs <- io+ return $ r { mcf_Chunks = cs }++instance Rec MCF_ where+ recSizeOf c = 2 + (snd $ chunkToPStrLen c)++instance Rec MCF where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ MCF a01 a02 a03+ recPut bh r = do put bh $ mcf_Type r; put bh $ mcf_ r; put bh $ mcf_Chunks r; return ()+ recSizeOf r = sum [ sizeOf $ mcf_Type r, sizeOf $ mcf_ r, sizeOf $ mcf_Chunks r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ mcf_Type r), viewField "_" (viewNumber $ mcf_ r), viewField "Chunks" (viewChunks $ mcf_Chunks r) ]+ recType = fromEnum . mcf_Type++instance Rec MCF1_Data where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; a04 <- get bh; a05 <- get bh; a06 <- get bh; a07 <- get bh; a08 <- get bh; return $ MCF1_Data a01 a02 a03 a04 a05 a06 a07 a08+ recPut bh r = do put bh $ mcf1_CodedFontLocalId r; put bh $ mcf1_Reserved1 r; put bh $ mcf1_CodedFontResourceSectionId r; put bh $ mcf1_Reserved2 r; put bh $ mcf1_CodedFontName r; put bh $ mcf1_CodePageName r; put bh $ mcf1_FontCharacterSetName r; put bh $ mcf1_CharacterRotation r; return ()+ recSizeOf r = sum [ sizeOf $ mcf1_CodedFontLocalId r, sizeOf $ mcf1_Reserved1 r, sizeOf $ mcf1_CodedFontResourceSectionId r, sizeOf $ mcf1_Reserved2 r, sizeOf $ mcf1_CodedFontName r, sizeOf $ mcf1_CodePageName r, sizeOf $ mcf1_FontCharacterSetName r, sizeOf $ mcf1_CharacterRotation r ]+ recView r = viewRecord (typeOf r) [ viewField "CodedFontLocalId" (viewNumber $ mcf1_CodedFontLocalId r), viewField "Reserved1" (viewString $ mcf1_Reserved1 r), viewField "CodedFontResourceSectionId" (viewNumber $ mcf1_CodedFontResourceSectionId r), viewField "Reserved2" (viewString $ mcf1_Reserved2 r), viewField "CodedFontName" (viewString $ mcf1_CodedFontName r), viewField "CodePageName" (viewString $ mcf1_CodePageName r), viewField "FontCharacterSetName" (viewString $ mcf1_FontCharacterSetName r), viewField "CharacterRotation" (viewNumber $ mcf1_CharacterRotation r) ]+ recType r = 0++instance RecData MCF1 MCF1_Data where+ readData r = mcf1_Data r+ writeData r cs = r { mcf1_Data = cs }++instance Rec MCF1 where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; a04 <- get bh; a05 <- get bh; return $ MCF1 a01 a02 a03 a04 a05+ recPut bh r = do put bh $ mcf1_Type r; put bh $ mcf1_ r; put bh $ mcf1_RepeatingGroupLength r; put bh $ mcf1__ r; put bh $ mcf1_Data r; return ()+ recSizeOf r = sum [ sizeOf $ mcf1_Type r, sizeOf $ mcf1_ r, sizeOf $ mcf1_RepeatingGroupLength r, sizeOf $ mcf1__ r, sizeOf $ mcf1_Data r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ mcf1_Type r), viewField "_" (viewNumber $ mcf1_ r), viewField "RepeatingGroupLength" (viewNumber $ mcf1_RepeatingGroupLength r), viewField "__" (viewString $ mcf1__ r), viewField "Data" (viewData $ mcf1_Data r) ]+ recType = fromEnum . mcf1_Type++instance Rec MDD where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ MDD a01 a02 a03+ recPut bh r = do put bh $ mdd_Type r; put bh $ mdd_ r; put bh $ mdd r; return ()+ recSizeOf r = sum [ sizeOf $ mdd_Type r, sizeOf $ mdd_ r, sizeOf $ mdd r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ mdd_Type r), viewField "_" (viewNumber $ mdd_ r), viewField "" (viewNStr $ mdd r) ]+ recType = fromEnum . mdd_Type++instance Rec MDR where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ MDR a01 a02 a03+ recPut bh r = do put bh $ mdr_Type r; put bh $ mdr_ r; put bh $ mdr r; return ()+ recSizeOf r = sum [ sizeOf $ mdr_Type r, sizeOf $ mdr_ r, sizeOf $ mdr r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ mdr_Type r), viewField "_" (viewNumber $ mdr_ r), viewField "" (viewNStr $ mdr r) ]+ recType = fromEnum . mdr_Type++instance Rec MFC where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ MFC a01 a02 a03+ recPut bh r = do put bh $ mfc_Type r; put bh $ mfc_ r; put bh $ mfc r; return ()+ recSizeOf r = sum [ sizeOf $ mfc_Type r, sizeOf $ mfc_ r, sizeOf $ mfc r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ mfc_Type r), viewField "_" (viewNumber $ mfc_ r), viewField "" (viewNStr $ mfc r) ]+ recType = fromEnum . mfc_Type++instance Rec MGO where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ MGO a01 a02 a03+ recPut bh r = do put bh $ mgo_Type r; put bh $ mgo_ r; put bh $ mgo r; return ()+ recSizeOf r = sum [ sizeOf $ mgo_Type r, sizeOf $ mgo_ r, sizeOf $ mgo r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ mgo_Type r), viewField "_" (viewNumber $ mgo_ r), viewField "" (viewNStr $ mgo r) ]+ recType = fromEnum . mgo_Type++instance Rec MIO where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ MIO a01 a02 a03+ recPut bh r = do put bh $ mio_Type r; put bh $ mio_ r; put bh $ mio r; return ()+ recSizeOf r = sum [ sizeOf $ mio_Type r, sizeOf $ mio_ r, sizeOf $ mio r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ mio_Type r), viewField "_" (viewNumber $ mio_ r), viewField "" (viewNStr $ mio r) ]+ recType = fromEnum . mio_Type++instance Rec MMC where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ MMC a01 a02 a03+ recPut bh r = do put bh $ mmc_Type r; put bh $ mmc_ r; put bh $ mmc r; return ()+ recSizeOf r = sum [ sizeOf $ mmc_Type r, sizeOf $ mmc_ r, sizeOf $ mmc r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ mmc_Type r), viewField "_" (viewNumber $ mmc_ r), viewField "" (viewNStr $ mmc r) ]+ recType = fromEnum . mmc_Type++instance Rec MMO where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ MMO a01 a02 a03+ recPut bh r = do put bh $ mmo_Type r; put bh $ mmo_ r; put bh $ mmo r; return ()+ recSizeOf r = sum [ sizeOf $ mmo_Type r, sizeOf $ mmo_ r, sizeOf $ mmo r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ mmo_Type r), viewField "_" (viewNumber $ mmo_ r), viewField "" (viewNStr $ mmo r) ]+ recType = fromEnum . mmo_Type++instance Rec MMT where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ MMT a01 a02 a03+ recPut bh r = do put bh $ mmt_Type r; put bh $ mmt_ r; put bh $ mmt r; return ()+ recSizeOf r = sum [ sizeOf $ mmt_Type r, sizeOf $ mmt_ r, sizeOf $ mmt r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ mmt_Type r), viewField "_" (viewNumber $ mmt_ r), viewField "" (viewNStr $ mmt r) ]+ recType = fromEnum . mmt_Type++instance Rec MPG where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ MPG a01 a02 a03+ recPut bh r = do put bh $ mpg_Type r; put bh $ mpg_ r; put bh $ mpg r; return ()+ recSizeOf r = sum [ sizeOf $ mpg_Type r, sizeOf $ mpg_ r, sizeOf $ mpg r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ mpg_Type r), viewField "_" (viewNumber $ mpg_ r), viewField "" (viewNStr $ mpg r) ]+ recType = fromEnum . mpg_Type++instance Rec MPO where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ MPO a01 a02 a03+ recPut bh r = do put bh $ mpo_Type r; put bh $ mpo_ r; put bh $ mpo r; return ()+ recSizeOf r = sum [ sizeOf $ mpo_Type r, sizeOf $ mpo_ r, sizeOf $ mpo r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ mpo_Type r), viewField "_" (viewNumber $ mpo_ r), viewField "" (viewNStr $ mpo r) ]+ recType = fromEnum . mpo_Type++instance Rec MPS where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ MPS a01 a02 a03+ recPut bh r = do put bh $ mps_Type r; put bh $ mps_ r; put bh $ mps r; return ()+ recSizeOf r = sum [ sizeOf $ mps_Type r, sizeOf $ mps_ r, sizeOf $ mps r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ mps_Type r), viewField "_" (viewNumber $ mps_ r), viewField "" (viewNStr $ mps r) ]+ recType = fromEnum . mps_Type++instance Rec MSU where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ MSU a01 a02 a03+ recPut bh r = do put bh $ msu_Type r; put bh $ msu_ r; put bh $ msu r; return ()+ recSizeOf r = sum [ sizeOf $ msu_Type r, sizeOf $ msu_ r, sizeOf $ msu r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ msu_Type r), viewField "_" (viewNumber $ msu_ r), viewField "" (viewNStr $ msu r) ]+ recType = fromEnum . msu_Type++instance Rec NOP where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ NOP a01 a02 a03+ recPut bh r = do put bh $ nop_Type r; put bh $ nop_ r; put bh $ nop r; return ()+ recSizeOf r = sum [ sizeOf $ nop_Type r, sizeOf $ nop_ r, sizeOf $ nop r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ nop_Type r), viewField "_" (viewNumber $ nop_ r), viewField "" (viewNStr $ nop r) ]+ recType = fromEnum . nop_Type++instance Rec OBD where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ OBD a01 a02 a03+ recPut bh r = do put bh $ obd_Type r; put bh $ obd_ r; put bh $ obd r; return ()+ recSizeOf r = sum [ sizeOf $ obd_Type r, sizeOf $ obd_ r, sizeOf $ obd r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ obd_Type r), viewField "_" (viewNumber $ obd_ r), viewField "" (viewNStr $ obd r) ]+ recType = fromEnum . obd_Type++instance Rec OBP where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ OBP a01 a02 a03+ recPut bh r = do put bh $ obp_Type r; put bh $ obp_ r; put bh $ obp r; return ()+ recSizeOf r = sum [ sizeOf $ obp_Type r, sizeOf $ obp_ r, sizeOf $ obp r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ obp_Type r), viewField "_" (viewNumber $ obp_ r), viewField "" (viewNStr $ obp r) ]+ recType = fromEnum . obp_Type++instance Rec OCD where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ OCD a01 a02 a03+ recPut bh r = do put bh $ ocd_Type r; put bh $ ocd_ r; put bh $ ocd r; return ()+ recSizeOf r = sum [ sizeOf $ ocd_Type r, sizeOf $ ocd_ r, sizeOf $ ocd r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ocd_Type r), viewField "_" (viewNumber $ ocd_ r), viewField "" (viewNStr $ ocd r) ]+ recType = fromEnum . ocd_Type++instance Rec PFC where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ PFC a01 a02 a03+ recPut bh r = do put bh $ pfc_Type r; put bh $ pfc_ r; put bh $ pfc r; return ()+ recSizeOf r = sum [ sizeOf $ pfc_Type r, sizeOf $ pfc_ r, sizeOf $ pfc r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ pfc_Type r), viewField "_" (viewNumber $ pfc_ r), viewField "" (viewNStr $ pfc r) ]+ recType = fromEnum . pfc_Type++instance Rec PGD where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; a04 <- get bh; a05 <- get bh; a06 <- get bh; a07 <- get bh; a08 <- get bh; a09 <- get bh; a10 <- get bh; a11 <- get bh; return $ PGD a01 a02 a03 a04 a05 a06 a07 a08 a09 a10 a11+ recPut bh r = do put bh $ pgd_Type r; put bh $ pgd_ r; put bh $ pgd_XUnitBase r; put bh $ pgd_YUnitBase r; put bh $ pgd_XLUnitsperUnitBase r; put bh $ pgd_YLUnitsperUnitBase r; put bh $ pgd_Reserved1 r; put bh $ pgd_XPageSize r; put bh $ pgd_Reserved2 r; put bh $ pgd_YPageSize r; put bh $ pgd__ r; return ()+ recSizeOf r = sum [ sizeOf $ pgd_Type r, sizeOf $ pgd_ r, sizeOf $ pgd_XUnitBase r, sizeOf $ pgd_YUnitBase r, sizeOf $ pgd_XLUnitsperUnitBase r, sizeOf $ pgd_YLUnitsperUnitBase r, sizeOf $ pgd_Reserved1 r, sizeOf $ pgd_XPageSize r, sizeOf $ pgd_Reserved2 r, sizeOf $ pgd_YPageSize r, sizeOf $ pgd__ r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ pgd_Type r), viewField "_" (viewNumber $ pgd_ r), viewField "XUnitBase" (viewNumber $ pgd_XUnitBase r), viewField "YUnitBase" (viewNumber $ pgd_YUnitBase r), viewField "XLUnitsperUnitBase" (viewNumber $ pgd_XLUnitsperUnitBase r), viewField "YLUnitsperUnitBase" (viewNumber $ pgd_YLUnitsperUnitBase r), viewField "Reserved1" (viewNumber $ pgd_Reserved1 r), viewField "XPageSize" (viewNumber $ pgd_XPageSize r), viewField "Reserved2" (viewNumber $ pgd_Reserved2 r), viewField "YPageSize" (viewNumber $ pgd_YPageSize r), viewField "__" (viewNStr $ pgd__ r) ]+ recType = fromEnum . pgd_Type++instance Rec PGP where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ PGP a01 a02 a03+ recPut bh r = do put bh $ pgp_Type r; put bh $ pgp_ r; put bh $ pgp r; return ()+ recSizeOf r = sum [ sizeOf $ pgp_Type r, sizeOf $ pgp_ r, sizeOf $ pgp r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ pgp_Type r), viewField "_" (viewNumber $ pgp_ r), viewField "" (viewNStr $ pgp r) ]+ recType = fromEnum . pgp_Type++instance Rec PGP1 where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ PGP1 a01 a02 a03+ recPut bh r = do put bh $ pgp1_Type r; put bh $ pgp1_ r; put bh $ pgp1 r; return ()+ recSizeOf r = sum [ sizeOf $ pgp1_Type r, sizeOf $ pgp1_ r, sizeOf $ pgp1 r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ pgp1_Type r), viewField "_" (viewNumber $ pgp1_ r), viewField "" (viewNStr $ pgp1 r) ]+ recType = fromEnum . pgp1_Type++instance Rec PMC where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ PMC a01 a02 a03+ recPut bh r = do put bh $ pmc_Type r; put bh $ pmc_ r; put bh $ pmc r; return ()+ recSizeOf r = sum [ sizeOf $ pmc_Type r, sizeOf $ pmc_ r, sizeOf $ pmc r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ pmc_Type r), viewField "_" (viewNumber $ pmc_ r), viewField "" (viewNStr $ pmc r) ]+ recType = fromEnum . pmc_Type++instance Rec PTD where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ PTD a01 a02 a03+ recPut bh r = do put bh $ ptd_Type r; put bh $ ptd_ r; put bh $ ptd r; return ()+ recSizeOf r = sum [ sizeOf $ ptd_Type r, sizeOf $ ptd_ r, sizeOf $ ptd r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ptd_Type r), viewField "_" (viewNumber $ ptd_ r), viewField "" (viewNStr $ ptd r) ]+ recType = fromEnum . ptd_Type++instance Rec PTD1 where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; return $ PTD1 a01 a02 a03+ recPut bh r = do put bh $ ptd1_Type r; put bh $ ptd1_ r; put bh $ ptd1 r; return ()+ recSizeOf r = sum [ sizeOf $ ptd1_Type r, sizeOf $ ptd1_ r, sizeOf $ ptd1 r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ ptd1_Type r), viewField "_" (viewNumber $ ptd1_ r), viewField "" (viewNStr $ ptd1 r) ]+ recType = fromEnum . ptd1_Type++instance RecChunk TLE T_ N1 Buffer1 where+ readChunks r = tle_Chunks r+ writeChunks r io = do+ cs <- io+ return $ r { tle_Chunks = cs }++instance Rec TLE where+ recGet bh = do a01 <- get bh; a02 <- get bh; a03 <- get bh; a04 <- get bh; a05 <- get bh; a06 <- get bh; a07 <- get bh; a08 <- get bh; a09 <- get bh; a10 <- get bh; return $ TLE a01 a02 a03 a04 a05 a06 a07 a08 a09 a10+ recPut bh r = do put bh $ tle_Type r; put bh $ tle_ r; put bh $ tle_Chunks r; put bh $ tle_XUnitBase r; put bh $ tle_YUnitBase r; put bh $ tle_XLUnitsperUnitBase r; put bh $ tle_YLUnitsperUnitBase r; put bh $ tle_XPageSize r; put bh $ tle_YPageSize r; put bh $ tle__ r; return ()+ recSizeOf r = sum [ sizeOf $ tle_Type r, sizeOf $ tle_ r, sizeOf $ tle_Chunks r, sizeOf $ tle_XUnitBase r, sizeOf $ tle_YUnitBase r, sizeOf $ tle_XLUnitsperUnitBase r, sizeOf $ tle_YLUnitsperUnitBase r, sizeOf $ tle_XPageSize r, sizeOf $ tle_YPageSize r, sizeOf $ tle__ r ]+ recView r = viewRecord (typeOf r) [ viewField "Type" (viewNumber $ tle_Type r), viewField "_" (viewNumber $ tle_ r), viewField "Chunks" (viewChunks $ tle_Chunks r), viewField "XUnitBase" (viewNumber $ tle_XUnitBase r), viewField "YUnitBase" (viewNumber $ tle_YUnitBase r), viewField "XLUnitsperUnitBase" (viewNumber $ tle_XLUnitsperUnitBase r), viewField "YLUnitsperUnitBase" (viewNumber $ tle_YLUnitsperUnitBase r), viewField "XPageSize" (viewNumber $ tle_XPageSize r), viewField "YPageSize" (viewNumber $ tle_YPageSize r), viewField "__" (viewNStr $ tle__ r) ]+ recType = fromEnum . tle_Type++instance RecChunk MCF_T T_ N1 Buffer1 where+ readChunks r = mcf_t_Chunks r+ writeChunks r io = do+ cs <- io+ return $ r { mcf_t_Chunks = cs }++instance Rec MCF_T where+ recGet bh = do a01 <- get bh; return $ MCF_T a01+ recPut bh r = do put bh $ mcf_t_Chunks r; return ()+ recSizeOf r = sum [ sizeOf $ mcf_t_Chunks r ]+ recView r = viewRecord (typeOf r) [ viewField "Chunks" (viewChunks $ mcf_t_Chunks r) ]+ recType r = 0+
+ src/OpenAFP/Prelude/Lookups.hs view
@@ -0,0 +1,216 @@+{-# OPTIONS -fglasgow-exts #-}++module OpenAFP.Prelude.Lookups where+import OpenAFP.Types+import OpenAFP.Records+import OpenAFP.Internals+import OpenAFP.Prelude.Instances+import qualified Data.Map as Map++descLookup :: ChunkType -> String+descLookup typ = Map.findWithDefault "(Unknown)" typ descMap++descMap :: Map.Map ChunkType String+descMap = Map.fromList+ [ (chunkTypeOf _MCF_T, "MCF Triplets")+ , (chunkTypeOf _CPI, "Code Page Index")+ , (chunkTypeOf _FNI, "Font Index")+ , (chunkTypeOf _CFI, "Coded Font Index")+ , (chunkTypeOf _MFC, "Medium Finishing Control")+ , (chunkTypeOf _TLE, "Tag Logical Element")+ , (chunkTypeOf _MCC, "Medium Copy Count")+ , (chunkTypeOf _FNM, "Font Patterns Map")+ , (chunkTypeOf _OBD, "Object Area Descriptor")+ , (chunkTypeOf _IID, "IM Image Input Descriptor (C)")+ , (chunkTypeOf _CPD, "Code Page Descriptor")+ , (chunkTypeOf _MDD, "Medium Descriptor")+ , (chunkTypeOf _FND, "Font Descriptor")+ , (chunkTypeOf _CDD, "Container Data Descriptor")+ , (chunkTypeOf _PTD1, "Presentation Text Descriptor Format-1 (C)")+ , (chunkTypeOf _PGD, "Page Descriptor")+ , (chunkTypeOf _GDD, "Graphics Data Descriptor")+ , (chunkTypeOf _FGD, "Form Environment Group Descriptor (O)")+ , (chunkTypeOf _DXD, "Data Map Transmission Subcase Descriptor")+ , (chunkTypeOf _LND, "Line Descriptor")+ , (chunkTypeOf _BDD, "Bar Code Data Descriptor")+ , (chunkTypeOf _IDD, "Image Data Descriptor")+ , (chunkTypeOf _IOC, "IM Image Output Control (C)")+ , (chunkTypeOf _CPC, "Code Page Control")+ , (chunkTypeOf _MMC, "Medium Modification Control")+ , (chunkTypeOf _FNC, "Font Control")+ , (chunkTypeOf _CFC, "Coded Font Control")+ , (chunkTypeOf _CTC, "Composed Text Control (O)")+ , (chunkTypeOf _PMC, "Page Modification Control")+ , (chunkTypeOf _BPS, "Begin Page Segment")+ , (chunkTypeOf _BCA, "Begin Color Attribute Table")+ , (chunkTypeOf _BII, "Begin IM Image (C)")+ , (chunkTypeOf _BCP, "Begin Code Page")+ , (chunkTypeOf _BFN, "Begin Font")+ , (chunkTypeOf _BCF, "Begin Coded Font")+ , (chunkTypeOf _BOC, "Begin Object Container")+ , (chunkTypeOf _BPT, "Begin Presentation Text Object")+ , (chunkTypeOf _BDI, "Begin Document Index")+ , (chunkTypeOf _BDT, "Begin Document")+ , (chunkTypeOf _BNG, "Begin Named Page Group")+ , (chunkTypeOf _BPG, "Begin Page")+ , (chunkTypeOf _BGR, "Begin Graphics Object")+ , (chunkTypeOf _BDG, "Begin Document Environment Group")+ , (chunkTypeOf _BFG, "Begin Form Environment Group (O)")+ , (chunkTypeOf _BRG, "Begin Resource Group")+ , (chunkTypeOf _BOG, "Begin Object Environment Group")+ , (chunkTypeOf _BAG, "Begin Active Environment Group")+ , (chunkTypeOf _BDM, "Begin Data Map")+ , (chunkTypeOf _BPM, "Begin Page Map")+ , (chunkTypeOf _BMM, "Begin Medium Map")+ , (chunkTypeOf _BFM, "Begin Form Map")+ , (chunkTypeOf _BR, "Begin Resource (R)")+ , (chunkTypeOf _BSG, "Begin Resource Environment Group")+ , (chunkTypeOf _BMO, "Begin Overlay")+ , (chunkTypeOf _BDX, "Begin Data Map Transmission Subcase")+ , (chunkTypeOf _BBC, "Begin Bar Code Object")+ , (chunkTypeOf _BIM, "Begin Image Object")+ , (chunkTypeOf _EPS, "End Page Segment")+ , (chunkTypeOf _ECA, "End Color Attribute Table")+ , (chunkTypeOf _EII, "End IM Image (C)")+ , (chunkTypeOf _ECP, "End Code Page")+ , (chunkTypeOf _EFN, "End Font")+ , (chunkTypeOf _ECF, "End Coded Font")+ , (chunkTypeOf _EOC, "End Object Container")+ , (chunkTypeOf _EPT, "End Presentation Text Object")+ , (chunkTypeOf _EDI, "End Document Index")+ , (chunkTypeOf _EDT, "End Document")+ , (chunkTypeOf _ENG, "End Named Page Group")+ , (chunkTypeOf _EPG, "End Page")+ , (chunkTypeOf _EGR, "End Graphics Object")+ , (chunkTypeOf _EDG, "End Document Environment Group")+ , (chunkTypeOf _EFG, "End Form Environment Group (O)")+ , (chunkTypeOf _ERG, "End Resource Group")+ , (chunkTypeOf _EOG, "End Object Environment Group")+ , (chunkTypeOf _EAG, "End Active Environment Group")+ , (chunkTypeOf _EDM, "End Data Map")+ , (chunkTypeOf _EPM, "End Page Map")+ , (chunkTypeOf _EMM, "End Medium Map")+ , (chunkTypeOf _EFM, "End Form Map")+ , (chunkTypeOf _ER, "End Resource (R)")+ , (chunkTypeOf _ESG, "End Resource Environment Group")+ , (chunkTypeOf _EMO, "End Overlay")+ , (chunkTypeOf _EDX, "End Data Map Transmission Subcase")+ , (chunkTypeOf _EBC, "End Bar Code Object")+ , (chunkTypeOf _EIM, "End Image Object")+ , (chunkTypeOf _LNC, "Line Descriptor Count")+ , (chunkTypeOf _MCA, "Map Color Attribute Table")+ , (chunkTypeOf _MMT, "Map Media Type")+ , (chunkTypeOf _FNN, "Font Names (Outline Fonts Only)")+ , (chunkTypeOf _MCF, "Map Coded Font")+ , (chunkTypeOf _MCD, "Map Container Data")+ , (chunkTypeOf _MPG, "Map Page")+ , (chunkTypeOf _MGO, "Map Graphics Object")+ , (chunkTypeOf _MDR, "Map Data Resource")+ , (chunkTypeOf _IMM, "Invoke Medium Map")+ , (chunkTypeOf _MPO, "Map Page Overlay")+ , (chunkTypeOf _MSU, "Map Suppression")+ , (chunkTypeOf _MBC, "Map Bar Code Object")+ , (chunkTypeOf _MIO, "Map Image Object")+ , (chunkTypeOf _OBP, "Object Area Position")+ , (chunkTypeOf _ICP, "IM Image Cell Position (C)")+ , (chunkTypeOf _FNP, "Font Position")+ , (chunkTypeOf _PGP1, "Page Position Format-1 (C)")+ , (chunkTypeOf _FNO, "Font Orientation")+ , (chunkTypeOf _IPS, "Include Page Segment")+ , (chunkTypeOf _IPG, "Include Page")+ , (chunkTypeOf _IOB, "Include Object")+ , (chunkTypeOf _IPO, "Include Page Overlay")+ , (chunkTypeOf _CAT, "Color Attribute Table")+ , (chunkTypeOf _MPS, "Map Page Segment")+ , (chunkTypeOf _MCF1, "Map Coded Font Format-1 (C)")+ , (chunkTypeOf _PTD, "Presentation Text Data Descriptor")+ , (chunkTypeOf _PGP, "Page Position")+ , (chunkTypeOf _MMO, "Map Medium Overlay")+ , (chunkTypeOf _PFC, "Presentation Fidelity Control")+ , (chunkTypeOf _IEL, "Index Element")+ , (chunkTypeOf _LLE, "Link Logical Element")+ , (chunkTypeOf _IRD, "IM Image Raster Data (C)")+ , (chunkTypeOf _FNG, "Font Patterns")+ , (chunkTypeOf _OCD, "Object Container Data")+ , (chunkTypeOf _PTX, "Presentation Text Data")+ , (chunkTypeOf _GAD, "Graphics Data")+ , (chunkTypeOf _BDA, "Bar Code Data")+ , (chunkTypeOf _NOP, "No Operation")+ , (chunkTypeOf _IPD, "Image Picture Data")+ , (chunkTypeOf _T_CGCSGI, "Coded Graphic Character Set Global ID")+ , (chunkTypeOf _T_FQN, "Fully Qualified Name")+ , (chunkTypeOf _T_MO, "Mapping Option")+ , (chunkTypeOf _T_OCL, "Object Classification")+ , (chunkTypeOf _T_MIS, "MO:DCA Interchange Set")+ , (chunkTypeOf _T_TO, "Text Orientation (R)")+ , (chunkTypeOf _T_FDS, "Font Descriptor Specification")+ , (chunkTypeOf _T_FCGCSGI, "Font Coded Graphic Character Set Global Identifier")+ , (chunkTypeOf _T_OFSS, "Object Function Set Specification")+ , (chunkTypeOf _T_ROT, "Resource Object Type (R)")+ , (chunkTypeOf _T_ERLI, "Extended Resource Local ID")+ , (chunkTypeOf _T_RLI, "Resource Local ID")+ , (chunkTypeOf _T_RSN, "Resource Section Number")+ , (chunkTypeOf _T_CR, "Character Rotation")+ , (chunkTypeOf _T_LDOPM, "Line Data Object Position Migration (R)")+ , (chunkTypeOf _T_OBO, "Object Byte Offset")+ , (chunkTypeOf _T_AV, "Attribute Value")+ , (chunkTypeOf _T_DP, "Descriptor Position")+ , (chunkTypeOf _T_MEC, "Media Eject Control")+ , (chunkTypeOf _T_POCP, "Page Overlay Conditional Processing")+ , (chunkTypeOf _T_RUA, "Resource Usage Attribute")+ , (chunkTypeOf _T_OAMU, "Object Area Measurement Units")+ , (chunkTypeOf _T_OAS, "Object Area Size")+ , (chunkTypeOf _T_AD, "Area Definition")+ , (chunkTypeOf _T_CS, "Color Specification")+ , (chunkTypeOf _T_ESI, "Encoding Scheme ID")+ , (chunkTypeOf _T_MMPN, "Medium Map Page Number")+ , (chunkTypeOf _T_OBE, "Object Byte Extent")+ , (chunkTypeOf _T_OSFO, "Object Structured Field Offset")+ , (chunkTypeOf _T_OSFE, "Object Structured Field Extent")+ , (chunkTypeOf _T_OO, "Object Offset")+ , (chunkTypeOf _T_FHSF, "Font Horizontal Scale Factor")+ , (chunkTypeOf _T_OCO, "Object Count")+ , (chunkTypeOf _T_LDTS, "Local Date and Time Stamp")+ , (chunkTypeOf _T_OCH, "Object Checksum (R)")+ , (chunkTypeOf _T_T1CRMT, "Type 1 - CRC Resource Management Triplet")+ , (chunkTypeOf _T_T2FRMT, "Type 2 - Font Resource Management Triplet")+ , (chunkTypeOf _T_OOI, "Object Origin Identifier (R)")+ , (chunkTypeOf _T_C, "Comment")+ , (chunkTypeOf _T_MOR, "Medium Orientation")+ , (chunkTypeOf _T_ROI, "Resource Object Include")+ , (chunkTypeOf _T_EF, "Extension Font")+ , (chunkTypeOf _T_PSRM, "Presentation Space Reset Mixing")+ , (chunkTypeOf _T_PSMR, "Presentation Space Mixing Rules")+ , (chunkTypeOf _T_UDTS, "Universal Date and Time Stamp")+ , (chunkTypeOf _T_II, "IMM Insertion (R)")+ , (chunkTypeOf _T_TS, "Toner Saver")+ , (chunkTypeOf _T_CF, "Color Fidelity")+ , (chunkTypeOf _T_FF, "Font Fidelity")+ , (chunkTypeOf _T_MA, "Metric Adjustment")+ , (chunkTypeOf _T_AQ, "Attribute Qualifier")+ , (chunkTypeOf _T_PPI, "Page Position Information")+ , (chunkTypeOf _T_PV, "Parameter Value")+ , (chunkTypeOf _T_PC, "Presentation Control")+ , (chunkTypeOf _T_FRMT, "Font Resolution and Metric Technology")+ , (chunkTypeOf _T_FO, "Finishing Operation")+ , (chunkTypeOf _T_MF, "Media Fidelity")+ , (chunkTypeOf _PTX_STC, "Set Text Color")+ , (chunkTypeOf _PTX_SIM, "Set Inline Margin")+ , (chunkTypeOf _PTX_SIA, "Set Intercharacter Adjustment")+ , (chunkTypeOf _PTX_SVI, "Set Variable-Space Character Increment")+ , (chunkTypeOf _PTX_AMI, "Absolute Move Inline")+ , (chunkTypeOf _PTX_RMI, "Relative Move Inline")+ , (chunkTypeOf _PTX_SBI, "Set Baseline Increment")+ , (chunkTypeOf _PTX_AMB, "Absolute Move Baseline")+ , (chunkTypeOf _PTX_RMB, "Relative Move Baseline")+ , (chunkTypeOf _PTX_BLN, "Begin Line Next")+ , (chunkTypeOf _PTX_DIR, "Draw I-Axis Rule")+ , (chunkTypeOf _PTX_DBR, "Draw B-Axis Rule")+ , (chunkTypeOf _PTX_RPS, "Repeat String")+ , (chunkTypeOf _PTX_SCFL, "Set Coded Font Local")+ , (chunkTypeOf _PTX_BSU, "Begin Suppression")+ , (chunkTypeOf _PTX_ESU, "Begin Suppression")+ , (chunkTypeOf _PTX_STO, "Set Text Orientation")+ , (chunkTypeOf _PTX_NOP, "No Operation")+ , (chunkTypeOf _PTX_TRN, "Transparent Data")+ ]
+ src/OpenAFP/Prelude/Utils.hs view
@@ -0,0 +1,201 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++-----------------------------------------------------------------------------+-- |+-- Module : OpenAFP.Prelude.Utils+-- Copyright : (c) Audrey Tang 2004, 2006+-- License : BSD-style+-- +-- Maintainer : audreyt@audreyt.org+-- Stability : experimental+-- Portability : non-portable (GHC-only)+--+-- This module provides various AFP manipulation utilities.+--+-----------------------------------------------------------------------------++module OpenAFP.Prelude.Utils where+import OpenAFP.Types+import OpenAFP.Records+import OpenAFP.Internals++infixl 5 $$+infixl 5 $=+infixl 5 +=+infixl 5 %?+infixl 5 %:+infixl 5 @=+infixl 5 %=+infixl 5 %%=++readVar l = do+ vars <- ask+ liftIO $ readIORef $ l vars++readArray l i = do+ vars <- ask+ liftIO $ readIOArray (l vars) i++l $$ s = do+ vars <- ask+ when (l vars) $ do+ liftIO . putStrLn $ "*** " ++ s++l $= f = \v -> do+ vars <- ask+ liftIO $ writeIORef (l vars) (f v)+ return ()+l += f = \v -> do+ vars <- ask+ v' <- liftIO $ readIORef (l vars)+ liftIO $ writeIORef (l vars) (f v + v')+ return ()+l @= v = do+ vars <- ask+ v' <- liftIO $ readIORef (l vars)+ liftIO $ writeIORef (l vars) (v : v')+ return ()+l %= (k, v) = do+ vars <- ask+ liftIO $ hashInsert (l vars) k v+ return ()+l %? k = do+ vars <- ask+ liftIO $ hashLookup (l vars) k+l %: k = return . fromJust'' =<< (l %? k)++l %%= kvList = do+ vars <- ask+ liftIO $ mapM_ (\(k, v) -> writeIOArray (l vars) k v) kvList++applyToChunk :: (Rec a, ChunkBuf c n b) => (a -> x) -> c -> IOm x+applyToChunk f c = return . f . fromRecord =<< (liftIO . chunkToRecord) c++withChunk :: (ChunkBuf a n b, MonadIO m) => a -> (forall r. (Rec r) => r -> m x) -> m x+withChunk c = chunkApply (fst . chunkDecon $ c) c++splitRecords :: (ChunkBuf c n b, Typeable t) => t -> [c] -> [[c]]+splitRecords t = groupBy (const $ not . (~~ t))++findRecord :: (a -> Bool) -> [Record a] -> a+findRecord f = fromRecord . fromJust' . find (f . fromRecord)++fromJust' (Just x) = x+fromJust' Nothing = error "fromJust1 - fail"++fromJust'' (Just x) = x+fromJust'' Nothing = error "fromJust2 - fail"++matchRecord :: (RecData a b, Eq c) => c -> (b -> c) -> a -> b+matchRecord n f = findRecord ((n ==) . f) . readData++matchRecordMaybe :: (RecData a b, Eq c) => c -> (b -> c) -> a -> Maybe b+matchRecordMaybe n f = findRecordMaybe ((n ==) . f) . readData++findRecordMaybe :: (a -> Bool) -> [Record a] -> Maybe a+findRecordMaybe f = maybe Nothing (Just . fromRecord) . find (f . fromRecord)++fromA :: (Binary a, Storable a) => a -> IOm String+fromA item = liftIO $ do+ bh <- newBinBuf (sizeOf item)+ put bh item+ seekBin bh 0+ return . trim =<< fromAStr =<< get bh++trim :: String -> String+trim = takeWhile $ not . isSpace++catBuf :: (Buf a) => a -> a -> IOm a+catBuf b1 b2 = liftIO $ do+ pstr <- mallocForeignPtrBytes len+ withForeignPtr pstr $ \cstr -> do+ when (l1 > 0) $+ withForeignPtr p1 $ \c1 -> copyBytes cstr c1 l1+ when (l2 > 0) $+ withForeignPtr p2 $ \c2 -> copyBytes (plusPtr cstr l1) c2 l2+ return $ bufFromPStrLen (pstr, len)+ where+ len = l1 + l2+ (p1, l1) = bufToPStrLen b1+ (p2, l2) = bufToPStrLen b2++subBuf :: (Buf a, Integral b, Integral c) => a -> b -> c -> IOm a+subBuf buf pos len = liftIO $ do+ withForeignPtr pstr $ \cstr -> do+ pstr' <- newForeignPtr_ (plusPtr cstr $ fromEnum pos)+ addFinalizer pstr' $ touchForeignPtr pstr -- ???+ return $ bufFromPStrLen (pstr', fromEnum len)+ where+ (pstr, _) = bufToPStrLen buf -- XXX - check size bounds?++subBufs :: (Buf a, Integral b, Integral c) => [a] -> b -> c -> IOm a+subBufs (b:bs) pos len = do+ if (pos <= len') then+ subBuf b pos len+ else+ subBufs bs (pos - len') len+ where+ len' = toEnum $ snd $ bufToPStrLen b -- XXX - check size bounds?++showBitmap :: (Integral i, Show a) => [a] -> i -> IOm ()+showBitmap [] _ = return ()+showBitmap bitmap n = do+ liftIO $ putStrLn . concatMap hex2bin . concatMap show $ genericTake n bitmap+ showBitmap (genericDrop n bitmap) n++hex2bin '0' = "...."+hex2bin '1' = "...@"+hex2bin '2' = "..@."+hex2bin '3' = "..@@"+hex2bin '4' = ".@.."+hex2bin '5' = ".@.@"+hex2bin '6' = ".@@."+hex2bin '7' = ".@@@"+hex2bin '8' = "@..."+hex2bin '9' = "@..@"+hex2bin 'A' = "@.@."+hex2bin 'B' = "@.@@"+hex2bin 'C' = "@@.."+hex2bin 'D' = "@@.@"+hex2bin 'E' = "@@@."+hex2bin 'F' = "@@@@"++fromA8 :: A8 -> String+fromA8 w = [+ (ebc2asc ! fromIntegral (w `shiftR` 56)),+ (ebc2asc ! fromIntegral ((w `shiftR` 48) .&. 0xff)),+ (ebc2asc ! fromIntegral ((w `shiftR` 40) .&. 0xff)),+ (ebc2asc ! fromIntegral ((w `shiftR` 32) .&. 0xff)),+ (ebc2asc ! fromIntegral ((w `shiftR` 24) .&. 0xff)),+ (ebc2asc ! fromIntegral ((w `shiftR` 16) .&. 0xff)),+ (ebc2asc ! fromIntegral ((w `shiftR` 8) .&. 0xff)),+ (ebc2asc ! fromIntegral (w .&. 0xff))+ ]++warn :: String -> IOm ()+warn [] = return ()+warn s = liftIO $ do+ hPutStrLn stderr $ "*** Warning: " ++ s++die :: String -> IOm a+die s = liftIO $ do+ hPutStrLn stderr $ "*** Error: " ++ s+ exitFailure++reqArg a b c d e = Option a b (ReqArg e c) d+noArg a b c d = Option a b (NoArg d) c++showUsage options info arg = do+ prg <- getProgName+ let banner = (`usageInfo` options) $+ info prg ++ "\n\n" +++ "Options:"+ if (null arg) then do+ putStrLn banner+ exitWith ExitSuccess+ else die $ arg ++ "\n\n" ++ banner++requiredOpt :: (String -> IO a) -> String -> a+requiredOpt usage r = unsafePerformIO $ do+ usage $ "missing argument: --" ++ r+
+ src/OpenAFP/Records.hs view
@@ -0,0 +1,329 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++-----------------------------------------------------------------------------+-- |+-- Module : OpenAFP.Records+-- Copyright : (c) Audrey Tang 2004, 2006+-- License : BSD-style+-- +-- Maintainer : audreyt@audreyt.org+-- Stability : experimental+-- Portability : non-portable (GHC-only)+--+-- This module imports and re-exports various AFP data structures, and+-- implements an additional "Unknown" type for data without corresponding+-- structures.+--+-----------------------------------------------------------------------------++module OpenAFP.Records (+ module OpenAFP.Records.AFP,+ module OpenAFP.Records.PTX,+ module OpenAFP.Records.MCF,+ module OpenAFP.Records.T,+ AFP_(..),+ Unknown(..), _Unknown,++ lookupAFP, lookupMCF, lookupPTX, lookupT,+) where +import OpenAFP.Types+import OpenAFP.Internals+import OpenAFP.Records.AFP+import OpenAFP.Records.PTX+import OpenAFP.Records.MCF+import OpenAFP.Records.T++---[ Unknown ]--------------------------------------------------++newtype Unknown = Unknown NStr+ deriving (Show, Typeable)++instance Rec Unknown where+ recGet bh = get bh >>= return . Unknown+ recPut bh (Unknown r) = put bh r+ recSizeOf (Unknown r) = sizeOf r+ recView (Unknown r) = viewRecord (typeOf _Unknown) [ viewField "" (viewNStr r) ]++instance Binary Unknown where+ get bh = return $ Unknown $ bufFromPStrLen (bufOf bh)+ put bh (Unknown buf) = putBuf bh $ bufToPStrLen buf++_Unknown = Unknown _NStr++---[ AFP ]-----------------------------------------------------++newtype AFP_ = AFP_ (N3, Buffer2) deriving (Show, Typeable)++instance Binary AFP_ where+ put bh (AFP_ (_, buf)) = do+ put bh ('\x5A', buf)+ get bh = do+ getByte bh+ get' AFP_ bh++lookupMCF :: MCF_ -> N0 -> ChunkType+lookupMCF _ _ = chunkTypeOf _MCF_T -- MCF Triplets++lookupAFP :: AFP_ -> N3 -> ChunkType+lookupAFP _ x = case x of+ 0xD38C87 -> chunkTypeOf _CPI -- Code Page Index+ 0xD38C89 -> chunkTypeOf _FNI -- Font Index+ 0xD38C8A -> chunkTypeOf _CFI -- Coded Font Index+ 0xD3A088 -> chunkTypeOf _MFC -- Medium Finishing Control+ 0xD3A090 -> chunkTypeOf _TLE -- Tag Logical Element+ 0xD3A288 -> chunkTypeOf _MCC -- Medium Copy Count+ 0xD3A289 -> chunkTypeOf _FNM -- Font Patterns Map+ 0xD3A66B -> chunkTypeOf _OBD -- Object Area Descriptor+ 0xD3A67B -> chunkTypeOf _IID -- IM Image Input Descriptor (C)+ 0xD3A687 -> chunkTypeOf _CPD -- Code Page Descriptor+ 0xD3A688 -> chunkTypeOf _MDD -- Medium Descriptor+ 0xD3A689 -> chunkTypeOf _FND -- Font Descriptor+ 0xD3A692 -> chunkTypeOf _CDD -- Container Data Descriptor+ 0xD3A69B -> chunkTypeOf _PTD1 -- Presentation Text Descriptor Format-1 (C)+ 0xD3A6AF -> chunkTypeOf _PGD -- Page Descriptor+ 0xD3A6BB -> chunkTypeOf _GDD -- Graphics Data Descriptor+ 0xD3A6C5 -> chunkTypeOf _FGD -- Form Environment Group Descriptor (O)+ 0xD3A6E3 -> chunkTypeOf _DXD -- Data Map Transmission Subcase Descriptor+ 0xD3A6E7 -> chunkTypeOf _LND -- Line Descriptor+ 0xD3A6EB -> chunkTypeOf _BDD -- Bar Code Data Descriptor+ 0xD3A6FB -> chunkTypeOf _IDD -- Image Data Descriptor+ 0xD3A77B -> chunkTypeOf _IOC -- IM Image Output Control (C)+ 0xD3A787 -> chunkTypeOf _CPC -- Code Page Control+ 0xD3A788 -> chunkTypeOf _MMC -- Medium Modification Control+ 0xD3A789 -> chunkTypeOf _FNC -- Font Control+ 0xD3A78A -> chunkTypeOf _CFC -- Coded Font Control+ 0xD3A79B -> chunkTypeOf _CTC -- Composed Text Control (O)+ 0xD3A7AF -> chunkTypeOf _PMC -- Page Modification Control+ 0xD3A85F -> chunkTypeOf _BPS -- Begin Page Segment+ 0xD3A877 -> chunkTypeOf _BCA -- Begin Color Attribute Table+ 0xD3A87B -> chunkTypeOf _BII -- Begin IM Image (C)+ 0xD3A887 -> chunkTypeOf _BCP -- Begin Code Page+ 0xD3A889 -> chunkTypeOf _BFN -- Begin Font+ 0xD3A88A -> chunkTypeOf _BCF -- Begin Coded Font+ 0xD3A892 -> chunkTypeOf _BOC -- Begin Object Container+ 0xD3A89B -> chunkTypeOf _BPT -- Begin Presentation Text Object+ 0xD3A8A7 -> chunkTypeOf _BDI -- Begin Document Index+ 0xD3A8A8 -> chunkTypeOf _BDT -- Begin Document+ 0xD3A8AD -> chunkTypeOf _BNG -- Begin Named Page Group+ 0xD3A8AF -> chunkTypeOf _BPG -- Begin Page+ 0xD3A8BB -> chunkTypeOf _BGR -- Begin Graphics Object+ 0xD3A8C4 -> chunkTypeOf _BDG -- Begin Document Environment Group+ 0xD3A8C5 -> chunkTypeOf _BFG -- Begin Form Environment Group (O)+ 0xD3A8C6 -> chunkTypeOf _BRG -- Begin Resource Group+ 0xD3A8C7 -> chunkTypeOf _BOG -- Begin Object Environment Group+ 0xD3A8C9 -> chunkTypeOf _BAG -- Begin Active Environment Group+ 0xD3A8CA -> chunkTypeOf _BDM -- Begin Data Map+ 0xD3A8CB -> chunkTypeOf _BPM -- Begin Page Map+ 0xD3A8CC -> chunkTypeOf _BMM -- Begin Medium Map+ 0xD3A8CD -> chunkTypeOf _BFM -- Begin Form Map+ 0xD3A8CE -> chunkTypeOf _BR -- Begin Resource (R)+ 0xD3A8D9 -> chunkTypeOf _BSG -- Begin Resource Environment Group+ 0xD3A8DF -> chunkTypeOf _BMO -- Begin Overlay+ 0xD3A8E3 -> chunkTypeOf _BDX -- Begin Data Map Transmission Subcase+ 0xD3A8EB -> chunkTypeOf _BBC -- Begin Bar Code Object+ 0xD3A8FB -> chunkTypeOf _BIM -- Begin Image Object+ 0xD3A95F -> chunkTypeOf _EPS -- End Page Segment+ 0xD3A977 -> chunkTypeOf _ECA -- End Color Attribute Table+ 0xD3A97B -> chunkTypeOf _EII -- End IM Image (C)+ 0xD3A987 -> chunkTypeOf _ECP -- End Code Page+ 0xD3A989 -> chunkTypeOf _EFN -- End Font+ 0xD3A98A -> chunkTypeOf _ECF -- End Coded Font+ 0xD3A992 -> chunkTypeOf _EOC -- End Object Container+ 0xD3A99B -> chunkTypeOf _EPT -- End Presentation Text Object+ 0xD3A9A7 -> chunkTypeOf _EDI -- End Document Index+ 0xD3A9A8 -> chunkTypeOf _EDT -- End Document+ 0xD3A9AD -> chunkTypeOf _ENG -- End Named Page Group+ 0xD3A9AF -> chunkTypeOf _EPG -- End Page+ 0xD3A9BB -> chunkTypeOf _EGR -- End Graphics Object+ 0xD3A9C4 -> chunkTypeOf _EDG -- End Document Environment Group+ 0xD3A9C5 -> chunkTypeOf _EFG -- End Form Environment Group (O)+ 0xD3A9C6 -> chunkTypeOf _ERG -- End Resource Group+ 0xD3A9C7 -> chunkTypeOf _EOG -- End Object Environment Group+ 0xD3A9C9 -> chunkTypeOf _EAG -- End Active Environment Group+ 0xD3A9CA -> chunkTypeOf _EDM -- End Data Map+ 0xD3A9CB -> chunkTypeOf _EPM -- End Page Map+ 0xD3A9CC -> chunkTypeOf _EMM -- End Medium Map+ 0xD3A9CD -> chunkTypeOf _EFM -- End Form Map+ 0xD3A9CE -> chunkTypeOf _ER -- End Resource (R)+ 0xD3A9D9 -> chunkTypeOf _ESG -- End Resource Environment Group+ 0xD3A9DF -> chunkTypeOf _EMO -- End Overlay+ 0xD3A9E3 -> chunkTypeOf _EDX -- End Data Map Transmission Subcase+ 0xD3A9EB -> chunkTypeOf _EBC -- End Bar Code Object+ 0xD3A9FB -> chunkTypeOf _EIM -- End Image Object+ 0xD3AAE7 -> chunkTypeOf _LNC -- Line Descriptor Count+ 0xD3AB77 -> chunkTypeOf _MCA -- Map Color Attribute Table+ 0xD3AB88 -> chunkTypeOf _MMT -- Map Media Type+ 0xD3AB89 -> chunkTypeOf _FNN -- Font Names (Outline Fonts Only)+ 0xD3AB8A -> chunkTypeOf _MCF -- Map Coded Font+ 0xD3AB92 -> chunkTypeOf _MCD -- Map Container Data+ 0xD3ABAF -> chunkTypeOf _MPG -- Map Page+ 0xD3ABBB -> chunkTypeOf _MGO -- Map Graphics Object+ 0xD3ABC3 -> chunkTypeOf _MDR -- Map Data Resource+ 0xD3ABCC -> chunkTypeOf _IMM -- Invoke Medium Map+ 0xD3ABD8 -> chunkTypeOf _MPO -- Map Page Overlay+ 0xD3ABEA -> chunkTypeOf _MSU -- Map Suppression+ 0xD3ABEB -> chunkTypeOf _MBC -- Map Bar Code Object+ 0xD3ABFB -> chunkTypeOf _MIO -- Map Image Object+ 0xD3AC6B -> chunkTypeOf _OBP -- Object Area Position+ 0xD3AC7B -> chunkTypeOf _ICP -- IM Image Cell Position (C)+ 0xD3AC89 -> chunkTypeOf _FNP -- Font Position+ 0xD3ACAF -> chunkTypeOf _PGP1 -- Page Position Format-1 (C)+ 0xD3AE89 -> chunkTypeOf _FNO -- Font Orientation+ 0xD3AF5F -> chunkTypeOf _IPS -- Include Page Segment+ 0xD3AFAF -> chunkTypeOf _IPG -- Include Page+ 0xD3AFC3 -> chunkTypeOf _IOB -- Include Object+ 0xD3AFD8 -> chunkTypeOf _IPO -- Include Page Overlay+ 0xD3B077 -> chunkTypeOf _CAT -- Color Attribute Table+ 0xD3B15F -> chunkTypeOf _MPS -- Map Page Segment+ 0xD3B18A -> chunkTypeOf _MCF1 -- Map Coded Font Format-1 (C)+ 0xD3B19B -> chunkTypeOf _PTD -- Presentation Text Data Descriptor+ 0xD3B1AF -> chunkTypeOf _PGP -- Page Position+ 0xD3B1DF -> chunkTypeOf _MMO -- Map Medium Overlay+ 0xD3B288 -> chunkTypeOf _PFC -- Presentation Fidelity Control+ 0xD3B2A7 -> chunkTypeOf _IEL -- Index Element+ 0xD3B490 -> chunkTypeOf _LLE -- Link Logical Element+ 0xD3EE7B -> chunkTypeOf _IRD -- IM Image Raster Data (C)+ 0xD3EE89 -> chunkTypeOf _FNG -- Font Patterns+ 0xD3EE92 -> chunkTypeOf _OCD -- Object Container Data+ 0xD3EE9B -> chunkTypeOf _PTX -- Presentation Text Data+ 0xD3EEBB -> chunkTypeOf _GAD -- Graphics Data+ 0xD3EEEB -> chunkTypeOf _BDA -- Bar Code Data+ 0xD3EEEE -> chunkTypeOf _NOP -- No Operation+ 0xD3EEFB -> chunkTypeOf _IPD -- Image Picture Data+ _ -> chunkTypeOf _Unknown+++---[ Triplets ]-------------------------------------------------++lookupT :: T_ -> N1 -> ChunkType+lookupT _ x = case x of+ 0x01 -> chunkTypeOf _T_CGCSGI -- Coded Graphic Character Set Global ID+ 0x02 -> chunkTypeOf _T_FQN -- Fully Qualified Name+ 0x04 -> chunkTypeOf _T_MO -- Mapping Option+ 0x10 -> chunkTypeOf _T_OCL -- Object Classification+ 0x18 -> chunkTypeOf _T_MIS -- MO:DCA Interchange Set+ 0x1D -> chunkTypeOf _T_TO -- Text Orientation (R)+ 0x1F -> chunkTypeOf _T_FDS -- Font Descriptor Specification+ 0x20 -> chunkTypeOf _T_FCGCSGI -- Font Coded Graphic Character Set Global Identifier+ 0x21 -> chunkTypeOf _T_OFSS -- Object Function Set Specification+ 0x22 -> chunkTypeOf _T_ROT -- Resource Object Type (R)+ 0x23 -> chunkTypeOf _T_ERLI -- Extended Resource Local ID+ 0x24 -> chunkTypeOf _T_RLI -- Resource Local ID+ 0x25 -> chunkTypeOf _T_RSN -- Resource Section Number+ 0x26 -> chunkTypeOf _T_CR -- Character Rotation+ 0x27 -> chunkTypeOf _T_LDOPM -- Line Data Object Position Migration (R)+ 0x2D -> chunkTypeOf _T_OBO -- Object Byte Offset+ 0x36 -> chunkTypeOf _T_AV -- Attribute Value+ 0x43 -> chunkTypeOf _T_DP -- Descriptor Position+ 0x45 -> chunkTypeOf _T_MEC -- Media Eject Control+ 0x46 -> chunkTypeOf _T_POCP -- Page Overlay Conditional Processing+ 0x47 -> chunkTypeOf _T_RUA -- Resource Usage Attribute+ 0x4B -> chunkTypeOf _T_OAMU -- Object Area Measurement Units+ 0x4C -> chunkTypeOf _T_OAS -- Object Area Size+ 0x4D -> chunkTypeOf _T_AD -- Area Definition+ 0x4E -> chunkTypeOf _T_CS -- Color Specification+ 0x50 -> chunkTypeOf _T_ESI -- Encoding Scheme ID+ 0x56 -> chunkTypeOf _T_MMPN -- Medium Map Page Number+ 0x57 -> chunkTypeOf _T_OBE -- Object Byte Extent+ 0x58 -> chunkTypeOf _T_OSFO -- Object Structured Field Offset+ 0x59 -> chunkTypeOf _T_OSFE -- Object Structured Field Extent+ 0x5A -> chunkTypeOf _T_OO -- Object Offset+ 0x5D -> chunkTypeOf _T_FHSF -- Font Horizontal Scale Factor+ 0x5E -> chunkTypeOf _T_OCO -- Object Count+ 0x62 -> chunkTypeOf _T_LDTS -- Local Date and Time Stamp+ 0x63 -> chunkTypeOf _T_OCH -- Object Checksum (R)+-- 0x63 -> chunkTypeOf _T_T1CRMT -- Type 1 - CRC Resource Management Triplet+-- 0x63 -> chunkTypeOf _T_T2FRMT -- Type 2 - Font Resource Management Triplet+ 0x64 -> chunkTypeOf _T_OOI -- Object Origin Identifier (R)+ 0x65 -> chunkTypeOf _T_C -- Comment+ 0x68 -> chunkTypeOf _T_MOR -- Medium Orientation+ 0x6C -> chunkTypeOf _T_ROI -- Resource Object Include+ 0x6D -> chunkTypeOf _T_EF -- Extension Font+ 0x70 -> chunkTypeOf _T_PSRM -- Presentation Space Reset Mixing+ 0x71 -> chunkTypeOf _T_PSMR -- Presentation Space Mixing Rules+ 0x72 -> chunkTypeOf _T_UDTS -- Universal Date and Time Stamp+ 0x73 -> chunkTypeOf _T_II -- IMM Insertion (R)+ 0x74 -> chunkTypeOf _T_TS -- Toner Saver+ 0x75 -> chunkTypeOf _T_CF -- Color Fidelity+ 0x78 -> chunkTypeOf _T_FF -- Font Fidelity+ 0x79 -> chunkTypeOf _T_MA -- Metric Adjustment+ 0x80 -> chunkTypeOf _T_AQ -- Attribute Qualifier+ 0x81 -> chunkTypeOf _T_PPI -- Page Position Information+ 0x82 -> chunkTypeOf _T_PV -- Parameter Value+ 0x83 -> chunkTypeOf _T_PC -- Presentation Control+ 0x84 -> chunkTypeOf _T_FRMT -- Font Resolution and Metric Technology+ 0x85 -> chunkTypeOf _T_FO -- Finishing Operation+ 0x87 -> chunkTypeOf _T_MF -- Media Fidelity+ _ -> chunkTypeOf _Unknown++---[ PTX ]------------------------------------------------------++lookupPTX :: PTX_ -> N1 -> ChunkType+lookupPTX _ x = case x of+ 0x74 -> chunkTypeOf _PTX_STC -- Set Text Color+ 0x75 -> chunkTypeOf _PTX_STC+ 0xC0 -> chunkTypeOf _PTX_SIM -- Set Inline Margin+ 0xC1 -> chunkTypeOf _PTX_SIM+ 0xC2 -> chunkTypeOf _PTX_SIA -- Set Intercharacter Adjustment+ 0xC3 -> chunkTypeOf _PTX_SIA+ 0xC4 -> chunkTypeOf _PTX_SVI -- Set Variable-Space Character Increment+ 0xC5 -> chunkTypeOf _PTX_SVI+ 0xC6 -> chunkTypeOf _PTX_AMI -- Absolute Move Inline+ 0xC7 -> chunkTypeOf _PTX_AMI+ 0xC8 -> chunkTypeOf _PTX_RMI -- Relative Move Inline+ 0xC9 -> chunkTypeOf _PTX_RMI+ 0xD0 -> chunkTypeOf _PTX_SBI -- Set Baseline Increment+ 0xD1 -> chunkTypeOf _PTX_SBI+ 0xD2 -> chunkTypeOf _PTX_AMB -- Absolute Move Baseline+ 0xD3 -> chunkTypeOf _PTX_AMB+ 0xD4 -> chunkTypeOf _PTX_RMB -- Relative Move Baseline+ 0xD5 -> chunkTypeOf _PTX_RMB+ 0xD8 -> chunkTypeOf _PTX_BLN -- Begin Line Next+ 0xD9 -> chunkTypeOf _PTX_BLN+ 0xE4 -> chunkTypeOf _PTX_DIR -- Draw I-Axis Rule+ 0xE5 -> chunkTypeOf _PTX_DIR+ 0xE6 -> chunkTypeOf _PTX_DBR -- Draw B-Axis Rule+ 0xE7 -> chunkTypeOf _PTX_DBR+ 0xEE -> chunkTypeOf _PTX_RPS -- Repeat String+ 0xEF -> chunkTypeOf _PTX_RPS+ 0xF0 -> chunkTypeOf _PTX_SCFL -- Set Coded Font Local+ 0xF1 -> chunkTypeOf _PTX_SCFL+ 0xF2 -> chunkTypeOf _PTX_BSU -- Begin Suppression+ 0xF3 -> chunkTypeOf _PTX_BSU+ 0xF4 -> chunkTypeOf _PTX_ESU -- Begin Suppression+ 0xF5 -> chunkTypeOf _PTX_ESU+ 0xF6 -> chunkTypeOf _PTX_STO -- Set Text Orientation+ 0xF7 -> chunkTypeOf _PTX_STO+ 0xF8 -> chunkTypeOf _PTX_NOP -- No Operation+ 0xF9 -> chunkTypeOf _PTX_NOP+ 0xDA -> chunkTypeOf _PTX_TRN -- Transparent Data+ 0xDB -> chunkTypeOf _PTX_TRN+ _ -> chunkTypeOf _Unknown++-- XXX -- refactor it back to class+get' :: (Binary t, Buf b, Binary b) => ((t, b) -> c) -> BinHandle -> IO c+get' constr bh = do+ buf <- get bh+ buftype <- getBufType buf+ let chunk = constr (buftype, buf)+ let (pstr, len) = bufToPStrLen buf+ addFinalizer chunk $ touchForeignPtr pstr+ return chunk++getBufType buf = do+ bh <- openBinBuf $ bufToPStrLen buf+ get bh++instance Binary PTX_ where+ put bh (PTX_ (_, buf)) = put bh buf+ get = get' PTX_++instance Binary MCF_ where+ put bh (MCF_ (_, buf)) = put bh buf+ get bh = do+ buf <- get bh+ return $ MCF_ (N0 (), buf)++instance Binary T_ where+ put bh (T_ (_, buf)) = put bh buf+ get = get' T_
+ src/OpenAFP/Records/AFP.hs view
@@ -0,0 +1,516 @@+module OpenAFP.Records.AFP (+ module OpenAFP.Records.AFP.BAG, _BAG,+ module OpenAFP.Records.AFP.BBC, _BBC,+ module OpenAFP.Records.AFP.BCA, _BCA,+ module OpenAFP.Records.AFP.BCF, _BCF,+ module OpenAFP.Records.AFP.BCP, _BCP,+ module OpenAFP.Records.AFP.BDA, _BDA,+ module OpenAFP.Records.AFP.BDD, _BDD,+ module OpenAFP.Records.AFP.BDG, _BDG,+ module OpenAFP.Records.AFP.BDI, _BDI,+ module OpenAFP.Records.AFP.BDM, _BDM,+ module OpenAFP.Records.AFP.BDT, _BDT,+ module OpenAFP.Records.AFP.BDX, _BDX,+ module OpenAFP.Records.AFP.BFG, _BFG,+ module OpenAFP.Records.AFP.BFM, _BFM,+ module OpenAFP.Records.AFP.BFN, _BFN,+ module OpenAFP.Records.AFP.BGR, _BGR,+ module OpenAFP.Records.AFP.BII, _BII,+ module OpenAFP.Records.AFP.BIM, _BIM,+ module OpenAFP.Records.AFP.BMM, _BMM,+ module OpenAFP.Records.AFP.BMO, _BMO,+ module OpenAFP.Records.AFP.BNG, _BNG,+ module OpenAFP.Records.AFP.BOC, _BOC,+ module OpenAFP.Records.AFP.BOG, _BOG,+ module OpenAFP.Records.AFP.BPG, _BPG,+ module OpenAFP.Records.AFP.BPM, _BPM,+ module OpenAFP.Records.AFP.BPS, _BPS,+ module OpenAFP.Records.AFP.BPT, _BPT,+ module OpenAFP.Records.AFP.BR, _BR,+ module OpenAFP.Records.AFP.BRG, _BRG,+ module OpenAFP.Records.AFP.BSG, _BSG,+ module OpenAFP.Records.AFP.CAT, _CAT,+ module OpenAFP.Records.AFP.CDD, _CDD,+ module OpenAFP.Records.AFP.CFC, _CFC,+ module OpenAFP.Records.AFP.CFI, _CFI,+ _CFI_Data,+ module OpenAFP.Records.AFP.CPC, _CPC,+ module OpenAFP.Records.AFP.CPD, _CPD,+ module OpenAFP.Records.AFP.CPI, _CPI,+ _CPI_Data,+ module OpenAFP.Records.AFP.CTC, _CTC,+ module OpenAFP.Records.AFP.DXD, _DXD,+ module OpenAFP.Records.AFP.EAG, _EAG,+ module OpenAFP.Records.AFP.EBC, _EBC,+ module OpenAFP.Records.AFP.ECA, _ECA,+ module OpenAFP.Records.AFP.ECF, _ECF,+ module OpenAFP.Records.AFP.ECP, _ECP,+ module OpenAFP.Records.AFP.EDG, _EDG,+ module OpenAFP.Records.AFP.EDI, _EDI,+ module OpenAFP.Records.AFP.EDM, _EDM,+ module OpenAFP.Records.AFP.EDT, _EDT,+ module OpenAFP.Records.AFP.EDX, _EDX,+ module OpenAFP.Records.AFP.EFG, _EFG,+ module OpenAFP.Records.AFP.EFM, _EFM,+ module OpenAFP.Records.AFP.EFN, _EFN,+ module OpenAFP.Records.AFP.EGR, _EGR,+ module OpenAFP.Records.AFP.EII, _EII,+ module OpenAFP.Records.AFP.EIM, _EIM,+ module OpenAFP.Records.AFP.EMM, _EMM,+ module OpenAFP.Records.AFP.EMO, _EMO,+ module OpenAFP.Records.AFP.ENG, _ENG,+ module OpenAFP.Records.AFP.EOC, _EOC,+ module OpenAFP.Records.AFP.EOG, _EOG,+ module OpenAFP.Records.AFP.EPG, _EPG,+ module OpenAFP.Records.AFP.EPM, _EPM,+ module OpenAFP.Records.AFP.EPS, _EPS,+ module OpenAFP.Records.AFP.EPT, _EPT,+ module OpenAFP.Records.AFP.ER, _ER,+ module OpenAFP.Records.AFP.ERG, _ERG,+ module OpenAFP.Records.AFP.ESG, _ESG,+ module OpenAFP.Records.AFP.FGD, _FGD,+ module OpenAFP.Records.AFP.FNC, _FNC,+ module OpenAFP.Records.AFP.FND, _FND,+ module OpenAFP.Records.AFP.FNG, _FNG,+ module OpenAFP.Records.AFP.FNI, _FNI,+ _FNI_Data,+ module OpenAFP.Records.AFP.FNM, _FNM,+ _FNM_Data,+ module OpenAFP.Records.AFP.FNN, _FNN,+ module OpenAFP.Records.AFP.FNO, _FNO,+ module OpenAFP.Records.AFP.FNP, _FNP,+ module OpenAFP.Records.AFP.GAD, _GAD,+ module OpenAFP.Records.AFP.GDD, _GDD,+ module OpenAFP.Records.AFP.ICP, _ICP,+ module OpenAFP.Records.AFP.IDD, _IDD,+ module OpenAFP.Records.AFP.IEL, _IEL,+ module OpenAFP.Records.AFP.IID, _IID,+ module OpenAFP.Records.AFP.IMM, _IMM,+ module OpenAFP.Records.AFP.IOB, _IOB,+ module OpenAFP.Records.AFP.IOC, _IOC,+ module OpenAFP.Records.AFP.IPD, _IPD,+ module OpenAFP.Records.AFP.IPG, _IPG,+ module OpenAFP.Records.AFP.IPO, _IPO,+ module OpenAFP.Records.AFP.IPS, _IPS,+ module OpenAFP.Records.AFP.IRD, _IRD,+ module OpenAFP.Records.AFP.LLE, _LLE,+ module OpenAFP.Records.AFP.LNC, _LNC,+ module OpenAFP.Records.AFP.LND, _LND,+ module OpenAFP.Records.AFP.MBC, _MBC,+ module OpenAFP.Records.AFP.MCA, _MCA,+ module OpenAFP.Records.AFP.MCC, _MCC,+ module OpenAFP.Records.AFP.MCD, _MCD,+ module OpenAFP.Records.AFP.MCF, _MCF,+ module OpenAFP.Records.AFP.MCF1, _MCF1,+ _MCF1_Data,+ module OpenAFP.Records.AFP.MDD, _MDD,+ module OpenAFP.Records.AFP.MDR, _MDR,+ module OpenAFP.Records.AFP.MFC, _MFC,+ module OpenAFP.Records.AFP.MGO, _MGO,+ module OpenAFP.Records.AFP.MIO, _MIO,+ module OpenAFP.Records.AFP.MMC, _MMC,+ module OpenAFP.Records.AFP.MMO, _MMO,+ module OpenAFP.Records.AFP.MMT, _MMT,+ module OpenAFP.Records.AFP.MPG, _MPG,+ module OpenAFP.Records.AFP.MPO, _MPO,+ module OpenAFP.Records.AFP.MPS, _MPS,+ module OpenAFP.Records.AFP.MSU, _MSU,+ module OpenAFP.Records.AFP.NOP, _NOP,+ module OpenAFP.Records.AFP.OBD, _OBD,+ module OpenAFP.Records.AFP.OBP, _OBP,+ module OpenAFP.Records.AFP.OCD, _OCD,+ module OpenAFP.Records.AFP.PFC, _PFC,+ module OpenAFP.Records.AFP.PGD, _PGD,+ module OpenAFP.Records.AFP.PGP, _PGP,+ module OpenAFP.Records.AFP.PGP1, _PGP1,+ module OpenAFP.Records.AFP.PMC, _PMC,+ module OpenAFP.Records.AFP.PTD, _PTD,+ module OpenAFP.Records.AFP.PTD1, _PTD1,+ module OpenAFP.Records.AFP.PTX, _PTX,+ module OpenAFP.Records.AFP.TLE, _TLE,+) where+import OpenAFP.Types+import OpenAFP.Records.AFP.BAG+import OpenAFP.Records.AFP.BBC+import OpenAFP.Records.AFP.BCA+import OpenAFP.Records.AFP.BCF+import OpenAFP.Records.AFP.BCP+import OpenAFP.Records.AFP.BDA+import OpenAFP.Records.AFP.BDD+import OpenAFP.Records.AFP.BDG+import OpenAFP.Records.AFP.BDI+import OpenAFP.Records.AFP.BDM+import OpenAFP.Records.AFP.BDT+import OpenAFP.Records.AFP.BDX+import OpenAFP.Records.AFP.BFG+import OpenAFP.Records.AFP.BFM+import OpenAFP.Records.AFP.BFN+import OpenAFP.Records.AFP.BGR+import OpenAFP.Records.AFP.BII+import OpenAFP.Records.AFP.BIM+import OpenAFP.Records.AFP.BMM+import OpenAFP.Records.AFP.BMO+import OpenAFP.Records.AFP.BNG+import OpenAFP.Records.AFP.BOC+import OpenAFP.Records.AFP.BOG+import OpenAFP.Records.AFP.BPG+import OpenAFP.Records.AFP.BPM+import OpenAFP.Records.AFP.BPS+import OpenAFP.Records.AFP.BPT+import OpenAFP.Records.AFP.BR+import OpenAFP.Records.AFP.BRG+import OpenAFP.Records.AFP.BSG+import OpenAFP.Records.AFP.CAT+import OpenAFP.Records.AFP.CDD+import OpenAFP.Records.AFP.CFC+import OpenAFP.Records.AFP.CFI+import OpenAFP.Records.AFP.CPC+import OpenAFP.Records.AFP.CPD+import OpenAFP.Records.AFP.CPI+import OpenAFP.Records.AFP.CTC+import OpenAFP.Records.AFP.DXD+import OpenAFP.Records.AFP.EAG+import OpenAFP.Records.AFP.EBC+import OpenAFP.Records.AFP.ECA+import OpenAFP.Records.AFP.ECF+import OpenAFP.Records.AFP.ECP+import OpenAFP.Records.AFP.EDG+import OpenAFP.Records.AFP.EDI+import OpenAFP.Records.AFP.EDM+import OpenAFP.Records.AFP.EDT+import OpenAFP.Records.AFP.EDX+import OpenAFP.Records.AFP.EFG+import OpenAFP.Records.AFP.EFM+import OpenAFP.Records.AFP.EFN+import OpenAFP.Records.AFP.EGR+import OpenAFP.Records.AFP.EII+import OpenAFP.Records.AFP.EIM+import OpenAFP.Records.AFP.EMM+import OpenAFP.Records.AFP.EMO+import OpenAFP.Records.AFP.ENG+import OpenAFP.Records.AFP.EOC+import OpenAFP.Records.AFP.EOG+import OpenAFP.Records.AFP.EPG+import OpenAFP.Records.AFP.EPM+import OpenAFP.Records.AFP.EPS+import OpenAFP.Records.AFP.EPT+import OpenAFP.Records.AFP.ER+import OpenAFP.Records.AFP.ERG+import OpenAFP.Records.AFP.ESG+import OpenAFP.Records.AFP.FGD+import OpenAFP.Records.AFP.FNC+import OpenAFP.Records.AFP.FND+import OpenAFP.Records.AFP.FNG+import OpenAFP.Records.AFP.FNI+import OpenAFP.Records.AFP.FNM+import OpenAFP.Records.AFP.FNN+import OpenAFP.Records.AFP.FNO+import OpenAFP.Records.AFP.FNP+import OpenAFP.Records.AFP.GAD+import OpenAFP.Records.AFP.GDD+import OpenAFP.Records.AFP.ICP+import OpenAFP.Records.AFP.IDD+import OpenAFP.Records.AFP.IEL+import OpenAFP.Records.AFP.IID+import OpenAFP.Records.AFP.IMM+import OpenAFP.Records.AFP.IOB+import OpenAFP.Records.AFP.IOC+import OpenAFP.Records.AFP.IPD+import OpenAFP.Records.AFP.IPG+import OpenAFP.Records.AFP.IPO+import OpenAFP.Records.AFP.IPS+import OpenAFP.Records.AFP.IRD+import OpenAFP.Records.AFP.LLE+import OpenAFP.Records.AFP.LNC+import OpenAFP.Records.AFP.LND+import OpenAFP.Records.AFP.MBC+import OpenAFP.Records.AFP.MCA+import OpenAFP.Records.AFP.MCC+import OpenAFP.Records.AFP.MCD+import OpenAFP.Records.AFP.MCF+import OpenAFP.Records.AFP.MCF1+import OpenAFP.Records.AFP.MDD+import OpenAFP.Records.AFP.MDR+import OpenAFP.Records.AFP.MFC+import OpenAFP.Records.AFP.MGO+import OpenAFP.Records.AFP.MIO+import OpenAFP.Records.AFP.MMC+import OpenAFP.Records.AFP.MMO+import OpenAFP.Records.AFP.MMT+import OpenAFP.Records.AFP.MPG+import OpenAFP.Records.AFP.MPO+import OpenAFP.Records.AFP.MPS+import OpenAFP.Records.AFP.MSU+import OpenAFP.Records.AFP.NOP+import OpenAFP.Records.AFP.OBD+import OpenAFP.Records.AFP.OBP+import OpenAFP.Records.AFP.OCD+import OpenAFP.Records.AFP.PFC+import OpenAFP.Records.AFP.PGD+import OpenAFP.Records.AFP.PGP+import OpenAFP.Records.AFP.PGP1+import OpenAFP.Records.AFP.PMC+import OpenAFP.Records.AFP.PTD+import OpenAFP.Records.AFP.PTD1+import OpenAFP.Records.AFP.PTX+import OpenAFP.Records.AFP.TLE++_BAG :: BAG+_BAG = BAG 0xD3A8C9 0 _NStr+_BBC :: BBC+_BBC = BBC 0xD3A8EB 0 _NStr+_BCA :: BCA+_BCA = BCA 0xD3A877 0 _NStr+_BCF :: BCF+_BCF = BCF 0xD3A88A 0 _NStr+_BCP :: BCP+_BCP = BCP 0xD3A887 0 _NStr+_BDA :: BDA+_BDA = BDA 0xD3EEEB 0 _NStr+_BDD :: BDD+_BDD = BDD 0xD3A6EB 0 _NStr+_BDG :: BDG+_BDG = BDG 0xD3A8C4 0 _NStr+_BDI :: BDI+_BDI = BDI 0xD3A8A7 0 _NStr+_BDM :: BDM+_BDM = BDM 0xD3A8CA 0 _NStr+_BDT :: BDT+_BDT = BDT 0xD3A8A8 0 _NStr+_BDX :: BDX+_BDX = BDX 0xD3A8E3 0 _NStr+_BFG :: BFG+_BFG = BFG 0xD3A8C5 0 _NStr+_BFM :: BFM+_BFM = BFM 0xD3A8CD 0 _NStr+_BFN :: BFN+_BFN = BFN 0xD3A889 0 _NStr+_BGR :: BGR+_BGR = BGR 0xD3A8BB 0 _NStr+_BII :: BII+_BII = BII 0xD3A87B 0 0+_BIM :: BIM+_BIM = BIM 0xD3A8FB 0 _NStr+_BMM :: BMM+_BMM = BMM 0xD3A8CC 0 _NStr+_BMO :: BMO+_BMO = BMO 0xD3A8DF 0 _NStr+_BNG :: BNG+_BNG = BNG 0xD3A8AD 0 _NStr+_BOC :: BOC+_BOC = BOC 0xD3A892 0 _NStr+_BOG :: BOG+_BOG = BOG 0xD3A8C7 0 _NStr+_BPG :: BPG+_BPG = BPG 0xD3A8AF 0 _NStr+_BPM :: BPM+_BPM = BPM 0xD3A8CB 0 _NStr+_BPS :: BPS+_BPS = BPS 0xD3A85F 0 _NStr+_BPT :: BPT+_BPT = BPT 0xD3A89B 0 _NStr+_BR :: BR+_BR = BR 0xD3A8CE 0 _NStr+_BRG :: BRG+_BRG = BRG 0xD3A8C6 0 _NStr+_BSG :: BSG+_BSG = BSG 0xD3A8D9 0 _NStr+_CAT :: CAT+_CAT = CAT 0xD3B077 0 _NStr+_CDD :: CDD+_CDD = CDD 0xD3A692 0 _NStr+_CFC :: CFC+_CFC = CFC 0xD3A78A 0 0 _NStr+_CFI :: CFI+_CFI = CFI 0xD38C8A 0 []+_CFI_Data :: CFI_Data+_CFI_Data = CFI_Data 0 0 0 0+_CPC :: CPC+_CPC = CPC 0xD3A787 0 0 0 0 0 0 _NStr+_CPD :: CPD+_CPD = CPD 0xD3A687 0 _NStr+_CPI :: CPI+_CPI = CPI 0xD38C87 0 []+_CPI_Data :: CPI_Data+_CPI_Data = CPI_Data 0 0 0+_CTC :: CTC+_CTC = CTC 0xD3A79B 0 _NStr+_DXD :: DXD+_DXD = DXD 0xD3A6E3 0 _NStr+_EAG :: EAG+_EAG = EAG 0xD3A9C9 0 _NStr+_EBC :: EBC+_EBC = EBC 0xD3A9EB 0 _NStr+_ECA :: ECA+_ECA = ECA 0xD3A977 0 _NStr+_ECF :: ECF+_ECF = ECF 0xD3A98A 0 _NStr+_ECP :: ECP+_ECP = ECP 0xD3A987 0 _NStr+_EDG :: EDG+_EDG = EDG 0xD3A9C4 0 _NStr+_EDI :: EDI+_EDI = EDI 0xD3A9A7 0 _NStr+_EDM :: EDM+_EDM = EDM 0xD3A9CA 0 _NStr+_EDT :: EDT+_EDT = EDT 0xD3A9A8 0 _NStr+_EDX :: EDX+_EDX = EDX 0xD3A9E3 0 _NStr+_EFG :: EFG+_EFG = EFG 0xD3A9C5 0 _NStr+_EFM :: EFM+_EFM = EFM 0xD3A9CD 0 _NStr+_EFN :: EFN+_EFN = EFN 0xD3A989 0 _NStr+_EGR :: EGR+_EGR = EGR 0xD3A9BB 0 _NStr+_EII :: EII+_EII = EII 0xD3A97B 0 0+_EIM :: EIM+_EIM = EIM 0xD3A9FB 0 _NStr+_EMM :: EMM+_EMM = EMM 0xD3A9CC 0 _NStr+_EMO :: EMO+_EMO = EMO 0xD3A9DF 0 _NStr+_ENG :: ENG+_ENG = ENG 0xD3A9AD 0 _NStr+_EOC :: EOC+_EOC = EOC 0xD3A992 0 _NStr+_EOG :: EOG+_EOG = EOG 0xD3A9C7 0 _NStr+_EPG :: EPG+_EPG = EPG 0xD3A9AF 0 _NStr+_EPM :: EPM+_EPM = EPM 0xD3A9CB 0 _NStr+_EPS :: EPS+_EPS = EPS 0xD3A95F 0 _NStr+_EPT :: EPT+_EPT = EPT 0xD3A99B 0 _NStr+_ER :: ER+_ER = ER 0xD3A9CE 0 _NStr+_ERG :: ERG+_ERG = ERG 0xD3A9C6 0 _NStr+_ESG :: ESG+_ESG = ESG 0xD3A9D9 0 _NStr+_FGD :: FGD+_FGD = FGD 0xD3A6C5 0 _NStr+_FNC :: FNC+_FNC = FNC 0xD3A789 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 _NStr+_FND :: FND+_FND = FND 0xD3A689 0 _NStr+_FNG :: FNG+_FNG = FNG 0xD3EE89 0 _NStr+_FNI :: FNI+_FNI = FNI 0xD38C89 0 []+_FNI_Data :: FNI_Data+_FNI_Data = FNI_Data 0 0 0 0 0 0 0 0 0 0 0+_FNM :: FNM+_FNM = FNM 0xD3A289 0 []+_FNM_Data :: FNM_Data+_FNM_Data = FNM_Data 0 0 0+_FNN :: FNN+_FNN = FNN 0xD3AB89 0 _NStr+_FNO :: FNO+_FNO = FNO 0xD3AE89 0 0 0 0 0 0 _NStr+_FNP :: FNP+_FNP = FNP 0xD3AC89 0 _NStr+_GAD :: GAD+_GAD = GAD 0xD3EEBB 0 _NStr+_GDD :: GDD+_GDD = GDD 0xD3A6BB 0 _NStr+_ICP :: ICP+_ICP = ICP 0xD3AC7B 0 0 0 0 0 0 0+_IDD :: IDD+_IDD = IDD 0xD3A6FB 0 _NStr+_IEL :: IEL+_IEL = IEL 0xD3B2A7 0 _NStr+_IID :: IID+_IID = IID 0xD3A67B 0 0 0 0 0 0 0 0 0 0 0 0 0+_IMM :: IMM+_IMM = IMM 0xD3ABCC 0 _NStr+_IOB :: IOB+_IOB = IOB 0xD3AFC3 0 _NStr+_IOC :: IOC+_IOC = IOC 0xD3A77B 0 0 0 0 0 0 0 0 0 0 0+_IPD :: IPD+_IPD = IPD 0xD3EEFB 0 _NStr+_IPG :: IPG+_IPG = IPG 0xD3AFAF 0 _NStr+_IPO :: IPO+_IPO = IPO 0xD3AFD8 0 _NStr+_IPS :: IPS+_IPS = IPS 0xD3AF5F 0 _NStr+_IRD :: IRD+_IRD = IRD 0xD3EE7B 0 _NStr+_LLE :: LLE+_LLE = LLE 0xD3B490 0 _NStr+_LNC :: LNC+_LNC = LNC 0xD3AAE7 0 _NStr+_LND :: LND+_LND = LND 0xD3A6E7 0 _NStr+_MBC :: MBC+_MBC = MBC 0xD3ABEB 0 _NStr+_MCA :: MCA+_MCA = MCA 0xD3AB77 0 _NStr+_MCC :: MCC+_MCC = MCC 0xD3A288 0 _NStr+_MCD :: MCD+_MCD = MCD 0xD3AB92 0 _NStr+_MCF :: MCF+_MCF = MCF 0xD3AB8A 0 []+_MCF1 :: MCF1+_MCF1 = MCF1 0xD3B18A 0 0 0 []+_MCF1_Data :: MCF1_Data+_MCF1_Data = MCF1_Data 0 0 0 0 0 0 0 0+_MDD :: MDD+_MDD = MDD 0xD3A688 0 _NStr+_MDR :: MDR+_MDR = MDR 0xD3ABC3 0 _NStr+_MFC :: MFC+_MFC = MFC 0xD3A088 0 _NStr+_MGO :: MGO+_MGO = MGO 0xD3ABBB 0 _NStr+_MIO :: MIO+_MIO = MIO 0xD3ABFB 0 _NStr+_MMC :: MMC+_MMC = MMC 0xD3A788 0 _NStr+_MMO :: MMO+_MMO = MMO 0xD3B1DF 0 _NStr+_MMT :: MMT+_MMT = MMT 0xD3AB88 0 _NStr+_MPG :: MPG+_MPG = MPG 0xD3ABAF 0 _NStr+_MPO :: MPO+_MPO = MPO 0xD3ABD8 0 _NStr+_MPS :: MPS+_MPS = MPS 0xD3B15F 0 _NStr+_MSU :: MSU+_MSU = MSU 0xD3ABEA 0 _NStr+_NOP :: NOP+_NOP = NOP 0xD3EEEE 0 _NStr+_OBD :: OBD+_OBD = OBD 0xD3A66B 0 _NStr+_OBP :: OBP+_OBP = OBP 0xD3AC6B 0 _NStr+_OCD :: OCD+_OCD = OCD 0xD3EE92 0 _NStr+_PFC :: PFC+_PFC = PFC 0xD3B288 0 _NStr+_PGD :: PGD+_PGD = PGD 0xD3A6AF 0 0 0 0 0 0 0 0 0 _NStr+_PGP :: PGP+_PGP = PGP 0xD3B1AF 0 _NStr+_PGP1 :: PGP1+_PGP1 = PGP1 0xD3ACAF 0 _NStr+_PMC :: PMC+_PMC = PMC 0xD3A7AF 0 _NStr+_PTD :: PTD+_PTD = PTD 0xD3B19B 0 _NStr+_PTD1 :: PTD1+_PTD1 = PTD1 0xD3A69B 0 _NStr+_PTX :: PTX+_PTX = PTX 0xD3EE9B 0 0 []+_TLE :: TLE+_TLE = TLE 0xD3A090 0 [] 0 0 0 0 0 0 _NStr+
+ src/OpenAFP/Records/AFP/BAG.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BAG where+import OpenAFP.Types+import OpenAFP.Internals++data BAG = BAG {+ bag_Type :: !N3+ ,bag_ :: !N3+ ,bag :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BBC.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BBC where+import OpenAFP.Types+import OpenAFP.Internals+ +data BBC = BBC {+ bbc_Type :: !N3+ ,bbc_ :: !N3+ ,bbc :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BCA.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BCA where+import OpenAFP.Types+import OpenAFP.Internals+ +data BCA = BCA {+ bca_Type :: !N3+ ,bca_ :: !N3+ ,bca :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BCF.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BCF where+import OpenAFP.Types+import OpenAFP.Internals+ +data BCF = BCF {+ bcf_Type :: !N3+ ,bcf_ :: !N3+ ,bcf :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BCP.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BCP where+import OpenAFP.Types+import OpenAFP.Internals+ +data BCP = BCP {+ bcp_Type :: !N3+ ,bcp_ :: !N3+ ,bcp :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BDA.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BDA where+import OpenAFP.Types+import OpenAFP.Internals+ +data BDA = BDA {+ bda_Type :: !N3+ ,bda_ :: !N3+ ,bda :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BDD.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BDD where+import OpenAFP.Types+import OpenAFP.Internals+ +data BDD = BDD {+ bdd_Type :: !N3+ ,bdd_ :: !N3+ ,bdd :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BDG.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BDG where+import OpenAFP.Types+import OpenAFP.Internals+ +data BDG = BDG {+ bdg_Type :: !N3+ ,bdg_ :: !N3+ ,bdg :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BDI.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BDI where+import OpenAFP.Types+import OpenAFP.Internals+ +data BDI = BDI {+ bdi_Type :: !N3+ ,bdi_ :: !N3+ ,bdi :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BDM.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BDM where+import OpenAFP.Types+import OpenAFP.Internals+ +data BDM = BDM {+ bdm_Type :: !N3+ ,bdm_ :: !N3+ ,bdm :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BDT.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BDT where+import OpenAFP.Types+import OpenAFP.Internals+ +data BDT = BDT {+ bdt_Type :: !N3+ ,bdt_ :: !N3+ ,bdt :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BDX.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BDX where+import OpenAFP.Types+import OpenAFP.Internals+ +data BDX = BDX {+ bdx_Type :: !N3+ ,bdx_ :: !N3+ ,bdx :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BFG.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BFG where+import OpenAFP.Types+import OpenAFP.Internals+ +data BFG = BFG {+ bfg_Type :: !N3+ ,bfg_ :: !N3+ ,bfg :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BFM.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BFM where+import OpenAFP.Types+import OpenAFP.Internals+ +data BFM = BFM {+ bfm_Type :: !N3+ ,bfm_ :: !N3+ ,bfm :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BFN.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BFN where+import OpenAFP.Types+import OpenAFP.Internals+ +data BFN = BFN {+ bfn_Type :: !N3+ ,bfn_ :: !N3+ ,bfn :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BGR.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BGR where+import OpenAFP.Types+import OpenAFP.Internals+ +data BGR = BGR {+ bgr_Type :: !N3+ ,bgr_ :: !N3+ ,bgr :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BII.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BII where+import OpenAFP.Types+import OpenAFP.Internals+ +data BII = BII {+ bii_Type :: !N3+ ,bii_ :: !N3+ ,bii_ImageObjectName :: !A8+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BIM.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BIM where+import OpenAFP.Types+import OpenAFP.Internals+ +data BIM = BIM {+ bim_Type :: !N3+ ,bim_ :: !N3+ ,bim :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BMM.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BMM where+import OpenAFP.Types+import OpenAFP.Internals+ +data BMM = BMM {+ bmm_Type :: !N3+ ,bmm_ :: !N3+ ,bmm :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BMO.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BMO where+import OpenAFP.Types+import OpenAFP.Internals+ +data BMO = BMO {+ bmo_Type :: !N3+ ,bmo_ :: !N3+ ,bmo :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BNG.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BNG where+import OpenAFP.Types+import OpenAFP.Internals+ +data BNG = BNG {+ bng_Type :: !N3+ ,bng_ :: !N3+ ,bng :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BOC.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BOC where+import OpenAFP.Types+import OpenAFP.Internals+ +data BOC = BOC {+ boc_Type :: !N3+ ,boc_ :: !N3+ ,boc :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BOG.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BOG where+import OpenAFP.Types+import OpenAFP.Internals+ +data BOG = BOG {+ bog_Type :: !N3+ ,bog_ :: !N3+ ,bog :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BPG.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BPG where+import OpenAFP.Types+import OpenAFP.Internals+ +data BPG = BPG {+ bpg_Type :: !N3+ ,bpg_ :: !N3+ ,bpg :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BPM.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BPM where+import OpenAFP.Types+import OpenAFP.Internals+ +data BPM = BPM {+ bpm_Type :: !N3+ ,bpm_ :: !N3+ ,bpm :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BPS.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BPS where+import OpenAFP.Types+import OpenAFP.Internals+ +data BPS = BPS {+ bps_Type :: !N3+ ,bps_ :: !N3+ ,bps :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BPT.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BPT where+import OpenAFP.Types+import OpenAFP.Internals+ +data BPT = BPT {+ bpt_Type :: !N3+ ,bpt_ :: !N3+ ,bpt :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BR.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BR where+import OpenAFP.Types+import OpenAFP.Internals+ +data BR = BR {+ br_Type :: !N3+ ,br_ :: !N3+ ,br :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BRG.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BRG where+import OpenAFP.Types+import OpenAFP.Internals+ +data BRG = BRG {+ brg_Type :: !N3+ ,brg_ :: !N3+ ,brg :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/BSG.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.BSG where+import OpenAFP.Types+import OpenAFP.Internals+ +data BSG = BSG {+ bsg_Type :: !N3+ ,bsg_ :: !N3+ ,bsg :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/CAT.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.CAT where+import OpenAFP.Types+import OpenAFP.Internals+ +data CAT = CAT {+ cat_Type :: !N3+ ,cat_ :: !N3+ ,cat :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/CDD.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.CDD where+import OpenAFP.Types+import OpenAFP.Internals+ +data CDD = CDD {+ cdd_Type :: !N3+ ,cdd_ :: !N3+ ,cdd :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/CFC.hs view
@@ -0,0 +1,13 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.CFC where+import OpenAFP.Types+import OpenAFP.Internals+ +data CFC = CFC {+ cfc_Type :: !N3+ ,cfc_ :: !N3+ ,cfc_CFIRepeatingGroupLength :: !N1+ ,cfc :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/CFI.hs view
@@ -0,0 +1,19 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.CFI where+import OpenAFP.Types+import OpenAFP.Internals++data CFI = CFI {+ cfi_Type :: !N3+ ,cfi_ :: !N3+ ,cfi_Data :: ![Record CFI_Data]+} deriving (Show, Typeable)++data CFI_Data = CFI_Data {+ cfi_FontCharacterSetName :: !A8+ ,cfi_CodePageName :: !A8+ ,cfi_CodedFontName :: !A8+ ,cfi_Section :: !N1+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/CPC.hs view
@@ -0,0 +1,17 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.CPC where+import OpenAFP.Types+import OpenAFP.Internals+ +data CPC = CPC {+ cpc_Type :: !N3+ ,cpc_ :: !N3+ ,cpc_GCGID :: !A8+ ,cpc_UseFlags :: !N1+ ,cpc_CPIRepeatingGroupLength :: !N1+ ,cpc_SpaceCharacterSection :: !N1+ ,cpc_UseFlags2 :: !N1+ ,cpc :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/CPD.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.CPD where+import OpenAFP.Types+import OpenAFP.Internals+ +data CPD = CPD {+ cpd_Type :: !N3+ ,cpd_ :: !N3+ ,cpd :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/CPI.hs view
@@ -0,0 +1,18 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.CPI where+import OpenAFP.Types+import OpenAFP.Internals++data CPI = CPI {+ cpi_Type :: !N3+ ,cpi_ :: !N3+ ,cpi_Data :: ![Record CPI_Data]+} deriving (Show, Typeable)++data CPI_Data = CPI_Data {+ cpi_GCGID :: !A8+ ,cpi_Section :: !N1+ ,cpi_CodePoint :: !N1+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/CTC.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.CTC where+import OpenAFP.Types+import OpenAFP.Internals+ +data CTC = CTC {+ ctc_Type :: !N3+ ,ctc_ :: !N3+ ,ctc :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/DXD.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.DXD where+import OpenAFP.Types+import OpenAFP.Internals+ +data DXD = DXD {+ dxd_Type :: !N3+ ,dxd_ :: !N3+ ,dxd :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/EAG.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.EAG where+import OpenAFP.Types+import OpenAFP.Internals+ +data EAG = EAG {+ eag_Type :: !N3+ ,eag_ :: !N3+ ,eag :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/EBC.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.EBC where+import OpenAFP.Types+import OpenAFP.Internals+ +data EBC = EBC {+ ebc_Type :: !N3+ ,ebc_ :: !N3+ ,ebc :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/ECA.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.ECA where+import OpenAFP.Types+import OpenAFP.Internals+ +data ECA = ECA {+ eca_Type :: !N3+ ,eca_ :: !N3+ ,eca :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/ECF.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.ECF where+import OpenAFP.Types+import OpenAFP.Internals+ +data ECF = ECF {+ ecf_Type :: !N3+ ,ecf_ :: !N3+ ,ecf :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/ECP.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.ECP where+import OpenAFP.Types+import OpenAFP.Internals+ +data ECP = ECP {+ ecp_Type :: !N3+ ,ecp_ :: !N3+ ,ecp :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/EDG.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.EDG where+import OpenAFP.Types+import OpenAFP.Internals+ +data EDG = EDG {+ edg_Type :: !N3+ ,edg_ :: !N3+ ,edg :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/EDI.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.EDI where+import OpenAFP.Types+import OpenAFP.Internals+ +data EDI = EDI {+ edi_Type :: !N3+ ,edi_ :: !N3+ ,edi :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/EDM.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.EDM where+import OpenAFP.Types+import OpenAFP.Internals+ +data EDM = EDM {+ edm_Type :: !N3+ ,edm_ :: !N3+ ,edm :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/EDT.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.EDT where+import OpenAFP.Types+import OpenAFP.Internals+ +data EDT = EDT {+ edt_Type :: !N3+ ,edt_ :: !N3+ ,edt :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/EDX.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.EDX where+import OpenAFP.Types+import OpenAFP.Internals+ +data EDX = EDX {+ edx_Type :: !N3+ ,edx_ :: !N3+ ,edx :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/EFG.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.EFG where+import OpenAFP.Types+import OpenAFP.Internals+ +data EFG = EFG {+ efg_Type :: !N3+ ,efg_ :: !N3+ ,efg :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/EFM.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.EFM where+import OpenAFP.Types+import OpenAFP.Internals+ +data EFM = EFM {+ efm_Type :: !N3+ ,efm_ :: !N3+ ,efm :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/EFN.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.EFN where+import OpenAFP.Types+import OpenAFP.Internals+ +data EFN = EFN {+ efn_Type :: !N3+ ,efn_ :: !N3+ ,efn :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/EGR.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.EGR where+import OpenAFP.Types+import OpenAFP.Internals+ +data EGR = EGR {+ egr_Type :: !N3+ ,egr_ :: !N3+ ,egr :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/EII.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.EII where+import OpenAFP.Types+import OpenAFP.Internals+ +data EII = EII {+ eii_Type :: !N3+ ,eii_ :: !N3+ ,eii_ImageObjectName :: !A8+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/EIM.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.EIM where+import OpenAFP.Types+import OpenAFP.Internals+ +data EIM = EIM {+ eim_Type :: !N3+ ,eim_ :: !N3+ ,eim :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/EMM.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.EMM where+import OpenAFP.Types+import OpenAFP.Internals+ +data EMM = EMM {+ emm_Type :: !N3+ ,emm_ :: !N3+ ,emm :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/EMO.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.EMO where+import OpenAFP.Types+import OpenAFP.Internals+ +data EMO = EMO {+ emo_Type :: !N3+ ,emo_ :: !N3+ ,emo :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/ENG.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.ENG where+import OpenAFP.Types+import OpenAFP.Internals+ +data ENG = ENG {+ eng_Type :: !N3+ ,eng_ :: !N3+ ,eng :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/EOC.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.EOC where+import OpenAFP.Types+import OpenAFP.Internals+ +data EOC = EOC {+ eoc_Type :: !N3+ ,eoc_ :: !N3+ ,eoc :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/EOG.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.EOG where+import OpenAFP.Types+import OpenAFP.Internals+ +data EOG = EOG {+ eog_Type :: !N3+ ,eog_ :: !N3+ ,eog :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/EPG.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.EPG where+import OpenAFP.Types+import OpenAFP.Internals+ +data EPG = EPG {+ epg_Type :: !N3+ ,epg_ :: !N3+ ,epg :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/EPM.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.EPM where+import OpenAFP.Types+import OpenAFP.Internals+ +data EPM = EPM {+ epm_Type :: !N3+ ,epm_ :: !N3+ ,epm :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/EPS.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.EPS where+import OpenAFP.Types+import OpenAFP.Internals+ +data EPS = EPS {+ eps_Type :: !N3+ ,eps_ :: !N3+ ,eps :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/EPT.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.EPT where+import OpenAFP.Types+import OpenAFP.Internals+ +data EPT = EPT {+ ept_Type :: !N3+ ,ept_ :: !N3+ ,ept :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/ER.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.ER where+import OpenAFP.Types+import OpenAFP.Internals+ +data ER = ER {+ er_Type :: !N3+ ,er_ :: !N3+ ,er :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/ERG.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.ERG where+import OpenAFP.Types+import OpenAFP.Internals+ +data ERG = ERG {+ erg_Type :: !N3+ ,erg_ :: !N3+ ,erg :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/ESG.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.ESG where+import OpenAFP.Types+import OpenAFP.Internals+ +data ESG = ESG {+ esg_Type :: !N3+ ,esg_ :: !N3+ ,esg :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/FGD.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.FGD where+import OpenAFP.Types+import OpenAFP.Internals+ +data FGD = FGD {+ fgd_Type :: !N3+ ,fgd_ :: !N3+ ,fgd :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/FNC.hs view
@@ -0,0 +1,30 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.FNC where+import OpenAFP.Types+import OpenAFP.Internals++--- XXX - not parsed completely - see FNC.pm+ +data FNC = FNC {+ fnc_Type :: !N3+ ,fnc_ :: !N3+ ,fnc_Constant :: !A1+ ,fnc_PatternTechnologyIdentifier :: !N1+ ,fnc_FNCReserved1 :: !A1+ ,fnc_UseFlags :: !N1+ ,fnc_UnitXBase :: !N1+ ,fnc_UnitYBase :: !N1+ ,fnc_UnitXValue :: !N2+ ,fnc_UnitYValue :: !N2+ ,fnc_MaxWidth :: !N2+ ,fnc_MaxHeight :: !N2+ ,fnc_FNORepeatingGroupLength :: !N1+ ,fnc_FNIRepeatingGroupLength :: !N1+ ,fnc_PatternDataAlignmentCode :: !N1+ ,fnc_PatternDataCount1 :: !A3+ ,fnc_FNPRepeatingGroupLength :: !N1+ ,fnc_FNMRepeatingGroupLength :: !N1+ ,fnc :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/FND.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.FND where+import OpenAFP.Types+import OpenAFP.Internals+ +data FND = FND {+ fnd_Type :: !N3+ ,fnd_ :: !N3+ ,fnd :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/FNG.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.FNG where+import OpenAFP.Types+import OpenAFP.Internals+ +data FNG = FNG {+ fng_Type :: !N3+ ,fng_ :: !N3+ ,fng :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/FNI.hs view
@@ -0,0 +1,26 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.FNI where+import OpenAFP.Types+import OpenAFP.Internals+ +data FNI = FNI {+ fni_Type :: !N3+ ,fni_ :: !N3+ ,fni_Data :: ![Record FNI_Data]+} deriving (Show, Typeable)++data FNI_Data = FNI_Data {+ fni_GCGID :: !A8+ ,fni_CharacterIncrement :: !N2+ ,fni_AscendHeight :: !I2+ ,fni_DescendDepth :: !I2+ ,fni_Reserved1 :: !N2+ ,fni_FNMCount :: !N2+ ,fni_ASpace :: !I2+ ,fni_BSpace :: !N2+ ,fni_CSpace :: !I2+ ,fni_Reserved2 :: !N2+ ,fni_BaseOffset :: !I2+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/FNM.hs view
@@ -0,0 +1,18 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.FNM where+import OpenAFP.Types+import OpenAFP.Internals++data FNM = FNM {+ fnm_Type :: !N3+ ,fnm_ :: !N3+ ,fnm_Data :: ![Record FNM_Data]+} deriving (Show, Typeable)++data FNM_Data = FNM_Data {+ fnm_Width :: !N2+ ,fnm_Height :: !N2+ ,fnm_Offset :: !N4+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/FNN.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.FNN where+import OpenAFP.Types+import OpenAFP.Internals+ +data FNN = FNN {+ fnn_Type :: !N3+ ,fnn_ :: !N3+ ,fnn :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/FNO.hs view
@@ -0,0 +1,17 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.FNO where+import OpenAFP.Types+import OpenAFP.Internals+ +data FNO = FNO {+ fno_Type :: !N3+ ,fno_ :: !N3+ ,fno_Reserved :: !N2+ ,fno_CharacterRotation :: !N2+ ,fno_MaxBaseOffset :: !N2+ ,fno_MaxCharacterIncrement :: !N2+ ,fno_SpaceCharacterIncrement :: !N2+ ,fno :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/FNP.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.FNP where+import OpenAFP.Types+import OpenAFP.Internals+ +data FNP = FNP {+ fnp_Type :: !N3+ ,fnp_ :: !N3+ ,fnp :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/GAD.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.GAD where+import OpenAFP.Types+import OpenAFP.Internals+ +data GAD = GAD {+ gad_Type :: !N3+ ,gad_ :: !N3+ ,gad :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/GDD.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.GDD where+import OpenAFP.Types+import OpenAFP.Internals+ +data GDD = GDD {+ gdd_Type :: !N3+ ,gdd_ :: !N3+ ,gdd :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/ICP.hs view
@@ -0,0 +1,17 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.ICP where+import OpenAFP.Types+import OpenAFP.Internals+ +data ICP = ICP {+ icp_Type :: !N3+ ,icp_ :: !N3+ ,icp_XCellOffset :: !N2+ ,icp_YCellOffset :: !N2+ ,icp_XCellSize :: !N2+ ,icp_YCellSize :: !N2+ ,icp_XFillSize :: !N2+ ,icp_YFillSize :: !N2+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/IDD.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.IDD where+import OpenAFP.Types+import OpenAFP.Internals+ +data IDD = IDD {+ idd_Type :: !N3+ ,idd_ :: !N3+ ,idd :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/IEL.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.IEL where+import OpenAFP.Types+import OpenAFP.Internals+ +data IEL = IEL {+ iel_Type :: !N3+ ,iel_ :: !N3+ ,iel :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/IID.hs view
@@ -0,0 +1,23 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.IID where+import OpenAFP.Types+import OpenAFP.Internals+ +data IID = IID {+ iid_Type :: !N3+ ,iid_ :: !N3+ ,iid_ConstantData1 :: !A12+ ,iid_XBase :: !N1+ ,iid_YBase :: !N1+ ,iid_XUnits :: !N2+ ,iid_YUnits :: !N2+ ,iid_XSize :: !N2+ ,iid_YSize :: !N2+ ,iid_ConstantData2 :: !A6+ ,iid_XCellSizeDefault :: !N2+ ,iid_YCellSizeDefault :: !N2+ ,iid_ConstantData3 :: !A1+ ,iid_Color :: !N2+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/IMM.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.IMM where+import OpenAFP.Types+import OpenAFP.Internals+ +data IMM = IMM {+ imm_Type :: !N3+ ,imm_ :: !N3+ ,imm :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/IOB.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.IOB where+import OpenAFP.Types+import OpenAFP.Internals+ +data IOB = IOB {+ iob_Type :: !N3+ ,iob_ :: !N3+ ,iob :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/IOC.hs view
@@ -0,0 +1,21 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.IOC where+import OpenAFP.Types+import OpenAFP.Internals+ +data IOC = IOC {+ ioc_Type :: !N3+ ,ioc_ :: !N3+ ,ioc_Reserved1 :: !A1+ ,ioc_XOffset :: !N2+ ,ioc_Reserved2 :: !A1+ ,ioc_YOffset :: !N2+ ,ioc_XOrientation :: !N2+ ,ioc_YOrientation :: !N2+ ,ioc_ConstantData1 :: !A8+ ,ioc_XMap :: !N2+ ,ioc_YMap :: !N2+ ,ioc_ConstantData2 :: !A2+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/IPD.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.IPD where+import OpenAFP.Types+import OpenAFP.Internals+ +data IPD = IPD {+ ipd_Type :: !N3+ ,ipd_ :: !N3+ ,ipd :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/IPG.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.IPG where+import OpenAFP.Types+import OpenAFP.Internals+ +data IPG = IPG {+ ipg_Type :: !N3+ ,ipg_ :: !N3+ ,ipg :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/IPO.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.IPO where+import OpenAFP.Types+import OpenAFP.Internals+ +data IPO = IPO {+ ipo_Type :: !N3+ ,ipo_ :: !N3+ ,ipo :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/IPS.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.IPS where+import OpenAFP.Types+import OpenAFP.Internals+ +data IPS = IPS {+ ips_Type :: !N3+ ,ips_ :: !N3+ ,ips :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/IRD.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.IRD where+import OpenAFP.Types+import OpenAFP.Internals+ +data IRD = IRD {+ ird_Type :: !N3+ ,ird_ :: !N3+ ,ird_ImageData :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/LLE.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.LLE where+import OpenAFP.Types+import OpenAFP.Internals+ +data LLE = LLE {+ lle_Type :: !N3+ ,lle_ :: !N3+ ,lle :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/LNC.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.LNC where+import OpenAFP.Types+import OpenAFP.Internals+ +data LNC = LNC {+ lnc_Type :: !N3+ ,lnc_ :: !N3+ ,lnc :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/LND.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.LND where+import OpenAFP.Types+import OpenAFP.Internals+ +data LND = LND {+ lnd_Type :: !N3+ ,lnd_ :: !N3+ ,lnd :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/MBC.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.MBC where+import OpenAFP.Types+import OpenAFP.Internals+ +data MBC = MBC {+ mbc_Type :: !N3+ ,mbc_ :: !N3+ ,mbc :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/MCA.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.MCA where+import OpenAFP.Types+import OpenAFP.Internals+ +data MCA = MCA {+ mca_Type :: !N3+ ,mca_ :: !N3+ ,mca :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/MCC.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.MCC where+import OpenAFP.Types+import OpenAFP.Internals+ +data MCC = MCC {+ mcc_Type :: !N3+ ,mcc_ :: !N3+ ,mcc :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/MCD.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.MCD where+import OpenAFP.Types+import OpenAFP.Internals+ +data MCD = MCD {+ mcd_Type :: !N3+ ,mcd_ :: !N3+ ,mcd :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/MCF.hs view
@@ -0,0 +1,14 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.MCF where+import OpenAFP.Types+import OpenAFP.Internals++newtype MCF_ = MCF_ (N0, Buffer2) deriving (Show, Typeable)++data MCF = MCF {+ mcf_Type :: !N3+ ,mcf_ :: !N3+ ,mcf_Chunks :: ![MCF_]+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/MCF1.hs view
@@ -0,0 +1,25 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.MCF1 where+import OpenAFP.Types+import OpenAFP.Internals++data MCF1_Data = MCF1_Data {+ mcf1_CodedFontLocalId :: !N1+ ,mcf1_Reserved1 :: !A1+ ,mcf1_CodedFontResourceSectionId :: !N1+ ,mcf1_Reserved2 :: !A1+ ,mcf1_CodedFontName :: !A8+ ,mcf1_CodePageName :: !A8+ ,mcf1_FontCharacterSetName :: !A8+ ,mcf1_CharacterRotation :: !N2+} deriving (Show, Typeable)++data MCF1 = MCF1 {+ mcf1_Type :: !N3+ ,mcf1_ :: !N3+ ,mcf1_RepeatingGroupLength :: !N1+ ,mcf1__ :: !A3+ ,mcf1_Data :: ![Record MCF1_Data]+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/MDD.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.MDD where+import OpenAFP.Types+import OpenAFP.Internals+ +data MDD = MDD {+ mdd_Type :: !N3+ ,mdd_ :: !N3+ ,mdd :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/MDR.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.MDR where+import OpenAFP.Types+import OpenAFP.Internals+ +data MDR = MDR {+ mdr_Type :: !N3+ ,mdr_ :: !N3+ ,mdr :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/MFC.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.MFC where+import OpenAFP.Types+import OpenAFP.Internals+ +data MFC = MFC {+ mfc_Type :: !N3+ ,mfc_ :: !N3+ ,mfc :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/MGO.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.MGO where+import OpenAFP.Types+import OpenAFP.Internals+ +data MGO = MGO {+ mgo_Type :: !N3+ ,mgo_ :: !N3+ ,mgo :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/MIO.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.MIO where+import OpenAFP.Types+import OpenAFP.Internals+ +data MIO = MIO {+ mio_Type :: !N3+ ,mio_ :: !N3+ ,mio :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/MMC.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.MMC where+import OpenAFP.Types+import OpenAFP.Internals+ +data MMC = MMC {+ mmc_Type :: !N3+ ,mmc_ :: !N3+ ,mmc :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/MMO.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.MMO where+import OpenAFP.Types+import OpenAFP.Internals+ +data MMO = MMO {+ mmo_Type :: !N3+ ,mmo_ :: !N3+ ,mmo :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/MMT.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.MMT where+import OpenAFP.Types+import OpenAFP.Internals+ +data MMT = MMT {+ mmt_Type :: !N3+ ,mmt_ :: !N3+ ,mmt :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/MPG.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.MPG where+import OpenAFP.Types+import OpenAFP.Internals+ +data MPG = MPG {+ mpg_Type :: !N3+ ,mpg_ :: !N3+ ,mpg :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/MPO.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.MPO where+import OpenAFP.Types+import OpenAFP.Internals+ +data MPO = MPO {+ mpo_Type :: !N3+ ,mpo_ :: !N3+ ,mpo :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/MPS.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.MPS where+import OpenAFP.Types+import OpenAFP.Internals+ +data MPS = MPS {+ mps_Type :: !N3+ ,mps_ :: !N3+ ,mps :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/MSU.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.MSU where+import OpenAFP.Types+import OpenAFP.Internals+ +data MSU = MSU {+ msu_Type :: !N3+ ,msu_ :: !N3+ ,msu :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/NOP.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.NOP where+import OpenAFP.Types+import OpenAFP.Internals+ +data NOP = NOP {+ nop_Type :: !N3+ ,nop_ :: !N3+ ,nop :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/OBD.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.OBD where+import OpenAFP.Types+import OpenAFP.Internals+ +data OBD = OBD {+ obd_Type :: !N3+ ,obd_ :: !N3+ ,obd :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/OBP.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.OBP where+import OpenAFP.Types+import OpenAFP.Internals+ +data OBP = OBP {+ obp_Type :: !N3+ ,obp_ :: !N3+ ,obp :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/OCD.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.OCD where+import OpenAFP.Types+import OpenAFP.Internals+ +data OCD = OCD {+ ocd_Type :: !N3+ ,ocd_ :: !N3+ ,ocd :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/PFC.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.PFC where+import OpenAFP.Types+import OpenAFP.Internals+ +data PFC = PFC {+ pfc_Type :: !N3+ ,pfc_ :: !N3+ ,pfc :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/PGD.hs view
@@ -0,0 +1,20 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.PGD where+import OpenAFP.Types+import OpenAFP.Internals+ +data PGD = PGD {+ pgd_Type :: !N3+ ,pgd_ :: !N3+ ,pgd_XUnitBase :: !N1+ ,pgd_YUnitBase :: !N1+ ,pgd_XLUnitsperUnitBase :: !N2+ ,pgd_YLUnitsperUnitBase :: !N2+ ,pgd_Reserved1 :: !N1+ ,pgd_XPageSize :: !N2+ ,pgd_Reserved2 :: !N1+ ,pgd_YPageSize :: !N2+ ,pgd__ :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/PGP.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.PGP where+import OpenAFP.Types+import OpenAFP.Internals+ +data PGP = PGP {+ pgp_Type :: !N3+ ,pgp_ :: !N3+ ,pgp :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/PGP1.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.PGP1 where+import OpenAFP.Types+import OpenAFP.Internals+ +data PGP1 = PGP1 {+ pgp1_Type :: !N3+ ,pgp1_ :: !N3+ ,pgp1 :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/PMC.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.PMC where+import OpenAFP.Types+import OpenAFP.Internals+ +data PMC = PMC {+ pmc_Type :: !N3+ ,pmc_ :: !N3+ ,pmc :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/PTD.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.PTD where+import OpenAFP.Types+import OpenAFP.Internals+ +data PTD = PTD {+ ptd_Type :: !N3+ ,ptd_ :: !N3+ ,ptd :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/PTD1.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.PTD1 where+import OpenAFP.Types+import OpenAFP.Internals+ +data PTD1 = PTD1 {+ ptd1_Type :: !N3+ ,ptd1_ :: !N3+ ,ptd1 :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/PTX.hs view
@@ -0,0 +1,15 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.PTX where+import OpenAFP.Types+import OpenAFP.Internals++newtype PTX_ = PTX_ (N1, Buffer1) deriving (Show, Typeable)++data PTX = PTX {+ ptx_Type :: !N3+ ,ptx_ :: !N3+ ,ptx_EscapeSequence :: !N2+ ,ptx_Chunks :: ![PTX_]+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/AFP/TLE.hs view
@@ -0,0 +1,19 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}++module OpenAFP.Records.AFP.TLE where+import OpenAFP.Types+import OpenAFP.Internals++data TLE = TLE {+ tle_Type :: !N3+ ,tle_ :: !N3+ ,tle_Chunks :: ![T_]+ ,tle_XUnitBase :: !N1+ ,tle_YUnitBase :: !N1+ ,tle_XLUnitsperUnitBase :: !N2+ ,tle_YLUnitsperUnitBase :: !N2+ ,tle_XPageSize :: !N3+ ,tle_YPageSize :: !N3+ ,tle__ :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/MCF.hs view
@@ -0,0 +1,9 @@+module OpenAFP.Records.MCF (+ module OpenAFP.Records.MCF.T, _MCF_T,+) where+import OpenAFP.Types+import OpenAFP.Records.MCF.T++_MCF_T :: MCF_T+_MCF_T = MCF_T []+
+ src/OpenAFP/Records/MCF/T.hs view
@@ -0,0 +1,9 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.MCF.T where+import OpenAFP.Types+import OpenAFP.Internals++data MCF_T = MCF_T {+ mcf_t_Chunks :: ![T_]+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/PTX.hs view
@@ -0,0 +1,81 @@+module OpenAFP.Records.PTX (+ module OpenAFP.Records.PTX.AMB, _PTX_AMB,+ module OpenAFP.Records.PTX.AMI, _PTX_AMI,+ module OpenAFP.Records.PTX.BLN, _PTX_BLN,+ module OpenAFP.Records.PTX.BSU, _PTX_BSU,+ module OpenAFP.Records.PTX.DBR, _PTX_DBR,+ module OpenAFP.Records.PTX.DIR, _PTX_DIR,+ module OpenAFP.Records.PTX.ESU, _PTX_ESU,+ module OpenAFP.Records.PTX.NOP, _PTX_NOP,+ module OpenAFP.Records.PTX.RMB, _PTX_RMB,+ module OpenAFP.Records.PTX.RMI, _PTX_RMI,+ module OpenAFP.Records.PTX.RPS, _PTX_RPS,+ module OpenAFP.Records.PTX.SBI, _PTX_SBI,+ module OpenAFP.Records.PTX.SCFL, _PTX_SCFL,+ module OpenAFP.Records.PTX.SIA, _PTX_SIA,+ module OpenAFP.Records.PTX.SIM, _PTX_SIM,+ module OpenAFP.Records.PTX.STC, _PTX_STC,+ module OpenAFP.Records.PTX.STO, _PTX_STO,+ module OpenAFP.Records.PTX.SVI, _PTX_SVI,+ module OpenAFP.Records.PTX.TRN, _PTX_TRN,+) where+import OpenAFP.Types+import OpenAFP.Records.PTX.AMB+import OpenAFP.Records.PTX.AMI+import OpenAFP.Records.PTX.BLN+import OpenAFP.Records.PTX.BSU+import OpenAFP.Records.PTX.DBR+import OpenAFP.Records.PTX.DIR+import OpenAFP.Records.PTX.ESU+import OpenAFP.Records.PTX.NOP+import OpenAFP.Records.PTX.RMB+import OpenAFP.Records.PTX.RMI+import OpenAFP.Records.PTX.RPS+import OpenAFP.Records.PTX.SBI+import OpenAFP.Records.PTX.SCFL+import OpenAFP.Records.PTX.SIA+import OpenAFP.Records.PTX.SIM+import OpenAFP.Records.PTX.STC+import OpenAFP.Records.PTX.STO+import OpenAFP.Records.PTX.SVI+import OpenAFP.Records.PTX.TRN++_PTX_AMB :: PTX_AMB+_PTX_AMB = PTX_AMB 0xD2 0+_PTX_AMI :: PTX_AMI+_PTX_AMI = PTX_AMI 0xC6 0+_PTX_BLN :: PTX_BLN+_PTX_BLN = PTX_BLN 0xD8 _NStr+_PTX_BSU :: PTX_BSU+_PTX_BSU = PTX_BSU 0xF2 _NStr+_PTX_DBR :: PTX_DBR+_PTX_DBR = PTX_DBR 0xE6 _NStr+_PTX_DIR :: PTX_DIR+_PTX_DIR = PTX_DIR 0xE4 _NStr+_PTX_ESU :: PTX_ESU+_PTX_ESU = PTX_ESU 0xF4 _NStr+_PTX_NOP :: PTX_NOP+_PTX_NOP = PTX_NOP 0xF8 _NStr+_PTX_RMB :: PTX_RMB+_PTX_RMB = PTX_RMB 0xD4 0+_PTX_RMI :: PTX_RMI+_PTX_RMI = PTX_RMI 0xC8 0+_PTX_RPS :: PTX_RPS+_PTX_RPS = PTX_RPS 0xEE _NStr+_PTX_SBI :: PTX_SBI+_PTX_SBI = PTX_SBI 0xD0 0+_PTX_SCFL :: PTX_SCFL+_PTX_SCFL = PTX_SCFL 0xF0 0+_PTX_SIA :: PTX_SIA+_PTX_SIA = PTX_SIA 0xC2 0+_PTX_SIM :: PTX_SIM+_PTX_SIM = PTX_SIM 0xC0 0+_PTX_STC :: PTX_STC+_PTX_STC = PTX_STC 0x74 _NStr+_PTX_STO :: PTX_STO+_PTX_STO = PTX_STO 0xF6 0 0+_PTX_SVI :: PTX_SVI+_PTX_SVI = PTX_SVI 0xC4 0+_PTX_TRN :: PTX_TRN+_PTX_TRN = PTX_TRN 0xDA _NStr+
+ src/OpenAFP/Records/PTX/AMB.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.PTX.AMB where+import OpenAFP.Types+import OpenAFP.Internals++data PTX_AMB = PTX_AMB {+ ptx_amb_Type :: !N1+ ,ptx_amb :: !N2+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/PTX/AMI.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.PTX.AMI where+import OpenAFP.Types+import OpenAFP.Internals++data PTX_AMI = PTX_AMI {+ ptx_ami_Type :: !N1+ ,ptx_ami :: !N2+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/PTX/BLN.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.PTX.BLN where+import OpenAFP.Types+import OpenAFP.Internals++data PTX_BLN = PTX_BLN {+ ptx_bln_Type :: !N1+ ,ptx_bln :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/PTX/BSU.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.PTX.BSU where+import OpenAFP.Types+import OpenAFP.Internals++data PTX_BSU = PTX_BSU {+ ptx_bsu_Type :: !N1+ ,ptx_bsu :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/PTX/DBR.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.PTX.DBR where+import OpenAFP.Types+import OpenAFP.Internals++data PTX_DBR = PTX_DBR {+ ptx_dbr_Type :: !N1+ ,ptx_dbr :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/PTX/DIR.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.PTX.DIR where+import OpenAFP.Types+import OpenAFP.Internals++data PTX_DIR = PTX_DIR {+ ptx_dir_Type :: !N1+ ,ptx_dir :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/PTX/ESU.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.PTX.ESU where+import OpenAFP.Types+import OpenAFP.Internals++data PTX_ESU = PTX_ESU {+ ptx_esu_Type :: !N1+ ,ptx_esu :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/PTX/NOP.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.PTX.NOP where+import OpenAFP.Types+import OpenAFP.Internals++data PTX_NOP = PTX_NOP {+ ptx_nop_Type :: !N1+ ,ptx_nop :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/PTX/RMB.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.PTX.RMB where+import OpenAFP.Types+import OpenAFP.Internals++data PTX_RMB = PTX_RMB {+ ptx_rmb_Type :: !N1+ ,ptx_rmb :: !N2+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/PTX/RMI.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.PTX.RMI where+import OpenAFP.Types+import OpenAFP.Internals++data PTX_RMI = PTX_RMI {+ ptx_rmi_Type :: !N1+ ,ptx_rmi :: !N2+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/PTX/RPS.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.PTX.RPS where+import OpenAFP.Types+import OpenAFP.Internals++data PTX_RPS = PTX_RPS {+ ptx_rps_Type :: !N1+ ,ptx_rps :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/PTX/SBI.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.PTX.SBI where+import OpenAFP.Types+import OpenAFP.Internals++data PTX_SBI = PTX_SBI {+ ptx_sbi_Type :: !N1+ ,ptx_sbi :: !N2+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/PTX/SCFL.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.PTX.SCFL where+import OpenAFP.Types+import OpenAFP.Internals++data PTX_SCFL = PTX_SCFL {+ ptx_scfl_Type :: !N1+ ,ptx_scfl :: !N1+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/PTX/SIA.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.PTX.SIA where+import OpenAFP.Types+import OpenAFP.Internals++data PTX_SIA = PTX_SIA {+ ptx_sia_Type :: !N1+ ,ptx_sia :: !N2+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/PTX/SIM.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.PTX.SIM where+import OpenAFP.Types+import OpenAFP.Internals++data PTX_SIM = PTX_SIM {+ ptx_sim_Type :: !N1+ ,ptx_sim :: !N2+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/PTX/STC.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.PTX.STC where+import OpenAFP.Types+import OpenAFP.Internals++data PTX_STC = PTX_STC {+ ptx_stc_Type :: !N1+ ,ptx_stc :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/PTX/STO.hs view
@@ -0,0 +1,11 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.PTX.STO where+import OpenAFP.Types+import OpenAFP.Internals++data PTX_STO = PTX_STO {+ ptx_sto_Type :: !N1+ ,ptx_sto_Orientation :: !N2+ ,ptx_sto_WrapDirection :: !N2+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/PTX/SVI.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.PTX.SVI where+import OpenAFP.Types+import OpenAFP.Internals++data PTX_SVI = PTX_SVI {+ ptx_svi_Type :: !N1+ ,ptx_svi :: !N2+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/PTX/TRN.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.PTX.TRN where+import OpenAFP.Types+import OpenAFP.Internals++data PTX_TRN = PTX_TRN {+ ptx_trn_Type :: !N1+ ,ptx_trn :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T.hs view
@@ -0,0 +1,233 @@+module OpenAFP.Records.T (+ module OpenAFP.Records.T.AD, _T_AD,+ module OpenAFP.Records.T.AQ, _T_AQ,+ module OpenAFP.Records.T.AV, _T_AV,+ module OpenAFP.Records.T.C, _T_C,+ module OpenAFP.Records.T.CF, _T_CF,+ module OpenAFP.Records.T.CGCSGI, _T_CGCSGI,+ module OpenAFP.Records.T.CR, _T_CR,+ module OpenAFP.Records.T.CS, _T_CS,+ module OpenAFP.Records.T.DP, _T_DP,+ module OpenAFP.Records.T.EF, _T_EF,+ module OpenAFP.Records.T.ERLI, _T_ERLI,+ module OpenAFP.Records.T.ESI, _T_ESI,+ module OpenAFP.Records.T.FCGCSGI, _T_FCGCSGI,+ module OpenAFP.Records.T.FDS, _T_FDS,+ module OpenAFP.Records.T.FF, _T_FF,+ module OpenAFP.Records.T.FHSF, _T_FHSF,+ module OpenAFP.Records.T.FO, _T_FO,+ module OpenAFP.Records.T.FQN, _T_FQN,+ module OpenAFP.Records.T.FRMT, _T_FRMT,+ module OpenAFP.Records.T.II, _T_II,+ module OpenAFP.Records.T.LDOPM, _T_LDOPM,+ module OpenAFP.Records.T.LDTS, _T_LDTS,+ module OpenAFP.Records.T.MA, _T_MA,+ module OpenAFP.Records.T.MEC, _T_MEC,+ module OpenAFP.Records.T.MF, _T_MF,+ module OpenAFP.Records.T.MIS, _T_MIS,+ module OpenAFP.Records.T.MMPN, _T_MMPN,+ module OpenAFP.Records.T.MO, _T_MO,+ module OpenAFP.Records.T.MOR, _T_MOR,+ module OpenAFP.Records.T.OAMU, _T_OAMU,+ module OpenAFP.Records.T.OAS, _T_OAS,+ module OpenAFP.Records.T.OBE, _T_OBE,+ module OpenAFP.Records.T.OBO, _T_OBO,+ module OpenAFP.Records.T.OCH, _T_OCH,+ module OpenAFP.Records.T.OCL, _T_OCL,+ module OpenAFP.Records.T.OCO, _T_OCO,+ module OpenAFP.Records.T.OFSS, _T_OFSS,+ module OpenAFP.Records.T.OO, _T_OO,+ module OpenAFP.Records.T.OOI, _T_OOI,+ module OpenAFP.Records.T.OSFE, _T_OSFE,+ module OpenAFP.Records.T.OSFO, _T_OSFO,+ module OpenAFP.Records.T.PC, _T_PC,+ module OpenAFP.Records.T.POCP, _T_POCP,+ module OpenAFP.Records.T.PPI, _T_PPI,+ module OpenAFP.Records.T.PSMR, _T_PSMR,+ module OpenAFP.Records.T.PSRM, _T_PSRM,+ module OpenAFP.Records.T.PV, _T_PV,+ module OpenAFP.Records.T.RLI, _T_RLI,+ module OpenAFP.Records.T.ROI, _T_ROI,+ module OpenAFP.Records.T.ROT, _T_ROT,+ module OpenAFP.Records.T.RSN, _T_RSN,+ module OpenAFP.Records.T.RUA, _T_RUA,+ module OpenAFP.Records.T.T1CRMT, _T_T1CRMT,+ module OpenAFP.Records.T.T2FRMT, _T_T2FRMT,+ module OpenAFP.Records.T.TO, _T_TO,+ module OpenAFP.Records.T.TS, _T_TS,+ module OpenAFP.Records.T.UDTS, _T_UDTS,+) where+import OpenAFP.Types+import OpenAFP.Records.T.AD+import OpenAFP.Records.T.AQ+import OpenAFP.Records.T.AV+import OpenAFP.Records.T.C+import OpenAFP.Records.T.CF+import OpenAFP.Records.T.CGCSGI+import OpenAFP.Records.T.CR+import OpenAFP.Records.T.CS+import OpenAFP.Records.T.DP+import OpenAFP.Records.T.EF+import OpenAFP.Records.T.ERLI+import OpenAFP.Records.T.ESI+import OpenAFP.Records.T.FCGCSGI+import OpenAFP.Records.T.FDS+import OpenAFP.Records.T.FF+import OpenAFP.Records.T.FHSF+import OpenAFP.Records.T.FO+import OpenAFP.Records.T.FQN+import OpenAFP.Records.T.FRMT+import OpenAFP.Records.T.II+import OpenAFP.Records.T.LDOPM+import OpenAFP.Records.T.LDTS+import OpenAFP.Records.T.MA+import OpenAFP.Records.T.MEC+import OpenAFP.Records.T.MF+import OpenAFP.Records.T.MIS+import OpenAFP.Records.T.MMPN+import OpenAFP.Records.T.MO+import OpenAFP.Records.T.MOR+import OpenAFP.Records.T.OAMU+import OpenAFP.Records.T.OAS+import OpenAFP.Records.T.OBE+import OpenAFP.Records.T.OBO+import OpenAFP.Records.T.OCH+import OpenAFP.Records.T.OCL+import OpenAFP.Records.T.OCO+import OpenAFP.Records.T.OFSS+import OpenAFP.Records.T.OO+import OpenAFP.Records.T.OOI+import OpenAFP.Records.T.OSFE+import OpenAFP.Records.T.OSFO+import OpenAFP.Records.T.PC+import OpenAFP.Records.T.POCP+import OpenAFP.Records.T.PPI+import OpenAFP.Records.T.PSMR+import OpenAFP.Records.T.PSRM+import OpenAFP.Records.T.PV+import OpenAFP.Records.T.RLI+import OpenAFP.Records.T.ROI+import OpenAFP.Records.T.ROT+import OpenAFP.Records.T.RSN+import OpenAFP.Records.T.RUA+import OpenAFP.Records.T.T1CRMT+import OpenAFP.Records.T.T2FRMT+import OpenAFP.Records.T.TO+import OpenAFP.Records.T.TS+import OpenAFP.Records.T.UDTS++_T_AD :: T_AD+_T_AD = T_AD 0x4D _NStr+_T_AQ :: T_AQ+_T_AQ = T_AQ 0x80 _NStr+_T_AV :: T_AV+_T_AV = T_AV 0x36 _NStr+_T_C :: T_C+_T_C = T_C 0x65 _NStr+_T_CF :: T_CF+_T_CF = T_CF 0x75 _NStr+_T_CGCSGI :: T_CGCSGI+_T_CGCSGI = T_CGCSGI 0x01 _NStr+_T_CR :: T_CR+_T_CR = T_CR 0x26 _NStr+_T_CS :: T_CS+_T_CS = T_CS 0x4E _NStr+_T_DP :: T_DP+_T_DP = T_DP 0x43 _NStr+_T_EF :: T_EF+_T_EF = T_EF 0x6D _NStr+_T_ERLI :: T_ERLI+_T_ERLI = T_ERLI 0x23 _NStr+_T_ESI :: T_ESI+_T_ESI = T_ESI 0x50 _NStr+_T_FCGCSGI :: T_FCGCSGI+_T_FCGCSGI = T_FCGCSGI 0x20 _NStr+_T_FDS :: T_FDS+_T_FDS = T_FDS 0x1F _NStr+_T_FF :: T_FF+_T_FF = T_FF 0x78 _NStr+_T_FHSF :: T_FHSF+_T_FHSF = T_FHSF 0x5D _NStr+_T_FO :: T_FO+_T_FO = T_FO 0x85 _NStr+_T_FQN :: T_FQN+_T_FQN = T_FQN 0x02 0 0 0+_T_FRMT :: T_FRMT+_T_FRMT = T_FRMT 0x84 _NStr+_T_II :: T_II+_T_II = T_II 0x73 _NStr+_T_LDOPM :: T_LDOPM+_T_LDOPM = T_LDOPM 0x27 _NStr+_T_LDTS :: T_LDTS+_T_LDTS = T_LDTS 0x62 _NStr+_T_MA :: T_MA+_T_MA = T_MA 0x79 _NStr+_T_MEC :: T_MEC+_T_MEC = T_MEC 0x45 _NStr+_T_MF :: T_MF+_T_MF = T_MF 0x87 _NStr+_T_MIS :: T_MIS+_T_MIS = T_MIS 0x18 _NStr+_T_MMPN :: T_MMPN+_T_MMPN = T_MMPN 0x56 _NStr+_T_MO :: T_MO+_T_MO = T_MO 0x04 _NStr+_T_MOR :: T_MOR+_T_MOR = T_MOR 0x68 _NStr+_T_OAMU :: T_OAMU+_T_OAMU = T_OAMU 0x4B _NStr+_T_OAS :: T_OAS+_T_OAS = T_OAS 0x4C _NStr+_T_OBE :: T_OBE+_T_OBE = T_OBE 0x57 _NStr+_T_OBO :: T_OBO+_T_OBO = T_OBO 0x2D _NStr+_T_OCH :: T_OCH+_T_OCH = T_OCH 0x63 _NStr+_T_OCL :: T_OCL+_T_OCL = T_OCL 0x10 _NStr+_T_OCO :: T_OCO+_T_OCO = T_OCO 0x5E _NStr+_T_OFSS :: T_OFSS+_T_OFSS = T_OFSS 0x21 _NStr+_T_OO :: T_OO+_T_OO = T_OO 0x5A _NStr+_T_OOI :: T_OOI+_T_OOI = T_OOI 0x64 _NStr+_T_OSFE :: T_OSFE+_T_OSFE = T_OSFE 0x59 _NStr+_T_OSFO :: T_OSFO+_T_OSFO = T_OSFO 0x58 _NStr+_T_PC :: T_PC+_T_PC = T_PC 0x83 _NStr+_T_POCP :: T_POCP+_T_POCP = T_POCP 0x46 _NStr+_T_PPI :: T_PPI+_T_PPI = T_PPI 0x81 _NStr+_T_PSMR :: T_PSMR+_T_PSMR = T_PSMR 0x71 _NStr+_T_PSRM :: T_PSRM+_T_PSRM = T_PSRM 0x70 _NStr+_T_PV :: T_PV+_T_PV = T_PV 0x82 _NStr+_T_RLI :: T_RLI+_T_RLI = T_RLI 0x24 0 0+_T_ROI :: T_ROI+_T_ROI = T_ROI 0x6C _NStr+_T_ROT :: T_ROT+_T_ROT = T_ROT 0x22 _NStr+_T_RSN :: T_RSN+_T_RSN = T_RSN 0x25 _NStr+_T_RUA :: T_RUA+_T_RUA = T_RUA 0x47 _NStr+_T_T1CRMT :: T_T1CRMT+_T_T1CRMT = T_T1CRMT 0x63 _NStr+_T_T2FRMT :: T_T2FRMT+_T_T2FRMT = T_T2FRMT 0x63 _NStr+_T_TO :: T_TO+_T_TO = T_TO 0x1D _NStr+_T_TS :: T_TS+_T_TS = T_TS 0x74 _NStr+_T_UDTS :: T_UDTS+_T_UDTS = T_UDTS 0x72 _NStr+
+ src/OpenAFP/Records/T/AD.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.AD where+import OpenAFP.Types+import OpenAFP.Internals++data T_AD = T_AD {+ t_ad_Type :: !N1+ ,t_ad :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/AQ.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.AQ where+import OpenAFP.Types+import OpenAFP.Internals++data T_AQ = T_AQ {+ t_aq_Type :: !N1+ ,t_aq :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/AV.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.AV where+import OpenAFP.Types+import OpenAFP.Internals++data T_AV = T_AV {+ t_av_Type :: !N1+ ,t_av :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/C.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.C where+import OpenAFP.Types+import OpenAFP.Internals++data T_C = T_C {+ t_c_Type :: !N1+ ,t_c :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/CF.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.CF where+import OpenAFP.Types+import OpenAFP.Internals++data T_CF = T_CF {+ t_cf_Type :: !N1+ ,t_cf :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/CGCSGI.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.CGCSGI where+import OpenAFP.Types+import OpenAFP.Internals++data T_CGCSGI = T_CGCSGI {+ t_cgcsgi_Type :: !N1+ ,t_cgcsgi :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/CR.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.CR where+import OpenAFP.Types+import OpenAFP.Internals++data T_CR = T_CR {+ t_cr_Type :: !N1+ ,t_cr :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/CS.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.CS where+import OpenAFP.Types+import OpenAFP.Internals++data T_CS = T_CS {+ t_cs_Type :: !N1+ ,t_cs :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/DP.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.DP where+import OpenAFP.Types+import OpenAFP.Internals++data T_DP = T_DP {+ t_dp_Type :: !N1+ ,t_dp :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/EF.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.EF where+import OpenAFP.Types+import OpenAFP.Internals++data T_EF = T_EF {+ t_ef_Type :: !N1+ ,t_ef :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/ERLI.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.ERLI where+import OpenAFP.Types+import OpenAFP.Internals++data T_ERLI = T_ERLI {+ t_erli_Type :: !N1+ ,t_erli :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/ESI.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.ESI where+import OpenAFP.Types+import OpenAFP.Internals++data T_ESI = T_ESI {+ t_esi_Type :: !N1+ ,t_esi :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/FCGCSGI.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.FCGCSGI where+import OpenAFP.Types+import OpenAFP.Internals++data T_FCGCSGI = T_FCGCSGI {+ t_fcgcsgi_Type :: !N1+ ,t_fcgcsgi :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/FDS.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.FDS where+import OpenAFP.Types+import OpenAFP.Internals++data T_FDS = T_FDS {+ t_fds_Type :: !N1+ ,t_fds :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/FF.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.FF where+import OpenAFP.Types+import OpenAFP.Internals++data T_FF = T_FF {+ t_ff_Type :: !N1+ ,t_ff :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/FHSF.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.FHSF where+import OpenAFP.Types+import OpenAFP.Internals++data T_FHSF = T_FHSF {+ t_fhsf_Type :: !N1+ ,t_fhsf :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/FO.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.FO where+import OpenAFP.Types+import OpenAFP.Internals++data T_FO = T_FO {+ t_fo_Type :: !N1+ ,t_fo :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/FQN.hs view
@@ -0,0 +1,12 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.FQN where+import OpenAFP.Types+import OpenAFP.Internals++data T_FQN = T_FQN {+ t_fqn_Type :: !N1+ ,t_fqn_SubType :: !N1+ ,t_fqn_Format :: !N1+ ,t_fqn :: !A8+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/FRMT.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.FRMT where+import OpenAFP.Types+import OpenAFP.Internals++data T_FRMT = T_FRMT {+ t_frmt_Type :: !N1+ ,t_frmt :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/II.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.II where+import OpenAFP.Types+import OpenAFP.Internals++data T_II = T_II {+ t_ii_Type :: !N1+ ,t_ii :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/LDOPM.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.LDOPM where+import OpenAFP.Types+import OpenAFP.Internals++data T_LDOPM = T_LDOPM {+ t_ldopm_Type :: !N1+ ,t_ldopm :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/LDTS.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.LDTS where+import OpenAFP.Types+import OpenAFP.Internals++data T_LDTS = T_LDTS {+ t_ldts_Type :: !N1+ ,t_ldts :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/MA.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.MA where+import OpenAFP.Types+import OpenAFP.Internals++data T_MA = T_MA {+ t_ma_Type :: !N1+ ,t_ma :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/MEC.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.MEC where+import OpenAFP.Types+import OpenAFP.Internals++data T_MEC = T_MEC {+ t_mec_Type :: !N1+ ,t_mec :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/MF.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.MF where+import OpenAFP.Types+import OpenAFP.Internals++data T_MF = T_MF {+ t_mf_Type :: !N1+ ,t_mf :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/MIS.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.MIS where+import OpenAFP.Types+import OpenAFP.Internals++data T_MIS = T_MIS {+ t_mis_Type :: !N1+ ,t_mis :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/MMPN.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.MMPN where+import OpenAFP.Types+import OpenAFP.Internals++data T_MMPN = T_MMPN {+ t_mmpn_Type :: !N1+ ,t_mmpn :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/MO.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.MO where+import OpenAFP.Types+import OpenAFP.Internals++data T_MO = T_MO {+ t_mo_Type :: !N1+ ,t_mo :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/MOR.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.MOR where+import OpenAFP.Types+import OpenAFP.Internals++data T_MOR = T_MOR {+ t_mor_Type :: !N1+ ,t_mor :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/OAMU.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.OAMU where+import OpenAFP.Types+import OpenAFP.Internals++data T_OAMU = T_OAMU {+ t_oamu_Type :: !N1+ ,t_oamu :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/OAS.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.OAS where+import OpenAFP.Types+import OpenAFP.Internals++data T_OAS = T_OAS {+ t_oas_Type :: !N1+ ,t_oas :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/OBE.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.OBE where+import OpenAFP.Types+import OpenAFP.Internals++data T_OBE = T_OBE {+ t_obe_Type :: !N1+ ,t_obe :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/OBO.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.OBO where+import OpenAFP.Types+import OpenAFP.Internals++data T_OBO = T_OBO {+ t_obo_Type :: !N1+ ,t_obo :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/OCH.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.OCH where+import OpenAFP.Types+import OpenAFP.Internals++data T_OCH = T_OCH {+ t_och_Type :: !N1+ ,t_och :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/OCL.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.OCL where+import OpenAFP.Types+import OpenAFP.Internals++data T_OCL = T_OCL {+ t_ocl_Type :: !N1+ ,t_ocl :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/OCO.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.OCO where+import OpenAFP.Types+import OpenAFP.Internals++data T_OCO = T_OCO {+ t_oco_Type :: !N1+ ,t_oco :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/OFSS.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.OFSS where+import OpenAFP.Types+import OpenAFP.Internals++data T_OFSS = T_OFSS {+ t_ofss_Type :: !N1+ ,t_ofss :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/OO.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.OO where+import OpenAFP.Types+import OpenAFP.Internals++data T_OO = T_OO {+ t_oo_Type :: !N1+ ,t_oo :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/OOI.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.OOI where+import OpenAFP.Types+import OpenAFP.Internals++data T_OOI = T_OOI {+ t_ooi_Type :: !N1+ ,t_ooi :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/OSFE.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.OSFE where+import OpenAFP.Types+import OpenAFP.Internals++data T_OSFE = T_OSFE {+ t_osfe_Type :: !N1+ ,t_osfe :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/OSFO.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.OSFO where+import OpenAFP.Types+import OpenAFP.Internals++data T_OSFO = T_OSFO {+ t_osfo_Type :: !N1+ ,t_osfo :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/PC.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.PC where+import OpenAFP.Types+import OpenAFP.Internals++data T_PC = T_PC {+ t_pc_Type :: !N1+ ,t_pc :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/POCP.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.POCP where+import OpenAFP.Types+import OpenAFP.Internals++data T_POCP = T_POCP {+ t_pocp_Type :: !N1+ ,t_pocp :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/PPI.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.PPI where+import OpenAFP.Types+import OpenAFP.Internals++data T_PPI = T_PPI {+ t_ppi_Type :: !N1+ ,t_ppi :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/PSMR.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.PSMR where+import OpenAFP.Types+import OpenAFP.Internals++data T_PSMR = T_PSMR {+ t_psmr_Type :: !N1+ ,t_psmr :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/PSRM.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.PSRM where+import OpenAFP.Types+import OpenAFP.Internals++data T_PSRM = T_PSRM {+ t_psrm_Type :: !N1+ ,t_psrm :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/PV.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.PV where+import OpenAFP.Types+import OpenAFP.Internals++data T_PV = T_PV {+ t_pv_Type :: !N1+ ,t_pv :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/RLI.hs view
@@ -0,0 +1,11 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.RLI where+import OpenAFP.Types+import OpenAFP.Internals++data T_RLI = T_RLI {+ t_rli_Type :: !N1+ ,t_rli_SubType :: !N1+ ,t_rli :: !N1+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/ROI.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.ROI where+import OpenAFP.Types+import OpenAFP.Internals++data T_ROI = T_ROI {+ t_roi_Type :: !N1+ ,t_roi :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/ROT.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.ROT where+import OpenAFP.Types+import OpenAFP.Internals++data T_ROT = T_ROT {+ t_rot_Type :: !N1+ ,t_rot :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/RSN.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.RSN where+import OpenAFP.Types+import OpenAFP.Internals++data T_RSN = T_RSN {+ t_rsn_Type :: !N1+ ,t_rsn :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/RUA.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.RUA where+import OpenAFP.Types+import OpenAFP.Internals++data T_RUA = T_RUA {+ t_rua_Type :: !N1+ ,t_rua :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/T1CRMT.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.T1CRMT where+import OpenAFP.Types+import OpenAFP.Internals++data T_T1CRMT = T_T1CRMT {+ t_t1crmt_Type :: !N1+ ,t_t1crmt :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/T2FRMT.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.T2FRMT where+import OpenAFP.Types+import OpenAFP.Internals++data T_T2FRMT = T_T2FRMT {+ t_t2frmt_Type :: !N1+ ,t_t2frmt :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/TO.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.TO where+import OpenAFP.Types+import OpenAFP.Internals++data T_TO = T_TO {+ t_to_Type :: !N1+ ,t_to :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/TS.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.TS where+import OpenAFP.Types+import OpenAFP.Internals++data T_TS = T_TS {+ t_ts_Type :: !N1+ ,t_ts :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Records/T/UDTS.hs view
@@ -0,0 +1,10 @@+{-# OPTIONS -fglasgow-exts -funbox-strict-fields #-}+module OpenAFP.Records.T.UDTS where+import OpenAFP.Types+import OpenAFP.Internals++data T_UDTS = T_UDTS {+ t_udts_Type :: !N1+ ,t_udts :: !NStr+} deriving (Show, Typeable)+
+ src/OpenAFP/Types.hs view
@@ -0,0 +1,64 @@+{-# OPTIONS -fglasgow-exts #-}++-----------------------------------------------------------------------------+-- |+-- Module : OpenAFP.Types+-- Copyright : (c) Audrey Tang 2004, 2006+-- License : BSD-style+-- +-- Maintainer : audreyt@audreyt.org+-- Stability : experimental+-- Portability : non-portable (GHC-only)+--+-- This module imports and re-exports the fundamental types in the OpenAFP+-- framework: Buffer, ChunkBuf and Record.+--+-----------------------------------------------------------------------------++module OpenAFP.Types (+ module OpenAFP.Types.Buffer,+ module OpenAFP.Types.Chunk,+ module OpenAFP.Types.Record,+ module OpenAFP.Types.View,+ T_(..), viewChunks, viewData, viewNumber,+ viewString, viewNStr, viewField, viewRecord+) where+import OpenAFP.Types.Buffer+import OpenAFP.Types.Chunk+import OpenAFP.Types.Record+import OpenAFP.Types.View+import OpenAFP.Internals++newtype T_ = T_ (N1, Buffer1) deriving (Show, Typeable)++viewChunks cs = do+ rs <- mapM viewChunk cs+ return $ ViewChunks (typeOf cs, rs)++viewChunk c = withChunk c recView++withChunk :: (ChunkBuf a n b, MonadIO m) => a -> (forall r. (Rec r) => r -> m x) -> m x+withChunk c = chunkApply (fst . chunkDecon $ c) c++viewData ds = do+ rs <- mapM recView ds+ return $ ViewData (typeOf ds, rs)++viewNumber n = return $ ViewNumber (typeOf n, fromEnum n)++viewString a = return $ ViewString (typeOf a, reverse [ toAsc n | n <- [ 0..((sizeOf a)-1) ] ])+ where toAsc n = ebc2asc ! fromIntegral ((a `shiftR` (8 * n)) .&. 0xFF)++viewNStr nstr = do+ let (pstr, len) = bufToPStrLen nstr+ withForeignPtr (castForeignPtr pstr) $ \cstr -> do+ ns <- peekArray (min len 80) cstr+ return $ ViewNStr (typeOf nstr, ns)++viewField l io = do+ content <- io+ return $ ViewField (l, content)++viewRecord t io = do+ fields <- sequence io+ return $ ViewRecord (t, fields)
+ src/OpenAFP/Types/Buffer.hs view
@@ -0,0 +1,71 @@+{-# OPTIONS -fglasgow-exts #-}++-----------------------------------------------------------------------------+-- |+-- Module : OpenAFP.Types.Buffer+-- Copyright : (c) Audrey Tang 2004, 2006+-- License : BSD-style+-- +-- Maintainer : audreyt@audreyt.org+-- Stability : experimental+-- Portability : non-portable (GHC-only)+--+-- This module handles sized binary buffers.+--+-----------------------------------------------------------------------------++module OpenAFP.Types.Buffer where+import OpenAFP.Internals++-- | The Buf class represents buffers, with the leading bytes+-- representing its length.+class (Show a, Typeable a) => Buf a where+ bufFromPStrLen :: PStringLen -> a+ bufToPStrLen :: a -> PStringLen++-- | Buffer0, being a simple PStringLen, is of unlimited length.+newtype Buffer0 = Buf0 PStringLen deriving (Show, Typeable)++-- | Buffer1 uses one byte as length, hence is at most 254 bytes long.+newtype Buffer1 = Buf1 PStringLen deriving (Show, Typeable)++-- | Buffer2 uses two bytes; it can store up to 65535 bytes.+newtype Buffer2 = Buf2 PStringLen deriving (Show, Typeable)++instance Buf Buffer0 where+ bufFromPStrLen = Buf0+ bufToPStrLen (Buf0 b) = b+instance Buf Buffer1 where+ bufFromPStrLen = Buf1+ bufToPStrLen (Buf1 b) = b+instance Buf Buffer2 where+ bufFromPStrLen = Buf2+ bufToPStrLen (Buf2 b) = b++instance Binary Buffer0 where+ put bh buf = putBuf bh $ bufToPStrLen buf+ get bh = do+ pos <- tellBin bh+ size <- sizeBin bh+ pstrlen <- getBuf bh (size - pos)+ return $ bufFromPStrLen pstrlen++instance Binary Buffer1 where+ put bh buf = do+ put bh (fromIntegral (len + 1) :: N1)+ putBuf bh $ bufToPStrLen buf+ where len = snd $ bufToPStrLen buf+ get bh = do+ size <- get bh :: IO N1+ pstrlen <- getBuf bh $ (fromEnum size) - 1+ return $ bufFromPStrLen pstrlen++instance Binary Buffer2 where+ put bh buf = do+ put bh (fromIntegral (len + 2) :: N2)+ putBuf bh $ bufToPStrLen buf+ where len = snd $ bufToPStrLen buf+ get bh = do+ size <- get bh :: IO N2+ pstrlen <- getBuf bh $ (fromEnum size) - 2+ return $ bufFromPStrLen pstrlen
+ src/OpenAFP/Types/Chunk.hs view
@@ -0,0 +1,233 @@+{-# OPTIONS -fglasgow-exts #-}++-----------------------------------------------------------------------------+-- |+-- Module : OpenAFP.Types.Chunk+-- Copyright : (c) Audrey Tang 2004, 2006+-- License : BSD-style+-- +-- Maintainer : audreyt@audreyt.org+-- Stability : experimental+-- Portability : non-portable (GHC-only)+--+-- This module handles pre-parsed "chunks" in AFP files.+--+-----------------------------------------------------------------------------++module OpenAFP.Types.Chunk where+import OpenAFP.Internals+import OpenAFP.Types.Buffer+import OpenAFP.Types.Record++infixl 4 ~~+infixl 4 <~~+infixl 4 ~~>+infixl 4 <==+infixl 4 ==>+infixl 4 <..+infixl 4 ..>+infixr 4 ===+infixr 4 ...+infixr 4 ....+infixr 4 .....++type NStr = Buffer0+type AStr = NStr++type ChunkWriter c = WriterT (ChunkQueue c)+type WriterStateIO v a = (ChunkBuf c n b, MonadReader v m, MonadPlus m, MonadIO m, MonadError e m, Show e, Typeable e) => ChunkWriter c m a++instance Storable NStr where+ alignment _ = 8+ sizeOf = snd . bufToPStrLen++nullForeignPtr = unsafePerformIO (newForeignPtr_ nullPtr)++_NStr :: NStr+_NStr = bufFromPStrLen (nullForeignPtr, 0)++fromAStr :: AStr -> IOm String+fromAStr nstr = liftIO $ do+ let (pstr, len) = bufToPStrLen nstr+ withForeignPtr (castForeignPtr pstr) $ \cstr -> do+ ns <- peekArray len cstr+ return $ map (ebc2asc !) ns++toAStr :: String -> IOm AStr+toAStr str = liftIO $ do+ let len = length str+ pstr <- mallocForeignPtrBytes len+ withForeignPtr pstr $ \cstr -> do+ pokeArray cstr $ map ((asc2ebc !) . ord) str+ return $ bufFromPStrLen (castForeignPtr pstr, len)++fromNStr :: NStr -> IOm [N1]+fromNStr nstr = liftIO $ do+ let (pstr, len) = bufToPStrLen nstr+ withForeignPtr (castForeignPtr pstr) $ \cstr ->+ peekArray len cstr++toNStr :: [N1] -> IOm NStr+toNStr list = liftIO $ do+ let len = length list+ pstr <- mallocForeignPtrBytes len+ withForeignPtr pstr $ \cstr -> do+ pokeArray cstr list+ return $ bufFromPStrLen (castForeignPtr pstr, len)++newtype ChunkType = MkChunkType String+ deriving (Show, Eq, Typeable, Ord)++chunkTypeOf :: Typeable a => a -> ChunkType+chunkTypeOf = MkChunkType . show . typeOf++-- | The ChunkBuf class represents non-parsed chunks, constructed from a+-- (ChunkType, Buffer) tuple.+class (Show c, Typeable c, Buf b, Num n, Enum n) => ChunkBuf c n b | c -> n, c -> b where+ chunkApply :: (MonadIO m) => n -> c -> (forall a. (Rec a) => (a -> m x)) -> m x+ chunkCon :: (n, b) -> c+ chunkDecon :: c -> (n, b)+ chunkType :: c -> ChunkType+ chunkType c = chunkTypeLookup c . fst . chunkDecon $ c+ chunkTypeLookup :: c -> n -> ChunkType+ chunkToPStrLen :: c -> PStringLen+ chunkMapFiltersM_ :: (MonadIO m) => c -> [(ChunkType, c -> m [c])] -> m ()+ chunkMapFiltersM_ c possibleFilters+ | null filters = return ()+ | otherwise = mapM_ (\(_, f) -> do f c ; return ()) filters+ where filters = filter (\(t, _) -> (t == chunkType c)) possibleFilters+ chunkMapFiltersM :: (MonadIO m) => c -> [(ChunkType, c -> m [c])] -> m [c]+ chunkMapFiltersM c possibleFilters+ | null filters = return [c]+ | otherwise = do+ c' <- foldM applyF [c] filters+ return c'+ where+ filters = filter (\(t, _) -> (t == chunkType c)) possibleFilters+ applyF r (_, f) = do+ r' <- mapM f r+ return $ concat r'+ chunksMapFiltersM :: (MonadIO m) => [c] -> [(ChunkType, c -> m [c])] -> m [c]+ chunksMapFiltersM cs list = do+ lol <- mapM (`chunkMapFiltersM` list) cs+ return $ concat lol+ chunksMapFiltersM_ :: (MonadIO m) => [c] -> [(ChunkType, c -> m [c])] -> m ()+ chunksMapFiltersM_ cs list = mapM_ (`chunkMapFiltersM_` list) cs+ chunkToRecord :: (Binary (Record r)) => c -> IO (Record r)+ chunkToRecord c = do+ let (pstr, len) = chunkToPStrLen c+ bh <- openBinBuf (pstr, len)+ -- XXX: Associate this with the reified chunkType+ (Record r) <- get bh+ addFinalizer r $ touchForeignPtr pstr+ return $ Record r+ chunkToPStrLen c = bufToPStrLen buf where (_, buf) = chunkDecon c+ chunkFromRecord :: (Binary r, Storable r, Rec r) => r -> IO c+ chunkFromRecord item = do+ bh <- newBinBuf (sizeOf item)+ put bh item+ return $ chunkCon (toEnum . recType $ item, bufFromPStrLen $ bufOf bh)++-- | The RecChunk class unifies a Rec (parent) with its contained+-- chunk types (children).+class (Rec r, ChunkBuf c n b) => RecChunk r c n b | r -> c where+ readChunks :: r -> [c]+ readChunks = error "readChunks not defined"+ writeChunks :: (MonadIO m) => r -> m [c] -> m r+ writeChunks = error "writeChunks not defined"++-- | The RecData class unifies a Rec (parent) with its contained+-- Rec data type (children).+class (Rec a, Rec b) => RecData a b | a -> b, b -> a where+ readData :: a -> [Record b]+ readData = error "readData not defined"+ writeData :: a -> [Record b] -> a+ writeData = error "writeData not defined"++-- | The ChunkLookup class unifies a Chunk (parent) with its lookup+-- dispatch function.+{-++class ChunkLookup a b | a -> b where+ chunkLookup :: (ChunkBuf a c) => b -> c -> a++instance (ChunkLookup a b, ChunkBuf a c, Binary c) => Binary a where+ put bh chunk = put bh $ snd $ chunkDecon chunk+ get bh = do+ buf <- get bh+ bh' <- openBinBuf $ bufToPStrLen buf+ buftype <- get bh'+ return $ chunkLookup buftype buf+-}+++instance (Rec a, Binary a) => Storable [a] where+ alignment = undefined+ sizeOf r = recSizeOf r+ +(~~) :: (ChunkBuf c n b, Typeable t) => c -> t -> Bool+c ~~ t = (chunkTypeOf t == chunkType c)++(<~~) :: (ChunkBuf c n b, Typeable t, Rec r) => t -> [c] -> IOm r+t <~~ cs = do+ Record r <- liftIO $ chunkToRecord $ fromJust $ find (~~ t) cs+ return r++(~~>) :: (ChunkBuf c n b, Typeable t, Rec r) => [c] -> t -> IOm r+cs ~~> t = do+ Record r <- liftIO $ chunkToRecord $ fromJust $ find (~~ t) cs+ return r++(==>) :: (ChunkBuf c n b, MonadIO m) => [c] -> [(ChunkType, c -> m [c])] -> m [c]+cs ==> fs = chunksMapFiltersM cs fs++(<==) :: (ChunkBuf c n b, MonadIO m) => [(ChunkType, c -> m [c])] -> [c] -> m [c]+(<==) = flip (==>)++(..>) :: (ChunkBuf c n b, MonadIO m) => [c] -> [(ChunkType, c -> m [c])] -> m ()+cs ..> fs = chunksMapFiltersM_ cs fs++(<..) :: (ChunkBuf c n b, MonadIO m) => [(ChunkType, c -> m [c])] -> [c] -> m ()+(<..) = flip (..>)++t === f = (chunkTypeOf t, processChunk t f)+-- t ==== f = (chunkTypeOf t, processChunk t (lift . f))+-- t ===== f = (chunkTypeOf t, processChunk t (lift . lift . f))++processChunk :: (MonadIO m, Rec r, ChunkBuf c n b) =>+ r -> (r -> ChunkWriter c m a) -> (c -> m [c])+processChunk _ f c = do+ -- grab a naked record+ (Record r) <- liftIO $ chunkToRecord c+ -- pass it to the filter along with the push function+ (_, ChunkQueue cs) <- runWriterT (f r)+ -- collect the pushed stuff+ return cs++t ... f = (chunkTypeOf t, inspectChunk t f)+t .... f = (chunkTypeOf t, inspectChunk t (lift . f))+t ..... f = (chunkTypeOf t, inspectChunk t (lift . lift . f))++inspectChunk :: (MonadIO m, Rec a, ChunkBuf c n b) => a -> (a -> m t) -> (c -> m [c])+inspectChunk _ f c = do+ (Record r) <- liftIO $ chunkToRecord c+ f r+ return [c]++push :: (ChunkBuf c n b, MonadIO m, Rec a) => a -> ChunkWriter c m ()+push r = do+ chunk <- liftIO $ chunkFromRecord $ Record r+ tell $ ChunkItem chunk+ return ()++filterChunks :: (MonadIO m, RecChunk r c n b, ChunkBuf c' n' b') =>+ r -> [(ChunkType, c -> ChunkWriter c' m [c])] -> ChunkWriter c' m ()+filterChunks r list = do+ push =<< (writeChunks r $ list <== readChunks r)++data ChunkQueue a = ChunkQueue [a] | ChunkItem a deriving (Show)++instance Monoid (ChunkQueue a) where+ mempty = ChunkQueue []+ mappend (ChunkItem a) (ChunkQueue b) = ChunkQueue (a:b)+ mappend (ChunkQueue a) (ChunkQueue b) = ChunkQueue (a ++ b)
+ src/OpenAFP/Types/Record.hs view
@@ -0,0 +1,69 @@+{-# OPTIONS -O -fglasgow-exts #-}++-----------------------------------------------------------------------------+-- |+-- Module : OpenAFP.Types.Record+-- Copyright : (c) Audrey Tang 2004, 2006+-- License : BSD-style+-- +-- Maintainer : audreyt@audreyt.org+-- Stability : experimental+-- Portability : non-portable (GHC-only)+--+-- This module handles parsed AFP records with named fields.+--+-----------------------------------------------------------------------------++module OpenAFP.Types.Record where+import OpenAFP.Internals+import OpenAFP.Types.View++newtype Record a = Record a+ deriving (Show, Eq, Typeable)++class (Show a, Typeable a) => Rec a where+ recGet :: BinHandle -> IO a+ recGet = error "recGet not defined"+ recPut :: BinHandle -> a -> IO ()+ recPut = error "recPut not defined"+ recSizeOf :: a -> Int+ recSizeOf = error "recSizeOf not defined"+ recView :: a -> IO ViewRecord+ recView x = error ("recView not defined for " ++ show x)+ recType :: a -> Int+ recType = error "recType not defined"++-- (forall a. (Rec a) => (a -> m b))+instance (Rec a) => Storable (Record a) where+ alignment (Record r) = 8+ sizeOf (Record r) = recSizeOf r+ -- sizeOf (Record r) = sum $ recApply func r++{-+func :: (Storable x) => String -> x -> Int+func x y = sizeOf y+-}+func x y = 0++instance (Rec a) => Rec (Record a) where+ recView (Record a) = recView a++instance (Rec a) => Binary (Record a) where+ get bh = do+ b <- recGet bh+ return $ Record b+ put bh (Record a) = do+ recPut bh a+ return ()++instance (Binary a, Rec a, Show a, Typeable a) => Rec [a] where+ recSizeOf list = sum $ map recSizeOf list+ recGet bh = get bh+ recPut bh list = do+ mapM_ (put bh) list++instance Rec N1 where+ recSizeOf _ = 1++fromRecord (Record a) = a+
+ src/OpenAFP/Types/View.hs view
@@ -0,0 +1,39 @@+{-# OPTIONS -fglasgow-exts #-}++-----------------------------------------------------------------------------+-- |+-- Module : OpenAFP.Types.View+-- Copyright : (c) Audrey Tang 2004, 2006+-- License : BSD-style+-- +-- Maintainer : audreyt@audreyt.org+-- Stability : experimental+-- Portability : non-portable (GHC-only)+--+-- Concrete data views on Chunks and Records.+--+-----------------------------------------------------------------------------++module OpenAFP.Types.View where+import OpenAFP.Types.Buffer+import OpenAFP.Internals++type ChunksType = TypeRep+type RecordType = TypeRep+type NumberType = TypeRep+type NStrType = TypeRep+type StringType = TypeRep+type DataType = TypeRep+type FieldLabel = String++-- newtype ViewChunks = ViewChunks (ChunksType, [ViewRecord])+newtype ViewRecord = ViewRecord (RecordType, [ViewField]) deriving (Show, Typeable)+newtype ViewField = ViewField (FieldLabel, ViewContent) deriving (Show, Typeable)+data ViewContent+ = ViewNumber (NumberType, Int)+ | ViewString (StringType, String)+ | ViewNStr (NStrType, [N1])+ | ViewChunks (ChunksType, [ViewRecord])+ | ViewData (DataType, [ViewRecord])+ deriving (Show, Typeable)+