{-# OPTIONS_GHC -fglasgow-exts -funbox-strict-fields -fallow-overlapping-instances -fno-warn-orphans -fno-warn-incomplete-patterns -fallow-undecidable-instances -cpp #-}
{-
-- WARNING WARNING WARNING --
This is an autogenerated file from src/Pugs/PIL2.hs.
Do not edit this file.
All changes made here will be lost!
-- WARNING WARNING WARNING --
-}
#ifndef HADDOCK
module Pugs.PIL2.Instances ()
where
import Pugs.PIL2
import Data.Yaml.Syck
import DrIFT.YAML
import DrIFT.JSON
import DrIFT.Perl5
import Control.Monad
import qualified Data.ByteString as Buf
{-* Generated by DrIFT : Look, but Don't Touch. *-}
instance Perl5 PIL_Environment where
showPerl5 (PIL_Environment aa ab) =
showP5HashObj "PIL::Environment"
[("pilGlob", showPerl5 aa) , ("pilMain", showPerl5 ab)]
instance JSON PIL_Environment where
showJSON (PIL_Environment aa ab) = showJSHashObj "PIL_Environment"
[("pilGlob", showJSON aa), ("pilMain", showJSON ab)]
instance YAML PIL_Environment where
fromYAML MkYamlNode{nodeTag=Just t, nodeElem=e} | 't':'a':'g':':':'h':'s':':':tag <- unpackBuf t = case tag of
"PIL_Environment" -> do
let YamlMap assocs = e
let [aa, ab] = map snd assocs
liftM2 PIL_Environment (fromYAML aa) (fromYAML ab)
_ -> fail $ "unhandled tag: " ++ show t ++ ", expecting " ++ show ["PIL_Environment"] ++ " in node " ++ show e
fromYAML _ = fail "no tag found"
asYAML (PIL_Environment aa ab) = asYAMLmap "PIL_Environment"
[("pilGlob", asYAML aa), ("pilMain", asYAML ab)]
instance Perl5 PIL_Stmts where
showPerl5 (PNil) = showP5Class "PNil"
showPerl5 (PStmts aa ab) = showP5HashObj "PStmts"
[("pStmt", showPerl5 aa) , ("pStmts", showPerl5 ab)]
showPerl5 (PPad aa ab ac) = showP5HashObj "PPad"
[("pScope", showPerl5 aa) , ("pSyms", showPerl5 ab) ,
("pStmts", showPerl5 ac)]
instance JSON PIL_Stmts where
showJSON (PNil) = showJSScalar "PNil"
showJSON (PStmts aa ab) = showJSHashObj "PStmts"
[("pStmt", showJSON aa), ("pStmts", showJSON ab)]
showJSON (PPad aa ab ac) = showJSHashObj "PPad"
[("pScope", showJSON aa), ("pSyms", showJSON ab),
("pStmts", showJSON ac)]
instance YAML PIL_Stmts where
fromYAML MkYamlNode{nodeTag=Just t, nodeElem=e} | 't':'a':'g':':':'h':'s':':':tag <- unpackBuf t = case tag of
"PNil" -> do
return PNil
"PStmts" -> do
let YamlMap assocs = e
let [aa, ab] = map snd assocs
liftM2 PStmts (fromYAML aa) (fromYAML ab)
"PPad" -> do
let YamlMap assocs = e
let [aa, ab, ac] = map snd assocs
liftM3 PPad (fromYAML aa) (fromYAML ab) (fromYAML ac)
_ -> fail $ "unhandled tag: " ++ show t ++ ", expecting " ++ show ["PNil","PStmts","PPad"] ++ " in node " ++ show e
fromYAML _ = fail "no tag found"
asYAML (PNil) = asYAMLcls "PNil"
asYAML (PStmts aa ab) = asYAMLmap "PStmts"
[("pStmt", asYAML aa), ("pStmts", asYAML ab)]
asYAML (PPad aa ab ac) = asYAMLmap "PPad"
[("pScope", asYAML aa), ("pSyms", asYAML ab),
("pStmts", asYAML ac)]
instance Perl5 PIL_Stmt where
showPerl5 (PNoop) = showP5Class "PNoop"
showPerl5 (PStmt aa) = showP5HashObj "PStmt"
[("pExpr", showPerl5 aa)]
showPerl5 (PPos aa ab ac) = showP5HashObj "PPos"
[("pPos", showPerl5 aa) , ("pExp", showPerl5 ab) ,
("pNode", showPerl5 ac)]
instance JSON PIL_Stmt where
showJSON (PNoop) = showJSScalar "PNoop"
showJSON (PStmt aa) = showJSHashObj "PStmt"
[("pExpr", showJSON aa)]
showJSON (PPos aa ab ac) = showJSHashObj "PPos"
[("pPos", showJSON aa), ("pExp", showJSON ab),
("pNode", showJSON ac)]
instance YAML PIL_Stmt where
fromYAML MkYamlNode{nodeTag=Just t, nodeElem=e} | 't':'a':'g':':':'h':'s':':':tag <- unpackBuf t = case tag of
"PNoop" -> do
return PNoop
"PStmt" -> do
let YamlMap assocs = e
let [aa] = map snd assocs
liftM PStmt (fromYAML aa)
"PPos" -> do
let YamlMap assocs = e
let [aa, ab, ac] = map snd assocs
liftM3 PPos (fromYAML aa) (fromYAML ab) (fromYAML ac)
_ -> fail $ "unhandled tag: " ++ show t ++ ", expecting " ++ show ["PNoop","PStmt","PPos"] ++ " in node " ++ show e
fromYAML _ = fail "no tag found"
asYAML (PNoop) = asYAMLcls "PNoop"
asYAML (PStmt aa) = asYAMLmap "PStmt" [("pExpr", asYAML aa)]
asYAML (PPos aa ab ac) = asYAMLmap "PPos"
[("pPos", asYAML aa), ("pExp", asYAML ab), ("pNode", asYAML ac)]
instance Perl5 PIL_Expr where
showPerl5 (PRawName aa) = showP5HashObj "PRawName"
[("pRawName", showPerl5 aa)]
showPerl5 (PExp aa) = showP5HashObj "PExp" [("pLV", showPerl5 aa)]
showPerl5 (PLit aa) = showP5HashObj "PLit" [("pLit", showPerl5 aa)]
showPerl5 (PThunk aa) = showP5HashObj "PThunk"
[("pThunk", showPerl5 aa)]
showPerl5 (PCode aa ab ac ad ae) = showP5HashObj "PCode"
[("pType", showPerl5 aa) , ("pParams", showPerl5 ab) ,
("pLValue", showPerl5 ac) , ("pIsMulti", showPerl5 ad) ,
("pBody", showPerl5 ae)]
instance JSON PIL_Expr where
showJSON (PRawName aa) = showJSHashObj "PRawName"
[("pRawName", showJSON aa)]
showJSON (PExp aa) = showJSHashObj "PExp" [("pLV", showJSON aa)]
showJSON (PLit aa) = showJSHashObj "PLit" [("pLit", showJSON aa)]
showJSON (PThunk aa) = showJSHashObj "PThunk"
[("pThunk", showJSON aa)]
showJSON (PCode aa ab ac ad ae) = showJSHashObj "PCode"
[("pType", showJSON aa), ("pParams", showJSON ab),
("pLValue", showJSON ac), ("pIsMulti", showJSON ad),
("pBody", showJSON ae)]
instance YAML PIL_Expr where
fromYAML MkYamlNode{nodeTag=Just t, nodeElem=e} | 't':'a':'g':':':'h':'s':':':tag <- unpackBuf t = case tag of
"PRawName" -> do
let YamlMap assocs = e
let [aa] = map snd assocs
liftM PRawName (fromYAML aa)
"PExp" -> do
let YamlMap assocs = e
let [aa] = map snd assocs
liftM PExp (fromYAML aa)
"PLit" -> do
let YamlMap assocs = e
let [aa] = map snd assocs
liftM PLit (fromYAML aa)
"PThunk" -> do
let YamlMap assocs = e
let [aa] = map snd assocs
liftM PThunk (fromYAML aa)
"PCode" -> do
let YamlMap assocs = e
let [aa, ab, ac, ad, ae] = map snd assocs
liftM5 PCode (fromYAML aa) (fromYAML ab) (fromYAML ac) (fromYAML ad) (fromYAML ae)
_ -> fail $ "unhandled tag: " ++ show t ++ ", expecting " ++ show ["PRawName","PExp","PLit","PThunk","PCode"] ++ " in node " ++ show e
fromYAML _ = fail "no tag found"
asYAML (PRawName aa) = asYAMLmap "PRawName"
[("pRawName", asYAML aa)]
asYAML (PExp aa) = asYAMLmap "PExp" [("pLV", asYAML aa)]
asYAML (PLit aa) = asYAMLmap "PLit" [("pLit", asYAML aa)]
asYAML (PThunk aa) = asYAMLmap "PThunk" [("pThunk", asYAML aa)]
asYAML (PCode aa ab ac ad ae) = asYAMLmap "PCode"
[("pType", asYAML aa), ("pParams", asYAML ab),
("pLValue", asYAML ac), ("pIsMulti", asYAML ad),
("pBody", asYAML ae)]
instance Perl5 PIL_Decl where
showPerl5 (PSub aa ab ac ad ae af) = showP5HashObj "PSub"
[("pSubName", showPerl5 aa) , ("pSubType", showPerl5 ab) ,
("pSubParams", showPerl5 ac) , ("pSubLValue", showPerl5 ad) ,
("pSubIsMulti", showPerl5 ae) , ("pSubBody", showPerl5 af)]
instance JSON PIL_Decl where
showJSON (PSub aa ab ac ad ae af) = showJSHashObj "PSub"
[("pSubName", showJSON aa), ("pSubType", showJSON ab),
("pSubParams", showJSON ac), ("pSubLValue", showJSON ad),
("pSubIsMulti", showJSON ae), ("pSubBody", showJSON af)]
instance YAML PIL_Decl where
fromYAML MkYamlNode{nodeTag=Just t, nodeElem=e} | 't':'a':'g':':':'h':'s':':':tag <- unpackBuf t = case tag of
"PSub" -> do
let liftM6 f m1 m2 m3 m4 m5 m6 = do
{x1 <- m1; x2 <- m2; x3 <- m3; x4 <- m4; x5 <- m5; x6 <- m6; return (f x1 x2 x3 x4 x5 x6)}
let YamlMap assocs = e
let [aa, ab, ac, ad, ae, af] = map snd assocs
liftM6 PSub (fromYAML aa) (fromYAML ab) (fromYAML ac) (fromYAML ad) (fromYAML ae) (fromYAML af)
_ -> fail $ "unhandled tag: " ++ show t ++ ", expecting " ++ show ["PSub"] ++ " in node " ++ show e
fromYAML _ = fail "no tag found"
asYAML (PSub aa ab ac ad ae af) = asYAMLmap "PSub"
[("pSubName", asYAML aa), ("pSubType", asYAML ab),
("pSubParams", asYAML ac), ("pSubLValue", asYAML ad),
("pSubIsMulti", asYAML ae), ("pSubBody", asYAML af)]
instance Perl5 PIL_Literal where
showPerl5 (PVal aa) = showP5HashObj "PVal" [("pVal", showPerl5 aa)]
instance JSON PIL_Literal where
showJSON (PVal aa) = showJSHashObj "PVal" [("pVal", showJSON aa)]
instance YAML PIL_Literal where
fromYAML MkYamlNode{nodeTag=Just t, nodeElem=e} | 't':'a':'g':':':'h':'s':':':tag <- unpackBuf t = case tag of
"PVal" -> do
let YamlMap assocs = e
let [aa] = map snd assocs
liftM PVal (fromYAML aa)
_ -> fail $ "unhandled tag: " ++ show t ++ ", expecting " ++ show ["PVal"] ++ " in node " ++ show e
fromYAML _ = fail "no tag found"
asYAML (PVal aa) = asYAMLmap "PVal" [("pVal", asYAML aa)]
instance Perl5 PIL_LValue where
showPerl5 (PVar aa) = showP5HashObj "PVar"
[("pVarName", showPerl5 aa)]
showPerl5 (PApp aa ab ac ad) = showP5HashObj "PApp"
[("pCxt", showPerl5 aa) , ("pFun", showPerl5 ab) ,
("pInv", showPerl5 ac) , ("pArgs", showPerl5 ad)]
showPerl5 (PAssign aa ab) = showP5HashObj "PAssign"
[("pLHS", showPerl5 aa) , ("pRHS", showPerl5 ab)]
showPerl5 (PBind aa ab) = showP5HashObj "PBind"
[("pLHS", showPerl5 aa) , ("pRHS", showPerl5 ab)]
instance JSON PIL_LValue where
showJSON (PVar aa) = showJSHashObj "PVar"
[("pVarName", showJSON aa)]
showJSON (PApp aa ab ac ad) = showJSHashObj "PApp"
[("pCxt", showJSON aa), ("pFun", showJSON ab),
("pInv", showJSON ac), ("pArgs", showJSON ad)]
showJSON (PAssign aa ab) = showJSHashObj "PAssign"
[("pLHS", showJSON aa), ("pRHS", showJSON ab)]
showJSON (PBind aa ab) = showJSHashObj "PBind"
[("pLHS", showJSON aa), ("pRHS", showJSON ab)]
instance YAML PIL_LValue where
fromYAML MkYamlNode{nodeTag=Just t, nodeElem=e} | 't':'a':'g':':':'h':'s':':':tag <- unpackBuf t = case tag of
"PVar" -> do
let YamlMap assocs = e
let [aa] = map snd assocs
liftM PVar (fromYAML aa)
"PApp" -> do
let YamlMap assocs = e
let [aa, ab, ac, ad] = map snd assocs
liftM4 PApp (fromYAML aa) (fromYAML ab) (fromYAML ac) (fromYAML ad)
"PAssign" -> do
let YamlMap assocs = e
let [aa, ab] = map snd assocs
liftM2 PAssign (fromYAML aa) (fromYAML ab)
"PBind" -> do
let YamlMap assocs = e
let [aa, ab] = map snd assocs
liftM2 PBind (fromYAML aa) (fromYAML ab)
_ -> fail $ "unhandled tag: " ++ show t ++ ", expecting " ++ show ["PVar","PApp","PAssign","PBind"] ++ " in node " ++ show e
fromYAML _ = fail "no tag found"
asYAML (PVar aa) = asYAMLmap "PVar" [("pVarName", asYAML aa)]
asYAML (PApp aa ab ac ad) = asYAMLmap "PApp"
[("pCxt", asYAML aa), ("pFun", asYAML ab), ("pInv", asYAML ac),
("pArgs", asYAML ad)]
asYAML (PAssign aa ab) = asYAMLmap "PAssign"
[("pLHS", asYAML aa), ("pRHS", asYAML ab)]
asYAML (PBind aa ab) = asYAMLmap "PBind"
[("pLHS", asYAML aa), ("pRHS", asYAML ab)]
instance Perl5 TParam where
showPerl5 (MkTParam aa ab) = showP5HashObj "MkTParam"
[("tpParam", showPerl5 aa) , ("tpDefault", showPerl5 ab)]
instance JSON TParam where
showJSON (MkTParam aa ab) = showJSHashObj "MkTParam"
[("tpParam", showJSON aa), ("tpDefault", showJSON ab)]
instance YAML TParam where
fromYAML MkYamlNode{nodeTag=Just t, nodeElem=e} | 't':'a':'g':':':'h':'s':':':tag <- unpackBuf t = case tag of
"MkTParam" -> do
let YamlMap assocs = e
let [aa, ab] = map snd assocs
liftM2 MkTParam (fromYAML aa) (fromYAML ab)
_ -> fail $ "unhandled tag: " ++ show t ++ ", expecting " ++ show ["MkTParam"] ++ " in node " ++ show e
fromYAML _ = fail "no tag found"
asYAML (MkTParam aa ab) = asYAMLmap "MkTParam"
[("tpParam", asYAML aa), ("tpDefault", asYAML ab)]
instance Perl5 TCxt where
showPerl5 (TCxtVoid) = showP5Class "TCxtVoid"
showPerl5 (TCxtLValue aa) = showP5ArrayObj "TCxtLValue"
[showPerl5 aa]
showPerl5 (TCxtItem aa) = showP5ArrayObj "TCxtItem" [showPerl5 aa]
showPerl5 (TCxtSlurpy aa) = showP5ArrayObj "TCxtSlurpy"
[showPerl5 aa]
showPerl5 (TTailCall aa) = showP5ArrayObj "TTailCall"
[showPerl5 aa]
instance JSON TCxt where
showJSON (TCxtVoid) = showJSScalar "TCxtVoid"
showJSON (TCxtLValue aa) = showJSArrayObj "TCxtLValue"
[showJSON aa]
showJSON (TCxtItem aa) = showJSArrayObj "TCxtItem" [showJSON aa]
showJSON (TCxtSlurpy aa) = showJSArrayObj "TCxtSlurpy"
[showJSON aa]
showJSON (TTailCall aa) = showJSArrayObj "TTailCall" [showJSON aa]
instance YAML TCxt where
fromYAML MkYamlNode{nodeTag=Just t, nodeElem=e} | 't':'a':'g':':':'h':'s':':':tag <- unpackBuf t = case tag of
"TCxtVoid" -> do
return TCxtVoid
"TCxtLValue" -> do
let YamlSeq [aa] = e
liftM TCxtLValue (fromYAML aa)
"TCxtItem" -> do
let YamlSeq [aa] = e
liftM TCxtItem (fromYAML aa)
"TCxtSlurpy" -> do
let YamlSeq [aa] = e
liftM TCxtSlurpy (fromYAML aa)
"TTailCall" -> do
let YamlSeq [aa] = e
liftM TTailCall (fromYAML aa)
_ -> fail $ "unhandled tag: " ++ show t ++ ", expecting " ++ show ["TCxtVoid","TCxtLValue","TCxtItem","TCxtSlurpy","TTailCall"] ++ " in node " ++ show e
fromYAML _ = fail "no tag found"
asYAML (TCxtVoid) = asYAMLcls "TCxtVoid"
asYAML (TCxtLValue aa) = asYAMLseq "TCxtLValue" [asYAML aa]
asYAML (TCxtItem aa) = asYAMLseq "TCxtItem" [asYAML aa]
asYAML (TCxtSlurpy aa) = asYAMLseq "TCxtSlurpy" [asYAML aa]
asYAML (TTailCall aa) = asYAMLseq "TTailCall" [asYAML aa]
instance Perl5 TEnv where
showPerl5 (MkTEnv aa ab ac ad ae) = showP5HashObj "MkTEnv"
[("tLexDepth", showPerl5 aa) , ("tTokDepth", showPerl5 ab) ,
("tCxt", showPerl5 ac) , ("tReg", showPerl5 ad) ,
("tLabel", showPerl5 ae)]
instance JSON TEnv where
showJSON (MkTEnv aa ab ac ad ae) = showJSHashObj "MkTEnv"
[("tLexDepth", showJSON aa), ("tTokDepth", showJSON ab),
("tCxt", showJSON ac), ("tReg", showJSON ad),
("tLabel", showJSON ae)]
instance YAML TEnv where
fromYAML MkYamlNode{nodeTag=Just t, nodeElem=e} | 't':'a':'g':':':'h':'s':':':tag <- unpackBuf t = case tag of
"MkTEnv" -> do
let YamlMap assocs = e
let [aa, ab, ac, ad, ae] = map snd assocs
liftM5 MkTEnv (fromYAML aa) (fromYAML ab) (fromYAML ac) (fromYAML ad) (fromYAML ae)
_ -> fail $ "unhandled tag: " ++ show t ++ ", expecting " ++ show ["MkTEnv"] ++ " in node " ++ show e
fromYAML _ = fail "no tag found"
asYAML (MkTEnv aa ab ac ad ae) = asYAMLmap "MkTEnv"
[("tLexDepth", asYAML aa), ("tTokDepth", asYAML ab),
("tCxt", asYAML ac), ("tReg", asYAML ad), ("tLabel", asYAML ae)]
-- Imported from other files :-
type Buf = Buf.ByteString
#endif