packages feed

rtk-0.12: test/golden/p/PPP.hs

-- Generated by RTK from grammar 'P'. Do not edit by hand.
-- v1 pretty-printer (task 9): correctness-first, not pretty. Emits exactly
-- one space between tokens, with no indentation or alignment. The only
-- guarantee is the semantic round-trip parse (print ast) == ast; comments
-- and the original whitespace are not recovered (the AST is lossy).
module PPP where
import PParser

ppP :: P -> String
ppP (Ctr__P__0 _ x1) = unwords ["tok_P_dummy_4", (ppP x1), "tok_P_dummy_4"]
ppP (Ctr__P__1 _ x1) = unwords ["tok_E_dummy_3", (ppE x1), "tok_E_dummy_3"]
ppP (Ctr__P__2 _ x1) = unwords ["tok_Id_dummy_2", (ppId x1), "tok_Id_dummy_2"]
ppP (Ctr__P__3 _ x1) = unwords ["tok_Op1_dummy_1", (ppOp1 x1), "tok_Op1_dummy_1"]
ppP (Ctr__P__4 _ x1) = unwords ["tok_Op2_dummy_0", (ppOp2 x1), "tok_Op2_dummy_0"]
ppP (Anti_P x1) = unwords [x1]
ppP (Ctr__P__5 _ x1 x2) = unwords ["(", "lambda", "(", (ppId x1), ")", (ppE x2), ")"]

ppE :: E -> String
ppE (Anti_E x1) = unwords [x1]
ppE (Ctr__E__0 _) = unwords ["0"]
ppE (Ctr__E__1 _) = unwords ["1"]
ppE (Ctr__E__2 _ x1) = unwords [(ppId x1)]
ppE (Ctr__E__3 _ x1 x2 x3) = unwords ["(", "if0", (ppE x1), (ppE x2), (ppE x3), ")"]
ppE (Ctr__E__4 _ x1 x2 x3 x4 x5) = unwords ["(", "fold", (ppE x1), (ppE x2), "(", "lambda", "(", (ppId x3), (ppId x4), ")", (ppE x5), ")", ")"]
ppE (Ctr__E__5 _ x1 x2) = unwords ["(", (ppOp1 x1), (ppE x2), ")"]
ppE (Ctr__E__6 _ x1 x2 x3) = unwords ["(", (ppOp2 x1), (ppE x2), (ppE x3), ")"]

ppId :: Id -> String
ppId (Anti_Id x1) = unwords [x1]
ppId (Ctr__Id__0 _ x1) = unwords [x1]

ppOp1 :: Op1 -> String
ppOp1 (Anti_Op1 x1) = unwords [x1]
ppOp1 (Ctr__Op1__0 _) = unwords ["not"]
ppOp1 (Ctr__Op1__1 _) = unwords ["shl1"]
ppOp1 (Ctr__Op1__2 _) = unwords ["shr1"]
ppOp1 (Ctr__Op1__3 _) = unwords ["shr4"]
ppOp1 (Ctr__Op1__4 _) = unwords ["shr16"]

ppOp2 :: Op2 -> String
ppOp2 (Anti_Op2 x1) = unwords [x1]
ppOp2 (Ctr__Op2__0 _) = unwords ["and"]
ppOp2 (Ctr__Op2__1 _) = unwords ["or"]
ppOp2 (Ctr__Op2__2 _) = unwords ["xor"]
ppOp2 (Ctr__Op2__3 _) = unwords ["plus"]