{-# LANGUAGE DeriveGeneric #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
module GLua.AG.PrettyPrint where
{-# LINE 10 "src/GLua/AG/AST.ag" #-}
import Data.Aeson
import GHC.Generics
import GLua.AG.Token
import GLua.TokenTypes ()
{-# LINE 15 "src/GLua/AG/PrettyPrint.hs" #-}
{-# LINE 4 "src/GLua/AG/PrettyPrint.ag" #-}
import Data.List (foldl', isInfixOf)
import Data.Maybe
import Debug.Trace
import GLua.AG.AST
import GLua.TokenTypes
import Text.Parsec
import Text.Parsec.Error
import Text.ParserCombinators.UU.BasicInstances hiding (pos)
import Text.PrettyPrint hiding (braces, brackets, parens)
import Prelude hiding ((<>))
{-# LINE 29 "src/GLua/AG/PrettyPrint.hs" #-}
{-# LINE 19 "src/GLua/AG/PrettyPrint.ag" #-}
tok :: MToken -> Doc
tok (MToken _ t) = zeroWidthText . show $ t
printList :: (a -> Doc) -> String -> [a] -> Doc
printList _ _ [] = empty
printList f sep' (e : es) = (f e) <> g es
where
g [] = empty
g (e' : es') = zeroWidthText sep' <> (f e') <> g es'
data IsEmpty = IsEmpty | NonEmpty
fromEmpty :: IsEmpty -> Bool
fromEmpty IsEmpty = True
fromEmpty NonEmpty = False
toEmpty :: Bool -> IsEmpty
toEmpty b = if b then IsEmpty else NonEmpty
data PrettyPrintConfig = PPConfig
{ spaceAfterParens :: Bool
, spaceAfterBrackets :: Bool
, spaceAfterBraces :: Bool
, spaceEmptyParens :: Bool
, spaceEmptyBraces :: Bool
, spaceAfterLabel :: Bool
, spaceBeforeComma :: Bool
, spaceAfterComma :: Bool
, semicolons :: Bool
, cStyle :: Bool
, removeRedundantParens :: Bool
, minimizeParens :: Bool
, assumeOperatorAssociativity :: Bool
, indentation :: String
}
defaultPPConfig :: PrettyPrintConfig
defaultPPConfig =
PPConfig
{ spaceAfterParens = False
, spaceAfterBrackets = False
, spaceAfterBraces = False
, spaceEmptyParens = False
, spaceEmptyBraces = False
, spaceAfterLabel = False
, spaceBeforeComma = False
, spaceAfterComma = True
, semicolons = False
, cStyle = False
, removeRedundantParens = True
, assumeOperatorAssociativity = True
, minimizeParens = False
, indentation = " "
}
metaDoc :: Maybe MToken -> Doc
metaDoc (Just m) = zchr ':' <> tok m
metaDoc Nothing = empty
printVarList :: [(PrefixExp, Maybe MExpr)] -> Doc
printVarList vars =
printList pp_prefixexp ", " (map fst vars)
<-> zchr '='
<-> printList pp_mexpr ", " (catMaybes . map snd $ vars)
printStats :: [MStat] -> Int -> Doc
printStats [] _ = empty
printStats (x : xs) i = nest (i * 4) (pp_mstat x i) $+$ printStats xs i
printElIfs :: [(MExpr, Block)] -> Int -> Doc
printElIfs [] _ = empty
printElIfs ((e, b) : es) i =
zeroWidthText "elseif"
<-> pp_mexpr e
<-> zeroWidthText "then"
$+$ pp_block b i
$+$ printElIfs es i
printEls :: Maybe Block -> Int -> Doc
printEls Nothing _ = empty
printEls (Just b) i = zeroWidthText "else" $+$ pp_block b i
renderPos :: LineColPos -> String
renderPos (LineColPos l c _) = "line " ++ show (succ l) ++ ", column " ++ show (succ c)
renderRegion :: Region -> String
renderRegion (Region l r) = renderPos l ++ " - " ++ renderPos r
renderSourcePos :: SourcePos -> String
renderSourcePos sp =
"line "
++ (show . succ . sourceLine $ sp)
++ ", column "
++ (show . succ . sourceColumn $ sp)
getMStatPos :: MStat -> String
getMStatPos (MStat p _) = renderRegion p
getAReturnPos :: AReturn -> String
getAReturnPos (AReturn p _) = renderRegion p
getAReturnPos NoReturn = "<unknown>"
getMExprPos :: MExpr -> String
getMExprPos (MExpr p _) = renderRegion p
renderError :: Error LineColPos -> String
renderError (Inserted str pos strs) =
renderPos pos
++ ": Inserted '"
++ str
++ "'."
++ render_expecting strs
renderError (Deleted str pos strs) =
renderPos pos
++ ": Removed '"
++ str
++ "'. "
++ render_expecting strs
renderError (Replaced str1 str2 pos strs) =
renderPos pos
++ ": Replaced '"
++ str1
++ "' with '"
++ str2
++ "' at "
++ renderPos pos
++ render_expecting strs
renderError (DeletedAtEnd str) =
"Deleted '"
++ str
++ "' at the end of the Lua file because the parser doesn't know what to do with it."
render_expecting :: [String] -> String
render_expecting [a] = "Parser expected a " ++ a
render_expecting (a : as) = "Parser expected one of [" ++ a ++ concat (map (", " ++) as) ++ "]"
render_expecting [] = "Parser expected nothing"
renderPSError :: ParseError -> String
renderPSError ps =
map replNL
. showErrorMessages
"or"
"unknown parse error"
"expecting"
"unexpected"
"end of input"
. errorMessages
$ ps
where
replNL '\n' = ' '
replNL c = c
renderMLComments :: PrettyPrintConfig -> Int -> [MToken] -> Doc
renderMLComments conf ind toks =
foldl' ($+$) empty . map (indent conf ind . tok . convertComment conf) $ toks
renderSLComments :: PrettyPrintConfig -> Int -> [MToken] -> Doc
renderSLComments conf ind toks = foldl' combine empty . map (convertComment conf) $ toks
where
combine :: Doc -> MToken -> Doc
combine acc mt@(MToken _pos t) =
case t of
DashBlockComment _depth comment
| '\n' `elem` comment ->
acc $+$ (indent conf ind $ tok mt)
SlashBlockComment comment
| '\n' `elem` comment ->
acc $+$ (indent conf ind $ tok mt)
_ -> acc <-> tok mt
convertComment :: PrettyPrintConfig -> MToken -> MToken
convertComment conf (MToken p t) = MToken p $ convert' t
where
convert' :: Token -> Token
convert' = if cStyle conf then cComment else luaComment
luaComment :: Token -> Token
luaComment (SlashComment s) = DashComment s
luaComment (SlashBlockComment s) = DashBlockComment (lastBracket s) s
luaComment t' = t'
lastBracket :: String -> Int
lastBracket [] = 0
lastBracket s = if last s == ']' then 1 else 0
cComment :: Token -> Token
cComment (DashComment s) = SlashComment s
cComment (DashBlockComment _ s) = SlashBlockComment s
cComment t' = t'
indent :: PrettyPrintConfig -> Int -> Doc -> Doc
indent conf n = (<>) $ zeroWidthText (concat . replicate n $ indentation conf)
parens :: PrettyPrintConfig -> IsEmpty -> Doc -> Doc
parens conf ie doc = zchr '(' `sep'` doc `sep'` zchr ')'
where
sep' :: Doc -> Doc -> Doc
sep' =
if spaceAfterParens conf && (not (fromEmpty ie) || spaceEmptyParens conf)
then (<->)
else (<>)
brackets :: PrettyPrintConfig -> Doc -> Doc
brackets conf doc = zchr '[' `sep'` doc `sep'` zchr ']'
where
sep' :: Doc -> Doc -> Doc
sep' = if spaceAfterBrackets conf then (<->) else (<>)
braces :: PrettyPrintConfig -> IsEmpty -> Doc -> Doc
braces conf ie doc = zchr '{' `sep'` doc `sep'` zchr '}'
where
sep' :: Doc -> Doc -> Doc
sep' =
if spaceAfterBraces conf && (not (fromEmpty ie) || spaceEmptyBraces conf)
then (<->)
else (<>)
zchr :: Char -> Doc
zchr c = zeroWidthText [c]
infixl 6 <->
(<->) :: Doc -> Doc -> Doc
a <-> b
| a == empty = b
| b == empty = a
| otherwise = a <> zchr ' ' <> b
data OperatorLevel
=
TopLevelExpression
| OperatorLevel1
| OperatorLevel2
| OperatorLevel3
| OperatorLevel4
| OperatorLevel5
| OperatorLevel6
| OperatorLevel7
| OperatorLevel8
deriving (Eq, Ord)
commentsForceMultiline :: [MToken] -> Bool
commentsForceMultiline commentTokens = any containsFormatMultiline commentTokens
where
containsFormatMultiline :: MToken -> Bool
containsFormatMultiline (MToken _pos t) = case t of
DashComment comment -> stringForcesFormat comment
DashBlockComment _ comment -> stringForcesFormat comment
SlashComment comment -> stringForcesFormat comment
SlashBlockComment comment -> stringForcesFormat comment
_ -> False
stringForcesFormat :: String -> Bool
stringForcesFormat s = "format: multiline" `isInfixOf` s
{-# LINE 304 "src/GLua/AG/PrettyPrint.hs" #-}
{-# LINE 1235 "src/GLua/AG/PrettyPrint.ag" #-}
pp_block :: Block -> Int -> Doc
pp_block p i = pretty_Syn_Block (wrap_Block (sem_Block p) (emptyInh_Block{indent_Inh_Block = i}))
pp_mstat :: MStat -> Int -> Doc
pp_mstat p i = pretty_Syn_MStat (wrap_MStat (sem_MStat p) emptyInh_MStat{indent_Inh_MStat = i})
pp_prefixexp :: PrefixExp -> Doc
pp_prefixexp p = pretty_Syn_PrefixExp (wrap_PrefixExp (sem_PrefixExp p) emptyInh_PrefixExp)
pp_pfexprsuffix :: PFExprSuffix -> Doc
pp_pfexprsuffix p =
pretty_Syn_PFExprSuffix (wrap_PFExprSuffix (sem_PFExprSuffix p) emptyInh_PFExprSuffix)
pp_field :: Field -> Doc
pp_field p = pretty_Syn_Field (wrap_Field (sem_Field p) emptyInh_Field)
pp_mexpr :: MExpr -> Doc
pp_mexpr p = pretty_Syn_MExpr (wrap_MExpr (sem_MExpr p) emptyInh_MExpr)
prettyprint :: AST -> String
prettyprint p = render $ pretty_Syn_AST (wrap_AST (sem_AST p) emptyInh_AST)
prettyprintConf :: PrettyPrintConfig -> AST -> String
prettyprintConf conf p =
render $ pretty_Syn_AST (wrap_AST (sem_AST p) emptyInh_AST{ppconf_Inh_AST = conf})
renderBlock :: Block -> String
renderBlock p = render $ pretty_Syn_Block (wrap_Block (sem_Block p) emptyInh_Block)
renderStat :: Stat -> String
renderStat p = render $ pretty_Syn_Stat (wrap_Stat (sem_Stat p) emptyInh_Stat)
renderMStat :: MStat -> String
renderMStat p = render $ pretty_Syn_MStat (wrap_MStat (sem_MStat p) emptyInh_MStat)
renderAReturn :: AReturn -> String
renderAReturn p = render $ pretty_Syn_AReturn (wrap_AReturn (sem_AReturn p) emptyInh_AReturn)
renderFuncName :: FuncName -> String
renderFuncName p = render $ pretty_Syn_FuncName (wrap_FuncName (sem_FuncName p) emptyInh_FuncName)
renderPrefixExp :: PrefixExp -> String
renderPrefixExp p =
render $ pretty_Syn_PrefixExp (wrap_PrefixExp (sem_PrefixExp p) emptyInh_PrefixExp)
renderExpr :: Expr -> String
renderExpr p = render $ pretty_Syn_Expr (wrap_Expr (sem_Expr p) emptyInh_Expr)
renderMExpr :: MExpr -> String
renderMExpr p = render $ pretty_Syn_MExpr (wrap_MExpr (sem_MExpr p) emptyInh_MExpr)
renderArgs :: Args -> String
renderArgs p = render $ pretty_Syn_Args (wrap_Args (sem_Args p) emptyInh_Args)
renderField :: Field -> String
renderField p = render $ pretty_Syn_Field (wrap_Field (sem_Field p) emptyInh_Field)
emptyInh_Field :: Inh_Field
emptyInh_Field =
Inh_Field
{ comments_Inh_Field = []
, forceMultiline_Inh_Field = False
, indent_Inh_Field = 0
, ppconf_Inh_Field = defaultPPConfig
}
emptyInh_Args :: Inh_Args
emptyInh_Args =
Inh_Args
{ comments_Inh_Args = []
, forceMultiline_Inh_Args = False
, indent_Inh_Args = 0
, ppconf_Inh_Args = defaultPPConfig
}
emptyInh_MExpr :: Inh_MExpr
emptyInh_MExpr =
Inh_MExpr
{ comments_Inh_MExpr = []
, forceMultiline_Inh_MExpr = False
, indent_Inh_MExpr = 0
, parentOperatorAssociative_Inh_MExpr = True
, parentOperatorPrecedence_Inh_MExpr = TopLevelExpression
, ppconf_Inh_MExpr = defaultPPConfig
}
emptyInh_Expr :: Inh_Expr
emptyInh_Expr =
Inh_Expr
{ comments_Inh_Expr = []
, forceMultiline_Inh_Expr = False
, indent_Inh_Expr = 0
, parentOperatorAssociative_Inh_Expr = True
, parentOperatorPrecedence_Inh_Expr = TopLevelExpression
, ppconf_Inh_Expr = defaultPPConfig
, statRegion_Inh_Expr = emptyRg
}
emptyInh_PrefixExp :: Inh_PrefixExp
emptyInh_PrefixExp =
Inh_PrefixExp
{ comments_Inh_PrefixExp = []
, forceMultiline_Inh_PrefixExp = False
, indent_Inh_PrefixExp = 0
, parentOperatorAssociative_Inh_PrefixExp = True
, parentOperatorPrecedence_Inh_PrefixExp = TopLevelExpression
, ppconf_Inh_PrefixExp = defaultPPConfig
}
emptyInh_FuncName :: Inh_FuncName
emptyInh_FuncName =
Inh_FuncName
{ comments_Inh_FuncName = []
, indent_Inh_FuncName = 0
, ppconf_Inh_FuncName = defaultPPConfig
}
emptyInh_AReturn :: Inh_AReturn
emptyInh_AReturn =
Inh_AReturn
{ comments_Inh_AReturn = []
, forceMultiline_Inh_AReturn = False
, indent_Inh_AReturn = 0
, ppconf_Inh_AReturn = defaultPPConfig
}
emptyInh_MStat :: Inh_MStat
emptyInh_MStat =
Inh_MStat
{ comments_Inh_MStat = []
, forceMultiline_Inh_MStat = False
, indent_Inh_MStat = 0
, isLastStatement_Inh_MStat = False
, ppconf_Inh_MStat = defaultPPConfig
, wouldBeAmbiguousWithoutSemicolon_Inh_MStat = False
}
emptyInh_Stat :: Inh_Stat
emptyInh_Stat =
Inh_Stat
{ comments_Inh_Stat = []
, forceMultiline_Inh_Stat = False
, indent_Inh_Stat = 0
, isLastStatement_Inh_Stat = False
, ppconf_Inh_Stat = defaultPPConfig
, statRegion_Inh_Stat = emptyRg
, wouldBeAmbiguousWithoutSemicolon_Inh_Stat = False
}
emptyInh_Block :: Inh_Block
emptyInh_Block =
Inh_Block
{ comments_Inh_Block = []
, forceMultiline_Inh_Block = False
, indent_Inh_Block = 0
, ppconf_Inh_Block = defaultPPConfig
, statRegion_Inh_Block = emptyRg
}
emptyInh_AST :: Inh_AST
emptyInh_AST =
Inh_AST
{ indent_Inh_AST = 0
, ppconf_Inh_AST = defaultPPConfig
}
emptyInh_PFExprSuffix :: Inh_PFExprSuffix
emptyInh_PFExprSuffix =
Inh_PFExprSuffix
{ comments_Inh_PFExprSuffix = []
, forceMultiline_Inh_PFExprSuffix = False
, indent_Inh_PFExprSuffix = 0
, ppconf_Inh_PFExprSuffix = defaultPPConfig
}
{-# LINE 484 "src/GLua/AG/PrettyPrint.hs" #-}
sem_AReturn
:: AReturn
-> T_AReturn
sem_AReturn :: AReturn -> T_AReturn
sem_AReturn (AReturn Region
_pos [MExpr]
_values) =
(Region -> T_MExprList -> T_AReturn
sem_AReturn_AReturn Region
_pos ([MExpr] -> T_MExprList
sem_MExprList [MExpr]
_values))
sem_AReturn (AReturn
NoReturn) =
(T_AReturn
sem_AReturn_NoReturn)
type T_AReturn =
([MToken])
-> Bool
-> Int
-> PrettyPrintConfig
-> (([MToken]), AReturn, Bool, Doc, Int)
data Inh_AReturn = Inh_AReturn { :: ([MToken]), Inh_AReturn -> Bool
forceMultiline_Inh_AReturn :: Bool, Inh_AReturn -> Int
indent_Inh_AReturn :: Int, Inh_AReturn -> PrettyPrintConfig
ppconf_Inh_AReturn :: PrettyPrintConfig}
data Syn_AReturn = Syn_AReturn { :: ([MToken]), Syn_AReturn -> AReturn
copy_Syn_AReturn :: AReturn, Syn_AReturn -> Bool
isMultiline_Syn_AReturn :: Bool, Syn_AReturn -> Doc
pretty_Syn_AReturn :: Doc, Syn_AReturn -> Int
statementCount_Syn_AReturn :: Int}
wrap_AReturn
:: T_AReturn
-> Inh_AReturn
-> Syn_AReturn
wrap_AReturn :: T_AReturn -> Inh_AReturn -> Syn_AReturn
wrap_AReturn T_AReturn
sem (Inh_AReturn [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf) =
( let
([MToken]
_lhsOcomments, AReturn
_lhsOcopy, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Int
_lhsOstatementCount) = T_AReturn
sem [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf
in
([MToken] -> AReturn -> Bool -> Doc -> Int -> Syn_AReturn
Syn_AReturn [MToken]
_lhsOcomments AReturn
_lhsOcopy Bool
_lhsOisMultiline Doc
_lhsOpretty Int
_lhsOstatementCount)
)
sem_AReturn_AReturn
:: Region
-> T_MExprList
-> T_AReturn
sem_AReturn_AReturn :: Region -> T_MExprList -> T_AReturn
sem_AReturn_AReturn Region
pos_ T_MExprList
values_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_valuesOcomments :: ([MToken])
_lhsOcomments :: ([MToken])
_valuesOforceMultiline :: Bool
_valuesOsomeElementsInListAreMultiline :: Bool
_lhsOstatementCount :: Int
_lhsOcopy :: AReturn
_valuesOindent :: Int
_valuesOppconf :: PrettyPrintConfig
_valuesIcomments :: ([MToken])
_valuesIcopy :: MExprList
_valuesIisAssociative :: Bool
_valuesIisLast :: Bool
_valuesIisMultiline :: Bool
_valuesIpos :: Region
_valuesIprecedence :: OperatorLevel
_valuesIpretty :: Doc
_lhsOpretty :: Doc
_lhsOpretty =
( PrettyPrintConfig -> Int -> [MToken] -> Doc
renderMLComments PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsBefore)
Doc -> Doc -> Doc
$+$ PrettyPrintConfig -> Int -> Doc -> Doc
indent PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (String -> Doc
zeroWidthText String
"return")
Doc -> Doc -> Doc
<-> Doc
_valuesIpretty
Doc -> Doc -> Doc
<> Doc
_semicolon
Doc -> Doc -> Doc
<-> PrettyPrintConfig -> Int -> [MToken] -> Doc
renderSLComments PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsAfter)
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_valuesIisMultiline
Bool -> Bool -> Bool
|| Bool -> Bool
not (forall (t :: * -> *) a. Foldable t => t a -> Bool
null forall a b. (a -> b) -> a -> b
$ forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsBefore)
Bool -> Bool -> Bool
|| Bool -> Bool
not (forall (t :: * -> *) a. Foldable t => t a -> Bool
null forall a b. (a -> b) -> a -> b
$ forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsAfter)
)
_semicolon :: Doc
_semicolon =
( if PrettyPrintConfig -> Bool
semicolons PrettyPrintConfig
_lhsIppconf then Char -> Doc
zchr Char
';' else Doc
empty
)
_commentsBefore :: ([MToken], [MToken])
_commentsBefore =
( forall a. (a -> Bool) -> [a] -> ([a], [a])
span (\(MToken Region
pos Token
_) -> Region
pos Region -> Region -> Bool
`before` Region
pos_) [MToken]
_lhsIcomments
)
_valuesOcomments :: [MToken]
_valuesOcomments =
( forall a b. (a, b) -> b
snd ([MToken], [MToken])
_commentsBefore
)
_commentsAfter :: ([MToken], [MToken])
_commentsAfter =
( forall a. (a -> Bool) -> [a] -> ([a], [a])
span (\(MToken Region
pos Token
_) -> Region
pos Region -> Region -> Bool
`beforeOrOnLine` (Region -> Region -> Region
rgOr Region
_valuesIpos Region
pos_)) [MToken]
_valuesIcomments
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( forall a b. (a, b) -> b
snd ([MToken], [MToken])
_commentsAfter
)
_valuesOforceMultiline :: Bool
_valuesOforceMultiline =
( Bool
False
)
_valuesOsomeElementsInListAreMultiline :: Bool
_valuesOsomeElementsInListAreMultiline =
( Bool
False
)
_lhsOstatementCount :: Int
_lhsOstatementCount =
( Int
1
)
_copy :: AReturn
_copy =
( Region -> [MExpr] -> AReturn
AReturn Region
pos_ [MExpr]
_valuesIcopy
)
_lhsOcopy :: AReturn
_lhsOcopy =
( AReturn
_copy
)
_valuesOindent :: Int
_valuesOindent =
( Int
_lhsIindent
)
_valuesOppconf :: PrettyPrintConfig
_valuesOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_valuesIcomments, [MExpr]
_valuesIcopy, Bool
_valuesIisAssociative, Bool
_valuesIisLast, Bool
_valuesIisMultiline, Region
_valuesIpos, OperatorLevel
_valuesIprecedence, Doc
_valuesIpretty) =
T_MExprList
values_ [MToken]
_valuesOcomments Bool
_valuesOforceMultiline Int
_valuesOindent PrettyPrintConfig
_valuesOppconf Bool
_valuesOsomeElementsInListAreMultiline
in
([MToken]
_lhsOcomments, AReturn
_lhsOcopy, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Int
_lhsOstatementCount)
)
)
sem_AReturn_NoReturn :: T_AReturn
sem_AReturn_NoReturn :: T_AReturn
sem_AReturn_NoReturn =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOstatementCount :: Int
_lhsOisMultiline :: Bool
_lhsOcopy :: AReturn
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
empty
)
_lhsOstatementCount :: Int
_lhsOstatementCount =
( Int
0
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_copy :: AReturn
_copy =
( AReturn
NoReturn
)
_lhsOcopy :: AReturn
_lhsOcopy =
( AReturn
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, AReturn
_lhsOcopy, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Int
_lhsOstatementCount)
)
)
sem_AST
:: AST
-> T_AST
sem_AST :: AST -> T_AST
sem_AST (AST [MToken]
_comments Block
_chunk) =
([MToken] -> T_Block -> T_AST
sem_AST_AST [MToken]
_comments (Block -> T_Block
sem_Block Block
_chunk))
type T_AST =
Int
-> PrettyPrintConfig
-> (AST, Bool, Doc)
data Inh_AST = Inh_AST {Inh_AST -> Int
indent_Inh_AST :: Int, Inh_AST -> PrettyPrintConfig
ppconf_Inh_AST :: PrettyPrintConfig}
data Syn_AST = Syn_AST {Syn_AST -> AST
copy_Syn_AST :: AST, Syn_AST -> Bool
isMultiline_Syn_AST :: Bool, Syn_AST -> Doc
pretty_Syn_AST :: Doc}
wrap_AST
:: T_AST
-> Inh_AST
-> Syn_AST
wrap_AST :: T_AST -> Inh_AST -> Syn_AST
wrap_AST T_AST
sem (Inh_AST Int
_lhsIindent PrettyPrintConfig
_lhsIppconf) =
( let
(AST
_lhsOcopy, Bool
_lhsOisMultiline, Doc
_lhsOpretty) = T_AST
sem Int
_lhsIindent PrettyPrintConfig
_lhsIppconf
in
(AST -> Bool -> Doc -> Syn_AST
Syn_AST AST
_lhsOcopy Bool
_lhsOisMultiline Doc
_lhsOpretty)
)
sem_AST_AST
:: ([MToken])
-> T_Block
-> T_AST
sem_AST_AST :: [MToken] -> T_Block -> T_AST
sem_AST_AST [MToken]
comments_ T_Block
chunk_ =
( \Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_chunkOcomments :: ([MToken])
_chunkOstatRegion :: Region
_chunkOforceMultiline :: Bool
_lhsOcopy :: AST
_chunkOindent :: Int
_chunkOppconf :: PrettyPrintConfig
_chunkIcomments :: ([MToken])
_chunkIcopy :: Block
_chunkIisMultiline :: Bool
_chunkIpretty :: Doc
_chunkIstatementCount :: Int
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
_chunkIpretty Doc -> Doc -> Doc
$+$ Doc
_prettyComments
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_chunkIisMultiline
)
_prettyComments :: Doc
_prettyComments =
( PrettyPrintConfig -> Int -> [MToken] -> Doc
renderMLComments PrettyPrintConfig
_lhsIppconf Int
_lhsIindent [MToken]
_chunkIcomments
)
_chunkOcomments :: [MToken]
_chunkOcomments =
( [MToken]
comments_
)
_chunkOstatRegion :: Region
_chunkOstatRegion =
( Region
emptyRg
)
_chunkOforceMultiline :: Bool
_chunkOforceMultiline =
( Bool
False
)
_copy :: AST
_copy =
( [MToken] -> Block -> AST
AST [MToken]
comments_ Block
_chunkIcopy
)
_lhsOcopy :: AST
_lhsOcopy =
( AST
_copy
)
_chunkOindent :: Int
_chunkOindent =
( Int
_lhsIindent
)
_chunkOppconf :: PrettyPrintConfig
_chunkOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_chunkIcomments, Block
_chunkIcopy, Bool
_chunkIisMultiline, Doc
_chunkIpretty, Int
_chunkIstatementCount) =
T_Block
chunk_ [MToken]
_chunkOcomments Bool
_chunkOforceMultiline Int
_chunkOindent PrettyPrintConfig
_chunkOppconf Region
_chunkOstatRegion
in
(AST
_lhsOcopy, Bool
_lhsOisMultiline, Doc
_lhsOpretty)
)
)
sem_Args
:: Args
-> T_Args
sem_Args :: Args -> T_Args
sem_Args (ListArgs [MExpr]
_args) =
(T_MExprList -> T_Args
sem_Args_ListArgs ([MExpr] -> T_MExprList
sem_MExprList [MExpr]
_args))
sem_Args (TableArg FieldList
_arg) =
(T_FieldList -> T_Args
sem_Args_TableArg (FieldList -> T_FieldList
sem_FieldList FieldList
_arg))
sem_Args (StringArg MToken
_arg) =
(MToken -> T_Args
sem_Args_StringArg MToken
_arg)
type T_Args =
([MToken])
-> Bool
-> Int
-> PrettyPrintConfig
-> (([MToken]), Args, Bool, Doc)
data Inh_Args = Inh_Args { :: ([MToken]), Inh_Args -> Bool
forceMultiline_Inh_Args :: Bool, Inh_Args -> Int
indent_Inh_Args :: Int, Inh_Args -> PrettyPrintConfig
ppconf_Inh_Args :: PrettyPrintConfig}
data Syn_Args = Syn_Args { :: ([MToken]), Syn_Args -> Args
copy_Syn_Args :: Args, Syn_Args -> Bool
isMultiline_Syn_Args :: Bool, Syn_Args -> Doc
pretty_Syn_Args :: Doc}
wrap_Args
:: T_Args
-> Inh_Args
-> Syn_Args
wrap_Args :: T_Args -> Inh_Args -> Syn_Args
wrap_Args T_Args
sem (Inh_Args [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf) =
( let
([MToken]
_lhsOcomments, Args
_lhsOcopy, Bool
_lhsOisMultiline, Doc
_lhsOpretty) = T_Args
sem [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf
in
([MToken] -> Args -> Bool -> Doc -> Syn_Args
Syn_Args [MToken]
_lhsOcomments Args
_lhsOcopy Bool
_lhsOisMultiline Doc
_lhsOpretty)
)
sem_Args_ListArgs
:: T_MExprList
-> T_Args
sem_Args_ListArgs :: T_MExprList -> T_Args
sem_Args_ListArgs T_MExprList
args_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_argsOindent :: Int
_argsOsomeElementsInListAreMultiline :: Bool
_lhsOcopy :: Args
_lhsOcomments :: ([MToken])
_argsOcomments :: ([MToken])
_argsOforceMultiline :: Bool
_argsOppconf :: PrettyPrintConfig
_argsIcomments :: ([MToken])
_argsIcopy :: MExprList
_argsIisAssociative :: Bool
_argsIisLast :: Bool
_argsIisMultiline :: Bool
_argsIpos :: Region
_argsIprecedence :: OperatorLevel
_argsIpretty :: Doc
_lhsOpretty :: Doc
_lhsOpretty =
( if Bool
_argsIisMultiline
then
Char -> Doc
zchr Char
'('
Doc -> Doc -> Doc
$+$ Doc
_argsIpretty
Doc -> Doc -> Doc
$+$ PrettyPrintConfig -> Int -> Doc -> Doc
indent PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (Char -> Doc
zchr Char
')')
else PrettyPrintConfig -> IsEmpty -> Doc -> Doc
parens PrettyPrintConfig
_lhsIppconf IsEmpty
_emptyParams Doc
_argsIpretty
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_argsIisMultiline
)
_emptyParams :: IsEmpty
_emptyParams =
( Bool -> IsEmpty
toEmpty forall a b. (a -> b) -> a -> b
$ forall (t :: * -> *) a. Foldable t => t a -> Bool
null [MExpr]
_argsIcopy
)
_argsOindent :: Int
_argsOindent =
( if Bool
_argsIisMultiline then Int
_lhsIindent forall a. Num a => a -> a -> a
+ Int
1 else Int
0
)
_argsOsomeElementsInListAreMultiline :: Bool
_argsOsomeElementsInListAreMultiline =
( Bool
False
)
_copy :: Args
_copy =
( [MExpr] -> Args
ListArgs [MExpr]
_argsIcopy
)
_lhsOcopy :: Args
_lhsOcopy =
( Args
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_argsIcomments
)
_argsOcomments :: [MToken]
_argsOcomments =
( [MToken]
_lhsIcomments
)
_argsOforceMultiline :: Bool
_argsOforceMultiline =
( Bool
_lhsIforceMultiline
)
_argsOppconf :: PrettyPrintConfig
_argsOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_argsIcomments, [MExpr]
_argsIcopy, Bool
_argsIisAssociative, Bool
_argsIisLast, Bool
_argsIisMultiline, Region
_argsIpos, OperatorLevel
_argsIprecedence, Doc
_argsIpretty) =
T_MExprList
args_ [MToken]
_argsOcomments Bool
_argsOforceMultiline Int
_argsOindent PrettyPrintConfig
_argsOppconf Bool
_argsOsomeElementsInListAreMultiline
in
([MToken]
_lhsOcomments, Args
_lhsOcopy, Bool
_lhsOisMultiline, Doc
_lhsOpretty)
)
)
sem_Args_TableArg
:: T_FieldList
-> T_Args
sem_Args_TableArg :: T_FieldList -> T_Args
sem_Args_TableArg T_FieldList
arg_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_argOindent :: Int
_argOsomeElementsInListAreMultiline :: Bool
_lhsOcopy :: Args
_lhsOcomments :: ([MToken])
_argOcomments :: ([MToken])
_argOforceMultiline :: Bool
_argOppconf :: PrettyPrintConfig
_argIcomments :: ([MToken])
_argIcopy :: FieldList
_argIisMultiline :: Bool
_argIisNil :: Bool
_argIpretty :: Doc
_lhsOpretty :: Doc
_lhsOpretty =
( if Bool
_argIisMultiline then Doc
_prettyMulti else Doc
_prettySingle
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_argIisMultiline
)
_prettyMulti :: Doc
_prettyMulti =
( Char -> Doc
zchr Char
'{' Doc -> Doc -> Doc
$+$ Doc
_argIpretty Doc -> Doc -> Doc
$+$ PrettyPrintConfig -> Int -> Doc -> Doc
indent PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (Char -> Doc
zchr Char
'}')
)
_prettySingle :: Doc
_prettySingle =
( PrettyPrintConfig -> IsEmpty -> Doc -> Doc
braces PrettyPrintConfig
_lhsIppconf IsEmpty
_emptyContents Doc
_argIpretty
)
_emptyContents :: IsEmpty
_emptyContents =
( Bool -> IsEmpty
toEmpty forall a b. (a -> b) -> a -> b
$ forall (t :: * -> *) a. Foldable t => t a -> Bool
null FieldList
_argIcopy
)
_argOindent :: Int
_argOindent =
( Int
_lhsIindent forall a. Num a => a -> a -> a
+ (if Bool
_argIisMultiline then Int
1 else Int
0)
)
_argOsomeElementsInListAreMultiline :: Bool
_argOsomeElementsInListAreMultiline =
( Bool
False
)
_copy :: Args
_copy =
( FieldList -> Args
TableArg FieldList
_argIcopy
)
_lhsOcopy :: Args
_lhsOcopy =
( Args
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_argIcomments
)
_argOcomments :: [MToken]
_argOcomments =
( [MToken]
_lhsIcomments
)
_argOforceMultiline :: Bool
_argOforceMultiline =
( Bool
_lhsIforceMultiline
)
_argOppconf :: PrettyPrintConfig
_argOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_argIcomments, FieldList
_argIcopy, Bool
_argIisMultiline, Bool
_argIisNil, Doc
_argIpretty) =
T_FieldList
arg_ [MToken]
_argOcomments Bool
_argOforceMultiline Int
_argOindent PrettyPrintConfig
_argOppconf Bool
_argOsomeElementsInListAreMultiline
in
([MToken]
_lhsOcomments, Args
_lhsOcopy, Bool
_lhsOisMultiline, Doc
_lhsOpretty)
)
)
sem_Args_StringArg
:: MToken
-> T_Args
sem_Args_StringArg :: MToken -> T_Args
sem_Args_StringArg MToken
arg_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOcopy :: Args
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( MToken -> Doc
tok MToken
arg_
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_copy :: Args
_copy =
( MToken -> Args
StringArg MToken
arg_
)
_lhsOcopy :: Args
_lhsOcopy =
( Args
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, Args
_lhsOcopy, Bool
_lhsOisMultiline, Doc
_lhsOpretty)
)
)
sem_BinOp
:: BinOp
-> T_BinOp
sem_BinOp :: BinOp -> T_BinOp
sem_BinOp (BinOp
AOr) =
(T_BinOp
sem_BinOp_AOr)
sem_BinOp (BinOp
AAnd) =
(T_BinOp
sem_BinOp_AAnd)
sem_BinOp (BinOp
ALT) =
(T_BinOp
sem_BinOp_ALT)
sem_BinOp (BinOp
AGT) =
(T_BinOp
sem_BinOp_AGT)
sem_BinOp (BinOp
ALEQ) =
(T_BinOp
sem_BinOp_ALEQ)
sem_BinOp (BinOp
AGEQ) =
(T_BinOp
sem_BinOp_AGEQ)
sem_BinOp (BinOp
ANEq) =
(T_BinOp
sem_BinOp_ANEq)
sem_BinOp (BinOp
AEq) =
(T_BinOp
sem_BinOp_AEq)
sem_BinOp (BinOp
AConcatenate) =
(T_BinOp
sem_BinOp_AConcatenate)
sem_BinOp (BinOp
APlus) =
(T_BinOp
sem_BinOp_APlus)
sem_BinOp (BinOp
BinMinus) =
(T_BinOp
sem_BinOp_BinMinus)
sem_BinOp (BinOp
AMultiply) =
(T_BinOp
sem_BinOp_AMultiply)
sem_BinOp (BinOp
ADivide) =
(T_BinOp
sem_BinOp_ADivide)
sem_BinOp (BinOp
AModulus) =
(T_BinOp
sem_BinOp_AModulus)
sem_BinOp (BinOp
APower) =
(T_BinOp
sem_BinOp_APower)
type T_BinOp =
([MToken])
-> Int
-> PrettyPrintConfig
-> (([MToken]), BinOp, Bool, Bool, OperatorLevel, Doc)
data Inh_BinOp = Inh_BinOp { :: ([MToken]), Inh_BinOp -> Int
indent_Inh_BinOp :: Int, Inh_BinOp -> PrettyPrintConfig
ppconf_Inh_BinOp :: PrettyPrintConfig}
data Syn_BinOp = Syn_BinOp { :: ([MToken]), Syn_BinOp -> BinOp
copy_Syn_BinOp :: BinOp, Syn_BinOp -> Bool
isAssociative_Syn_BinOp :: Bool, Syn_BinOp -> Bool
isMultiline_Syn_BinOp :: Bool, Syn_BinOp -> OperatorLevel
precedence_Syn_BinOp :: OperatorLevel, Syn_BinOp -> Doc
pretty_Syn_BinOp :: Doc}
wrap_BinOp
:: T_BinOp
-> Inh_BinOp
-> Syn_BinOp
wrap_BinOp :: T_BinOp -> Inh_BinOp -> Syn_BinOp
wrap_BinOp T_BinOp
sem (Inh_BinOp [MToken]
_lhsIcomments Int
_lhsIindent PrettyPrintConfig
_lhsIppconf) =
( let
([MToken]
_lhsOcomments, BinOp
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty) = T_BinOp
sem [MToken]
_lhsIcomments Int
_lhsIindent PrettyPrintConfig
_lhsIppconf
in
([MToken]
-> BinOp -> Bool -> Bool -> OperatorLevel -> Doc -> Syn_BinOp
Syn_BinOp [MToken]
_lhsOcomments BinOp
_lhsOcopy Bool
_lhsOisAssociative Bool
_lhsOisMultiline OperatorLevel
_lhsOprecedence Doc
_lhsOpretty)
)
sem_BinOp_AOr :: T_BinOp
sem_BinOp_AOr :: T_BinOp
sem_BinOp_AOr =
( \[MToken]
_lhsIcomments
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOisAssociative :: Bool
_lhsOcopy :: BinOp
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText (if PrettyPrintConfig -> Bool
cStyle PrettyPrintConfig
_lhsIppconf then String
"||" else String
"or")
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel1
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
True
)
_copy :: BinOp
_copy =
( BinOp
AOr
)
_lhsOcopy :: BinOp
_lhsOcopy =
( BinOp
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, BinOp
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_BinOp_AAnd :: T_BinOp
sem_BinOp_AAnd :: T_BinOp
sem_BinOp_AAnd =
( \[MToken]
_lhsIcomments
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOisAssociative :: Bool
_lhsOcopy :: BinOp
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText (if PrettyPrintConfig -> Bool
cStyle PrettyPrintConfig
_lhsIppconf then String
"&&" else String
"and")
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel2
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
True
)
_copy :: BinOp
_copy =
( BinOp
AAnd
)
_lhsOcopy :: BinOp
_lhsOcopy =
( BinOp
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, BinOp
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_BinOp_ALT :: T_BinOp
sem_BinOp_ALT :: T_BinOp
sem_BinOp_ALT =
( \[MToken]
_lhsIcomments
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOisAssociative :: Bool
_lhsOcopy :: BinOp
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"<"
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel3
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
True
)
_copy :: BinOp
_copy =
( BinOp
ALT
)
_lhsOcopy :: BinOp
_lhsOcopy =
( BinOp
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, BinOp
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_BinOp_AGT :: T_BinOp
sem_BinOp_AGT :: T_BinOp
sem_BinOp_AGT =
( \[MToken]
_lhsIcomments
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOisAssociative :: Bool
_lhsOcopy :: BinOp
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
">"
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel3
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
True
)
_copy :: BinOp
_copy =
( BinOp
AGT
)
_lhsOcopy :: BinOp
_lhsOcopy =
( BinOp
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, BinOp
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_BinOp_ALEQ :: T_BinOp
sem_BinOp_ALEQ :: T_BinOp
sem_BinOp_ALEQ =
( \[MToken]
_lhsIcomments
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOisAssociative :: Bool
_lhsOcopy :: BinOp
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"<="
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel3
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
True
)
_copy :: BinOp
_copy =
( BinOp
ALEQ
)
_lhsOcopy :: BinOp
_lhsOcopy =
( BinOp
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, BinOp
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_BinOp_AGEQ :: T_BinOp
sem_BinOp_AGEQ :: T_BinOp
sem_BinOp_AGEQ =
( \[MToken]
_lhsIcomments
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOisAssociative :: Bool
_lhsOcopy :: BinOp
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
">="
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel3
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
True
)
_copy :: BinOp
_copy =
( BinOp
AGEQ
)
_lhsOcopy :: BinOp
_lhsOcopy =
( BinOp
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, BinOp
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_BinOp_ANEq :: T_BinOp
sem_BinOp_ANEq :: T_BinOp
sem_BinOp_ANEq =
( \[MToken]
_lhsIcomments
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOisAssociative :: Bool
_lhsOcopy :: BinOp
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText (if PrettyPrintConfig -> Bool
cStyle PrettyPrintConfig
_lhsIppconf then String
"!=" else String
"~=")
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel3
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
True
)
_copy :: BinOp
_copy =
( BinOp
ANEq
)
_lhsOcopy :: BinOp
_lhsOcopy =
( BinOp
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, BinOp
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_BinOp_AEq :: T_BinOp
sem_BinOp_AEq :: T_BinOp
sem_BinOp_AEq =
( \[MToken]
_lhsIcomments
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOisAssociative :: Bool
_lhsOcopy :: BinOp
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"=="
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel3
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
True
)
_copy :: BinOp
_copy =
( BinOp
AEq
)
_lhsOcopy :: BinOp
_lhsOcopy =
( BinOp
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, BinOp
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_BinOp_AConcatenate :: T_BinOp
sem_BinOp_AConcatenate :: T_BinOp
sem_BinOp_AConcatenate =
( \[MToken]
_lhsIcomments
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOisAssociative :: Bool
_lhsOcopy :: BinOp
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
".."
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel4
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
True
)
_copy :: BinOp
_copy =
( BinOp
AConcatenate
)
_lhsOcopy :: BinOp
_lhsOcopy =
( BinOp
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, BinOp
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_BinOp_APlus :: T_BinOp
sem_BinOp_APlus :: T_BinOp
sem_BinOp_APlus =
( \[MToken]
_lhsIcomments
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOisAssociative :: Bool
_lhsOcopy :: BinOp
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"+"
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel5
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
True
)
_copy :: BinOp
_copy =
( BinOp
APlus
)
_lhsOcopy :: BinOp
_lhsOcopy =
( BinOp
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, BinOp
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_BinOp_BinMinus :: T_BinOp
sem_BinOp_BinMinus :: T_BinOp
sem_BinOp_BinMinus =
( \[MToken]
_lhsIcomments
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOisAssociative :: Bool
_lhsOcopy :: BinOp
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"-"
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel5
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
False
)
_copy :: BinOp
_copy =
( BinOp
BinMinus
)
_lhsOcopy :: BinOp
_lhsOcopy =
( BinOp
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, BinOp
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_BinOp_AMultiply :: T_BinOp
sem_BinOp_AMultiply :: T_BinOp
sem_BinOp_AMultiply =
( \[MToken]
_lhsIcomments
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOisAssociative :: Bool
_lhsOcopy :: BinOp
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"*"
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel6
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
True
)
_copy :: BinOp
_copy =
( BinOp
AMultiply
)
_lhsOcopy :: BinOp
_lhsOcopy =
( BinOp
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, BinOp
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_BinOp_ADivide :: T_BinOp
sem_BinOp_ADivide :: T_BinOp
sem_BinOp_ADivide =
( \[MToken]
_lhsIcomments
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOisAssociative :: Bool
_lhsOcopy :: BinOp
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"/"
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel6
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
False
)
_copy :: BinOp
_copy =
( BinOp
ADivide
)
_lhsOcopy :: BinOp
_lhsOcopy =
( BinOp
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, BinOp
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_BinOp_AModulus :: T_BinOp
sem_BinOp_AModulus :: T_BinOp
sem_BinOp_AModulus =
( \[MToken]
_lhsIcomments
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOisAssociative :: Bool
_lhsOcopy :: BinOp
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"%"
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel6
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
False
)
_copy :: BinOp
_copy =
( BinOp
AModulus
)
_lhsOcopy :: BinOp
_lhsOcopy =
( BinOp
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, BinOp
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_BinOp_APower :: T_BinOp
sem_BinOp_APower :: T_BinOp
sem_BinOp_APower =
( \[MToken]
_lhsIcomments
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOisAssociative :: Bool
_lhsOcopy :: BinOp
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"^"
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel8
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
False
)
_copy :: BinOp
_copy =
( BinOp
APower
)
_lhsOcopy :: BinOp
_lhsOcopy =
( BinOp
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, BinOp
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_Block
:: Block
-> T_Block
sem_Block :: Block -> T_Block
sem_Block (Block [MStat]
_stats AReturn
_ret) =
(T_MStatList -> T_AReturn -> T_Block
sem_Block_Block ([MStat] -> T_MStatList
sem_MStatList [MStat]
_stats) (AReturn -> T_AReturn
sem_AReturn AReturn
_ret))
type T_Block =
([MToken])
-> Bool
-> Int
-> PrettyPrintConfig
-> Region
-> (([MToken]), Block, Bool, Doc, Int)
data Inh_Block = Inh_Block { :: ([MToken]), Inh_Block -> Bool
forceMultiline_Inh_Block :: Bool, Inh_Block -> Int
indent_Inh_Block :: Int, Inh_Block -> PrettyPrintConfig
ppconf_Inh_Block :: PrettyPrintConfig, Inh_Block -> Region
statRegion_Inh_Block :: Region}
data Syn_Block = Syn_Block { :: ([MToken]), Syn_Block -> Block
copy_Syn_Block :: Block, Syn_Block -> Bool
isMultiline_Syn_Block :: Bool, Syn_Block -> Doc
pretty_Syn_Block :: Doc, Syn_Block -> Int
statementCount_Syn_Block :: Int}
wrap_Block
:: T_Block
-> Inh_Block
-> Syn_Block
wrap_Block :: T_Block -> Inh_Block -> Syn_Block
wrap_Block T_Block
sem (Inh_Block [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf Region
_lhsIstatRegion) =
( let
([MToken]
_lhsOcomments, Block
_lhsOcopy, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Int
_lhsOstatementCount) = T_Block
sem [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf Region
_lhsIstatRegion
in
([MToken] -> Block -> Bool -> Doc -> Int -> Syn_Block
Syn_Block [MToken]
_lhsOcomments Block
_lhsOcopy Bool
_lhsOisMultiline Doc
_lhsOpretty Int
_lhsOstatementCount)
)
sem_Block_Block
:: T_MStatList
-> T_AReturn
-> T_Block
sem_Block_Block :: T_MStatList -> T_AReturn -> T_Block
sem_Block_Block T_MStatList
stats_ T_AReturn
ret_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion ->
( let
_lhsOpretty :: Doc
_lhsOstatementCount :: Int
_lhsOcopy :: Block
_lhsOcomments :: ([MToken])
_lhsOisMultiline :: Bool
_statsOcomments :: ([MToken])
_statsOforceMultiline :: Bool
_statsOindent :: Int
_statsOppconf :: PrettyPrintConfig
_statsOstatRegion :: Region
_retOcomments :: ([MToken])
_retOforceMultiline :: Bool
_retOindent :: Int
_retOppconf :: PrettyPrintConfig
_statsIcomments :: ([MToken])
_statsIcopy :: MStatList
_statsIisLast :: Bool
_statsIisMultiline :: Bool
_statsIpretty :: Doc
_statsIstartsWithExprPrefixExpression :: Bool
_statsIstatementCount :: Int
_retIcomments :: ([MToken])
_retIcopy :: AReturn
_retIisMultiline :: Bool
_retIpretty :: Doc
_retIstatementCount :: Int
_lhsOpretty :: Doc
_lhsOpretty =
( if Bool
_isMultiline
then Doc
_statsIpretty Doc -> Doc -> Doc
$+$ Doc
_retIpretty
else Doc
_statsIpretty Doc -> Doc -> Doc
<-> Doc
_retIpretty
)
_statementCount :: Int
_statementCount =
( Int
_statsIstatementCount forall a. Num a => a -> a -> a
+ Int
_retIstatementCount
)
_isMultiline :: Bool
_isMultiline =
( Bool
_statsIisMultiline Bool -> Bool -> Bool
|| Bool
_retIisMultiline Bool -> Bool -> Bool
|| Int
_statementCount forall a. Ord a => a -> a -> Bool
> Int
1
)
_lhsOstatementCount :: Int
_lhsOstatementCount =
( Int
_statementCount
)
_copy :: Block
_copy =
( [MStat] -> AReturn -> Block
Block [MStat]
_statsIcopy AReturn
_retIcopy
)
_lhsOcopy :: Block
_lhsOcopy =
( Block
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_retIcomments
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_isMultiline
)
_statsOcomments :: [MToken]
_statsOcomments =
( [MToken]
_lhsIcomments
)
_statsOforceMultiline :: Bool
_statsOforceMultiline =
( Bool
_lhsIforceMultiline
)
_statsOindent :: Int
_statsOindent =
( Int
_lhsIindent
)
_statsOppconf :: PrettyPrintConfig
_statsOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_statsOstatRegion :: Region
_statsOstatRegion =
( Region
_lhsIstatRegion
)
_retOcomments :: [MToken]
_retOcomments =
( [MToken]
_statsIcomments
)
_retOforceMultiline :: Bool
_retOforceMultiline =
( Bool
_lhsIforceMultiline
)
_retOindent :: Int
_retOindent =
( Int
_lhsIindent
)
_retOppconf :: PrettyPrintConfig
_retOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_statsIcomments, [MStat]
_statsIcopy, Bool
_statsIisLast, Bool
_statsIisMultiline, Doc
_statsIpretty, Bool
_statsIstartsWithExprPrefixExpression, Int
_statsIstatementCount) =
T_MStatList
stats_ [MToken]
_statsOcomments Bool
_statsOforceMultiline Int
_statsOindent PrettyPrintConfig
_statsOppconf Region
_statsOstatRegion
([MToken]
_retIcomments, AReturn
_retIcopy, Bool
_retIisMultiline, Doc
_retIpretty, Int
_retIstatementCount) =
T_AReturn
ret_ [MToken]
_retOcomments Bool
_retOforceMultiline Int
_retOindent PrettyPrintConfig
_retOppconf
in
([MToken]
_lhsOcomments, Block
_lhsOcopy, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Int
_lhsOstatementCount)
)
)
sem_Declaration
:: Declaration
-> T_Declaration
sem_Declaration :: (PrefixExp, Maybe MExpr) -> T_Declaration
sem_Declaration (PrefixExp
x1, Maybe MExpr
x2) =
(T_PrefixExp -> T_MaybeMExpr -> T_Declaration
sem_Declaration_Tuple (PrefixExp -> T_PrefixExp
sem_PrefixExp PrefixExp
x1) (Maybe MExpr -> T_MaybeMExpr
sem_MaybeMExpr Maybe MExpr
x2))
type T_Declaration =
([MToken])
-> Bool
-> Int
-> PrettyPrintConfig
-> (([MToken]), Declaration, Bool, Doc, Bool, Bool, Doc, Bool, Doc)
data Inh_Declaration = Inh_Declaration { :: ([MToken]), Inh_Declaration -> Bool
forceMultiline_Inh_Declaration :: Bool, Inh_Declaration -> Int
indent_Inh_Declaration :: Int, Inh_Declaration -> PrettyPrintConfig
ppconf_Inh_Declaration :: PrettyPrintConfig}
data Syn_Declaration = Syn_Declaration { :: ([MToken]), Syn_Declaration -> (PrefixExp, Maybe MExpr)
copy_Syn_Declaration :: Declaration, Syn_Declaration -> Bool
endsWithPrefixExpression_Syn_Declaration :: Bool, Syn_Declaration -> Doc
exprPretty_Syn_Declaration :: Doc, Syn_Declaration -> Bool
isDefined_Syn_Declaration :: Bool, Syn_Declaration -> Bool
isMultiline_Syn_Declaration :: Bool, Syn_Declaration -> Doc
pretty_Syn_Declaration :: Doc, Syn_Declaration -> Bool
startsWithExprPrefixExpression_Syn_Declaration :: Bool, Syn_Declaration -> Doc
varPretty_Syn_Declaration :: Doc}
wrap_Declaration
:: T_Declaration
-> Inh_Declaration
-> Syn_Declaration
wrap_Declaration :: T_Declaration -> Inh_Declaration -> Syn_Declaration
wrap_Declaration T_Declaration
sem (Inh_Declaration [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf) =
( let
([MToken]
_lhsOcomments, (PrefixExp, Maybe MExpr)
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Doc
_lhsOexprPretty, Bool
_lhsOisDefined, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression, Doc
_lhsOvarPretty) = T_Declaration
sem [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf
in
([MToken]
-> (PrefixExp, Maybe MExpr)
-> Bool
-> Doc
-> Bool
-> Bool
-> Doc
-> Bool
-> Doc
-> Syn_Declaration
Syn_Declaration [MToken]
_lhsOcomments (PrefixExp, Maybe MExpr)
_lhsOcopy Bool
_lhsOendsWithPrefixExpression Doc
_lhsOexprPretty Bool
_lhsOisDefined Bool
_lhsOisMultiline Doc
_lhsOpretty Bool
_lhsOstartsWithExprPrefixExpression Doc
_lhsOvarPretty)
)
sem_Declaration_Tuple
:: T_PrefixExp
-> T_MaybeMExpr
-> T_Declaration
sem_Declaration_Tuple :: T_PrefixExp -> T_MaybeMExpr -> T_Declaration
sem_Declaration_Tuple T_PrefixExp
x1_ T_MaybeMExpr
x2_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOvarPretty :: Doc
_lhsOexprPretty :: Doc
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOendsWithPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_x1OparentOperatorPrecedence :: OperatorLevel
_x1OparentOperatorAssociative :: Bool
_lhsOisDefined :: Bool
_lhsOcopy :: Declaration
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_x1Ocomments :: ([MToken])
_x1OforceMultiline :: Bool
_x1Oindent :: Int
_x1Oppconf :: PrettyPrintConfig
_x2Ocomments :: ([MToken])
_x2OforceMultiline :: Bool
_x2Oindent :: Int
_x2Oppconf :: PrettyPrintConfig
_x1Icomments :: ([MToken])
_x1Icopy :: PrefixExp
_x1IisAssociative :: Bool
_x1IisLiteral :: Bool
_x1IisMultiline :: Bool
_x1Iprecedence :: OperatorLevel
_x1Ipretty :: Doc
_x1IstartsWithExprPrefixExpression :: Bool
_x2Icomments :: ([MToken])
_x2Icopy :: MaybeMExpr
_x2IendsWithPrefixExpression :: Bool
_x2IisAssociative :: Bool
_x2IisDefined :: Bool
_x2IisMultiline :: Bool
_x2Iprecedence :: OperatorLevel
_x2Ipretty :: Doc
_lhsOvarPretty :: Doc
_lhsOvarPretty =
( Doc
_x1Ipretty
)
_lhsOexprPretty :: Doc
_lhsOexprPretty =
( Doc
_x2Ipretty
)
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOstartsWithExprPrefixExpression =
( Bool
_x1IstartsWithExprPrefixExpression
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
_x2IendsWithPrefixExpression
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_x1IisMultiline Bool -> Bool -> Bool
|| Bool
_x2IisMultiline
)
_x1OparentOperatorPrecedence :: OperatorLevel
_x1OparentOperatorPrecedence =
( OperatorLevel
TopLevelExpression
)
_x1OparentOperatorAssociative :: Bool
_x1OparentOperatorAssociative =
( Bool
True
)
_lhsOisDefined :: Bool
_lhsOisDefined =
( Bool
_x2IisDefined
)
_copy :: (PrefixExp, Maybe MExpr)
_copy =
( (PrefixExp
_x1Icopy, Maybe MExpr
_x2Icopy)
)
_lhsOcopy :: (PrefixExp, Maybe MExpr)
_lhsOcopy =
( (PrefixExp, Maybe MExpr)
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_x2Icomments
)
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
_x2Ipretty
)
_x1Ocomments :: [MToken]
_x1Ocomments =
( [MToken]
_lhsIcomments
)
_x1OforceMultiline :: Bool
_x1OforceMultiline =
( Bool
_lhsIforceMultiline
)
_x1Oindent :: Int
_x1Oindent =
( Int
_lhsIindent
)
_x1Oppconf :: PrettyPrintConfig
_x1Oppconf =
( PrettyPrintConfig
_lhsIppconf
)
_x2Ocomments :: [MToken]
_x2Ocomments =
( [MToken]
_x1Icomments
)
_x2OforceMultiline :: Bool
_x2OforceMultiline =
( Bool
_lhsIforceMultiline
)
_x2Oindent :: Int
_x2Oindent =
( Int
_lhsIindent
)
_x2Oppconf :: PrettyPrintConfig
_x2Oppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_x1Icomments, PrefixExp
_x1Icopy, Bool
_x1IisAssociative, Bool
_x1IisLiteral, Bool
_x1IisMultiline, OperatorLevel
_x1Iprecedence, Doc
_x1Ipretty, Bool
_x1IstartsWithExprPrefixExpression) =
T_PrefixExp
x1_ [MToken]
_x1Ocomments Bool
_x1OforceMultiline Int
_x1Oindent Bool
_x1OparentOperatorAssociative OperatorLevel
_x1OparentOperatorPrecedence PrettyPrintConfig
_x1Oppconf
([MToken]
_x2Icomments, Maybe MExpr
_x2Icopy, Bool
_x2IendsWithPrefixExpression, Bool
_x2IisAssociative, Bool
_x2IisDefined, Bool
_x2IisMultiline, OperatorLevel
_x2Iprecedence, Doc
_x2Ipretty) =
T_MaybeMExpr
x2_ [MToken]
_x2Ocomments Bool
_x2OforceMultiline Int
_x2Oindent PrettyPrintConfig
_x2Oppconf
in
([MToken]
_lhsOcomments, (PrefixExp, Maybe MExpr)
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Doc
_lhsOexprPretty, Bool
_lhsOisDefined, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression, Doc
_lhsOvarPretty)
)
)
sem_Else
:: Else
-> T_Else
sem_Else :: Else -> T_Else
sem_Else (Prelude.Just MElse
x) =
(T_MElse -> T_Else
sem_Else_Just (MElse -> T_MElse
sem_MElse MElse
x))
sem_Else Else
Prelude.Nothing =
T_Else
sem_Else_Nothing
type T_Else =
([MToken])
-> Bool
-> Int
-> PrettyPrintConfig
-> Region
-> (([MToken]), Else, Bool, Bool, Region, Doc)
data Inh_Else = Inh_Else { :: ([MToken]), Inh_Else -> Bool
forceMultiline_Inh_Else :: Bool, Inh_Else -> Int
indent_Inh_Else :: Int, Inh_Else -> PrettyPrintConfig
ppconf_Inh_Else :: PrettyPrintConfig, Inh_Else -> Region
statRegion_Inh_Else :: Region}
data Syn_Else = Syn_Else { :: ([MToken]), Syn_Else -> Else
copy_Syn_Else :: Else, Syn_Else -> Bool
elsesExist_Syn_Else :: Bool, Syn_Else -> Bool
isMultiline_Syn_Else :: Bool, Syn_Else -> Region
pos_Syn_Else :: Region, Syn_Else -> Doc
pretty_Syn_Else :: Doc}
wrap_Else
:: T_Else
-> Inh_Else
-> Syn_Else
wrap_Else :: T_Else -> Inh_Else -> Syn_Else
wrap_Else T_Else
sem (Inh_Else [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf Region
_lhsIstatRegion) =
( let
([MToken]
_lhsOcomments, Else
_lhsOcopy, Bool
_lhsOelsesExist, Bool
_lhsOisMultiline, Region
_lhsOpos, Doc
_lhsOpretty) = T_Else
sem [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf Region
_lhsIstatRegion
in
([MToken] -> Else -> Bool -> Bool -> Region -> Doc -> Syn_Else
Syn_Else [MToken]
_lhsOcomments Else
_lhsOcopy Bool
_lhsOelsesExist Bool
_lhsOisMultiline Region
_lhsOpos Doc
_lhsOpretty)
)
sem_Else_Just
:: T_MElse
-> T_Else
sem_Else_Just :: T_MElse -> T_Else
sem_Else_Just T_MElse
just_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion ->
( let
_lhsOelsesExist :: Bool
_lhsOisMultiline :: Bool
_lhsOcopy :: Else
_lhsOcomments :: ([MToken])
_lhsOpos :: Region
_lhsOpretty :: Doc
_justOcomments :: ([MToken])
_justOforceMultiline :: Bool
_justOindent :: Int
_justOppconf :: PrettyPrintConfig
_justOstatRegion :: Region
_justIcomments :: ([MToken])
_justIcopy :: MElse
_justIelsesExist :: Bool
_justIisMultiline :: Bool
_justIpos :: Region
_justIpretty :: Doc
_lhsOelsesExist :: Bool
_lhsOelsesExist =
( Bool
True
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_justIisMultiline
)
_copy :: Else
_copy =
( forall a. a -> Maybe a
Just MElse
_justIcopy
)
_lhsOcopy :: Else
_lhsOcopy =
( Else
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_justIcomments
)
_lhsOpos :: Region
_lhsOpos =
( Region
_justIpos
)
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
_justIpretty
)
_justOcomments :: [MToken]
_justOcomments =
( [MToken]
_lhsIcomments
)
_justOforceMultiline :: Bool
_justOforceMultiline =
( Bool
_lhsIforceMultiline
)
_justOindent :: Int
_justOindent =
( Int
_lhsIindent
)
_justOppconf :: PrettyPrintConfig
_justOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_justOstatRegion :: Region
_justOstatRegion =
( Region
_lhsIstatRegion
)
([MToken]
_justIcomments, MElse
_justIcopy, Bool
_justIelsesExist, Bool
_justIisMultiline, Region
_justIpos, Doc
_justIpretty) =
T_MElse
just_ [MToken]
_justOcomments Bool
_justOforceMultiline Int
_justOindent PrettyPrintConfig
_justOppconf Region
_justOstatRegion
in
([MToken]
_lhsOcomments, Else
_lhsOcopy, Bool
_lhsOelsesExist, Bool
_lhsOisMultiline, Region
_lhsOpos, Doc
_lhsOpretty)
)
)
sem_Else_Nothing :: T_Else
sem_Else_Nothing :: T_Else
sem_Else_Nothing =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion ->
( let
_lhsOpretty :: Doc
_lhsOpos :: Region
_lhsOisMultiline :: Bool
_lhsOelsesExist :: Bool
_lhsOcopy :: Else
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
empty
)
_lhsOpos :: Region
_lhsOpos =
( Region
emptyRg
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOelsesExist :: Bool
_lhsOelsesExist =
( Bool
False
)
_copy :: Maybe a
_copy =
( forall a. Maybe a
Nothing
)
_lhsOcopy :: Else
_lhsOcopy =
( forall a. Maybe a
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, Else
_lhsOcopy, Bool
_lhsOelsesExist, Bool
_lhsOisMultiline, Region
_lhsOpos, Doc
_lhsOpretty)
)
)
sem_ElseIf
:: ElseIf
-> T_ElseIf
sem_ElseIf :: (MExpr, Block) -> T_ElseIf
sem_ElseIf (MExpr
x1, Block
x2) =
(T_MExpr -> T_Block -> T_ElseIf
sem_ElseIf_Tuple (MExpr -> T_MExpr
sem_MExpr MExpr
x1) (Block -> T_Block
sem_Block Block
x2))
type T_ElseIf =
([MToken])
-> Bool
-> Int
-> PrettyPrintConfig
-> (([MToken]), ElseIf, Bool, Doc)
data Inh_ElseIf = Inh_ElseIf { :: ([MToken]), Inh_ElseIf -> Bool
forceMultiline_Inh_ElseIf :: Bool, Inh_ElseIf -> Int
indent_Inh_ElseIf :: Int, Inh_ElseIf -> PrettyPrintConfig
ppconf_Inh_ElseIf :: PrettyPrintConfig}
data Syn_ElseIf = Syn_ElseIf { :: ([MToken]), Syn_ElseIf -> (MExpr, Block)
copy_Syn_ElseIf :: ElseIf, Syn_ElseIf -> Bool
isMultiline_Syn_ElseIf :: Bool, Syn_ElseIf -> Doc
pretty_Syn_ElseIf :: Doc}
wrap_ElseIf
:: T_ElseIf
-> Inh_ElseIf
-> Syn_ElseIf
wrap_ElseIf :: T_ElseIf -> Inh_ElseIf -> Syn_ElseIf
wrap_ElseIf T_ElseIf
sem (Inh_ElseIf [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf) =
( let
([MToken]
_lhsOcomments, (MExpr, Block)
_lhsOcopy, Bool
_lhsOisMultiline, Doc
_lhsOpretty) = T_ElseIf
sem [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf
in
([MToken] -> (MExpr, Block) -> Bool -> Doc -> Syn_ElseIf
Syn_ElseIf [MToken]
_lhsOcomments (MExpr, Block)
_lhsOcopy Bool
_lhsOisMultiline Doc
_lhsOpretty)
)
sem_ElseIf_Tuple
:: T_MExpr
-> T_Block
-> T_ElseIf
sem_ElseIf_Tuple :: T_MExpr -> T_Block -> T_ElseIf
sem_ElseIf_Tuple T_MExpr
x1_ T_Block
x2_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_x2Oindent :: Int
_x2OstatRegion :: Region
_x1OparentOperatorPrecedence :: OperatorLevel
_x1OparentOperatorAssociative :: Bool
_lhsOcopy :: ElseIf
_lhsOcomments :: ([MToken])
_x1Ocomments :: ([MToken])
_x1OforceMultiline :: Bool
_x1Oindent :: Int
_x1Oppconf :: PrettyPrintConfig
_x2Ocomments :: ([MToken])
_x2OforceMultiline :: Bool
_x2Oppconf :: PrettyPrintConfig
_x1Icomments :: ([MToken])
_x1Icopy :: MExpr
_x1IendsWithPrefixExpression :: Bool
_x1IisAssociative :: Bool
_x1IisLiteral :: Bool
_x1IisMultiline :: Bool
_x1Ipos :: Region
_x1Iprecedence :: OperatorLevel
_x1Ipretty :: Doc
_x2Icomments :: ([MToken])
_x2Icopy :: Block
_x2IisMultiline :: Bool
_x2Ipretty :: Doc
_x2IstatementCount :: Int
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"elseif" Doc -> Doc -> Doc
<-> Doc
_x1Ipretty Doc -> Doc -> Doc
<-> String -> Doc
zeroWidthText String
"then" Doc -> Doc -> Doc
$+$ Doc
_x2Ipretty
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_x1IisMultiline Bool -> Bool -> Bool
|| Bool
_x2IisMultiline
)
_x2Oindent :: Int
_x2Oindent =
( Int
_lhsIindent forall a. Num a => a -> a -> a
+ Int
1
)
_x2OstatRegion :: Region
_x2OstatRegion =
( Region
emptyRg
)
_x1OparentOperatorPrecedence :: OperatorLevel
_x1OparentOperatorPrecedence =
( OperatorLevel
TopLevelExpression
)
_x1OparentOperatorAssociative :: Bool
_x1OparentOperatorAssociative =
( Bool
True
)
_copy :: (MExpr, Block)
_copy =
( (MExpr
_x1Icopy, Block
_x2Icopy)
)
_lhsOcopy :: (MExpr, Block)
_lhsOcopy =
( (MExpr, Block)
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_x2Icomments
)
_x1Ocomments :: [MToken]
_x1Ocomments =
( [MToken]
_lhsIcomments
)
_x1OforceMultiline :: Bool
_x1OforceMultiline =
( Bool
_lhsIforceMultiline
)
_x1Oindent :: Int
_x1Oindent =
( Int
_lhsIindent
)
_x1Oppconf :: PrettyPrintConfig
_x1Oppconf =
( PrettyPrintConfig
_lhsIppconf
)
_x2Ocomments :: [MToken]
_x2Ocomments =
( [MToken]
_x1Icomments
)
_x2OforceMultiline :: Bool
_x2OforceMultiline =
( Bool
_lhsIforceMultiline
)
_x2Oppconf :: PrettyPrintConfig
_x2Oppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_x1Icomments, MExpr
_x1Icopy, Bool
_x1IendsWithPrefixExpression, Bool
_x1IisAssociative, Bool
_x1IisLiteral, Bool
_x1IisMultiline, Region
_x1Ipos, OperatorLevel
_x1Iprecedence, Doc
_x1Ipretty) =
T_MExpr
x1_ [MToken]
_x1Ocomments Bool
_x1OforceMultiline Int
_x1Oindent Bool
_x1OparentOperatorAssociative OperatorLevel
_x1OparentOperatorPrecedence PrettyPrintConfig
_x1Oppconf
([MToken]
_x2Icomments, Block
_x2Icopy, Bool
_x2IisMultiline, Doc
_x2Ipretty, Int
_x2IstatementCount) =
T_Block
x2_ [MToken]
_x2Ocomments Bool
_x2OforceMultiline Int
_x2Oindent PrettyPrintConfig
_x2Oppconf Region
_x2OstatRegion
in
([MToken]
_lhsOcomments, (MExpr, Block)
_lhsOcopy, Bool
_lhsOisMultiline, Doc
_lhsOpretty)
)
)
sem_ElseIfList
:: ElseIfList
-> T_ElseIfList
sem_ElseIfList :: ElseIfList -> T_ElseIfList
sem_ElseIfList ElseIfList
list =
(forall (t :: * -> *) a b.
Foldable t =>
(a -> b -> b) -> b -> t a -> b
Prelude.foldr T_MElseIf -> T_ElseIfList -> T_ElseIfList
sem_ElseIfList_Cons T_ElseIfList
sem_ElseIfList_Nil (forall a b. (a -> b) -> [a] -> [b]
Prelude.map MElseIf -> T_MElseIf
sem_MElseIf ElseIfList
list))
type T_ElseIfList =
([MToken])
-> Bool
-> Int
-> PrettyPrintConfig
-> (([MToken]), ElseIfList, Bool, Bool, Region, Doc)
data Inh_ElseIfList = Inh_ElseIfList { :: ([MToken]), Inh_ElseIfList -> Bool
forceMultiline_Inh_ElseIfList :: Bool, Inh_ElseIfList -> Int
indent_Inh_ElseIfList :: Int, Inh_ElseIfList -> PrettyPrintConfig
ppconf_Inh_ElseIfList :: PrettyPrintConfig}
data Syn_ElseIfList = Syn_ElseIfList { :: ([MToken]), Syn_ElseIfList -> ElseIfList
copy_Syn_ElseIfList :: ElseIfList, Syn_ElseIfList -> Bool
elsesExist_Syn_ElseIfList :: Bool, Syn_ElseIfList -> Bool
isMultiline_Syn_ElseIfList :: Bool, Syn_ElseIfList -> Region
pos_Syn_ElseIfList :: Region, Syn_ElseIfList -> Doc
pretty_Syn_ElseIfList :: Doc}
wrap_ElseIfList
:: T_ElseIfList
-> Inh_ElseIfList
-> Syn_ElseIfList
wrap_ElseIfList :: T_ElseIfList -> Inh_ElseIfList -> Syn_ElseIfList
wrap_ElseIfList T_ElseIfList
sem (Inh_ElseIfList [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf) =
( let
([MToken]
_lhsOcomments, ElseIfList
_lhsOcopy, Bool
_lhsOelsesExist, Bool
_lhsOisMultiline, Region
_lhsOpos, Doc
_lhsOpretty) = T_ElseIfList
sem [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf
in
([MToken]
-> ElseIfList -> Bool -> Bool -> Region -> Doc -> Syn_ElseIfList
Syn_ElseIfList [MToken]
_lhsOcomments ElseIfList
_lhsOcopy Bool
_lhsOelsesExist Bool
_lhsOisMultiline Region
_lhsOpos Doc
_lhsOpretty)
)
sem_ElseIfList_Cons
:: T_MElseIf
-> T_ElseIfList
-> T_ElseIfList
sem_ElseIfList_Cons :: T_MElseIf -> T_ElseIfList -> T_ElseIfList
sem_ElseIfList_Cons T_MElseIf
hd_ T_ElseIfList
tl_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOelsesExist :: Bool
_lhsOpos :: Region
_lhsOisMultiline :: Bool
_lhsOcopy :: ElseIfList
_lhsOcomments :: ([MToken])
_hdOcomments :: ([MToken])
_hdOforceMultiline :: Bool
_hdOindent :: Int
_hdOppconf :: PrettyPrintConfig
_tlOcomments :: ([MToken])
_tlOforceMultiline :: Bool
_tlOindent :: Int
_tlOppconf :: PrettyPrintConfig
_hdIcomments :: ([MToken])
_hdIcopy :: MElseIf
_hdIisMultiline :: Bool
_hdIpos :: Region
_hdIpretty :: Doc
_tlIcomments :: ([MToken])
_tlIcopy :: ElseIfList
_tlIelsesExist :: Bool
_tlIisMultiline :: Bool
_tlIpos :: Region
_tlIpretty :: Doc
_lhsOpretty :: Doc
_lhsOpretty =
( PrettyPrintConfig -> Int -> Doc -> Doc
indent PrettyPrintConfig
_lhsIppconf Int
_lhsIindent Doc
_hdIpretty Doc -> Doc -> Doc
$+$ Doc
_tlIpretty
)
_lhsOelsesExist :: Bool
_lhsOelsesExist =
( Bool
True
)
_lhsOpos :: Region
_lhsOpos =
( Region
_hdIpos
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_hdIisMultiline Bool -> Bool -> Bool
|| Bool
_tlIisMultiline
)
_copy :: ElseIfList
_copy =
( (:) MElseIf
_hdIcopy ElseIfList
_tlIcopy
)
_lhsOcopy :: ElseIfList
_lhsOcopy =
( ElseIfList
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_tlIcomments
)
_hdOcomments :: [MToken]
_hdOcomments =
( [MToken]
_lhsIcomments
)
_hdOforceMultiline :: Bool
_hdOforceMultiline =
( Bool
_lhsIforceMultiline
)
_hdOindent :: Int
_hdOindent =
( Int
_lhsIindent
)
_hdOppconf :: PrettyPrintConfig
_hdOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_tlOcomments :: [MToken]
_tlOcomments =
( [MToken]
_hdIcomments
)
_tlOforceMultiline :: Bool
_tlOforceMultiline =
( Bool
_lhsIforceMultiline
)
_tlOindent :: Int
_tlOindent =
( Int
_lhsIindent
)
_tlOppconf :: PrettyPrintConfig
_tlOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_hdIcomments, MElseIf
_hdIcopy, Bool
_hdIisMultiline, Region
_hdIpos, Doc
_hdIpretty) =
T_MElseIf
hd_ [MToken]
_hdOcomments Bool
_hdOforceMultiline Int
_hdOindent PrettyPrintConfig
_hdOppconf
([MToken]
_tlIcomments, ElseIfList
_tlIcopy, Bool
_tlIelsesExist, Bool
_tlIisMultiline, Region
_tlIpos, Doc
_tlIpretty) =
T_ElseIfList
tl_ [MToken]
_tlOcomments Bool
_tlOforceMultiline Int
_tlOindent PrettyPrintConfig
_tlOppconf
in
([MToken]
_lhsOcomments, ElseIfList
_lhsOcopy, Bool
_lhsOelsesExist, Bool
_lhsOisMultiline, Region
_lhsOpos, Doc
_lhsOpretty)
)
)
sem_ElseIfList_Nil :: T_ElseIfList
sem_ElseIfList_Nil :: T_ElseIfList
sem_ElseIfList_Nil =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOpos :: Region
_lhsOisMultiline :: Bool
_lhsOelsesExist :: Bool
_lhsOcopy :: ElseIfList
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
empty
)
_lhsOpos :: Region
_lhsOpos =
( Region
emptyRg
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOelsesExist :: Bool
_lhsOelsesExist =
( Bool
False
)
_copy :: [a]
_copy =
( []
)
_lhsOcopy :: ElseIfList
_lhsOcopy =
( forall a. [a]
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, ElseIfList
_lhsOcopy, Bool
_lhsOelsesExist, Bool
_lhsOisMultiline, Region
_lhsOpos, Doc
_lhsOpretty)
)
)
sem_Expr
:: Expr
-> T_Expr
sem_Expr :: Expr -> T_Expr
sem_Expr (Expr
ANil) =
(T_Expr
sem_Expr_ANil)
sem_Expr (Expr
AFalse) =
(T_Expr
sem_Expr_AFalse)
sem_Expr (Expr
ATrue) =
(T_Expr
sem_Expr_ATrue)
sem_Expr (ANumber String
_num) =
(String -> T_Expr
sem_Expr_ANumber String
_num)
sem_Expr (AString MToken
_str) =
(MToken -> T_Expr
sem_Expr_AString MToken
_str)
sem_Expr (Expr
AVarArg) =
(T_Expr
sem_Expr_AVarArg)
sem_Expr (AnonymousFunc [MToken]
_pars Block
_body) =
([MToken] -> T_Block -> T_Expr
sem_Expr_AnonymousFunc [MToken]
_pars (Block -> T_Block
sem_Block Block
_body))
sem_Expr (APrefixExpr PrefixExp
_pexpr) =
(T_PrefixExp -> T_Expr
sem_Expr_APrefixExpr (PrefixExp -> T_PrefixExp
sem_PrefixExp PrefixExp
_pexpr))
sem_Expr (ATableConstructor FieldList
_fields) =
(T_FieldList -> T_Expr
sem_Expr_ATableConstructor (FieldList -> T_FieldList
sem_FieldList FieldList
_fields))
sem_Expr (BinOpExpr BinOp
_op MExpr
_left MExpr
_right) =
(T_BinOp -> T_MExpr -> T_MExpr -> T_Expr
sem_Expr_BinOpExpr (BinOp -> T_BinOp
sem_BinOp BinOp
_op) (MExpr -> T_MExpr
sem_MExpr MExpr
_left) (MExpr -> T_MExpr
sem_MExpr MExpr
_right))
sem_Expr (UnOpExpr UnOp
_op MExpr
_right) =
(T_UnOp -> T_MExpr -> T_Expr
sem_Expr_UnOpExpr (UnOp -> T_UnOp
sem_UnOp UnOp
_op) (MExpr -> T_MExpr
sem_MExpr MExpr
_right))
type T_Expr =
([MToken])
-> Bool
-> Int
-> Bool
-> OperatorLevel
-> PrettyPrintConfig
-> Region
-> (([MToken]), Expr, Bool, Bool, Bool, Bool, OperatorLevel, Doc)
data Inh_Expr = Inh_Expr { :: ([MToken]), Inh_Expr -> Bool
forceMultiline_Inh_Expr :: Bool, Inh_Expr -> Int
indent_Inh_Expr :: Int, Inh_Expr -> Bool
parentOperatorAssociative_Inh_Expr :: Bool, Inh_Expr -> OperatorLevel
parentOperatorPrecedence_Inh_Expr :: OperatorLevel, Inh_Expr -> PrettyPrintConfig
ppconf_Inh_Expr :: PrettyPrintConfig, Inh_Expr -> Region
statRegion_Inh_Expr :: Region}
data Syn_Expr = Syn_Expr { :: ([MToken]), Syn_Expr -> Expr
copy_Syn_Expr :: Expr, Syn_Expr -> Bool
endsWithPrefixExpression_Syn_Expr :: Bool, Syn_Expr -> Bool
isAssociative_Syn_Expr :: Bool, Syn_Expr -> Bool
isLiteral_Syn_Expr :: Bool, Syn_Expr -> Bool
isMultiline_Syn_Expr :: Bool, Syn_Expr -> OperatorLevel
precedence_Syn_Expr :: OperatorLevel, Syn_Expr -> Doc
pretty_Syn_Expr :: Doc}
wrap_Expr
:: T_Expr
-> Inh_Expr
-> Syn_Expr
wrap_Expr :: T_Expr -> Inh_Expr -> Syn_Expr
wrap_Expr T_Expr
sem (Inh_Expr [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent Bool
_lhsIparentOperatorAssociative OperatorLevel
_lhsIparentOperatorPrecedence PrettyPrintConfig
_lhsIppconf Region
_lhsIstatRegion) =
( let
([MToken]
_lhsOcomments, Expr
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisAssociative, Bool
_lhsOisLiteral, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty) = T_Expr
sem [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent Bool
_lhsIparentOperatorAssociative OperatorLevel
_lhsIparentOperatorPrecedence PrettyPrintConfig
_lhsIppconf Region
_lhsIstatRegion
in
([MToken]
-> Expr
-> Bool
-> Bool
-> Bool
-> Bool
-> OperatorLevel
-> Doc
-> Syn_Expr
Syn_Expr [MToken]
_lhsOcomments Expr
_lhsOcopy Bool
_lhsOendsWithPrefixExpression Bool
_lhsOisAssociative Bool
_lhsOisLiteral Bool
_lhsOisMultiline OperatorLevel
_lhsOprecedence Doc
_lhsOpretty)
)
sem_Expr_ANil :: T_Expr
sem_Expr_ANil :: T_Expr
sem_Expr_ANil =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIparentOperatorAssociative
OperatorLevel
_lhsIparentOperatorPrecedence
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion ->
( let
_lhsOpretty :: Doc
_lhsOisLiteral :: Bool
_lhsOendsWithPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_lhsOisAssociative :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOcopy :: Expr
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"nil"
)
_lhsOisLiteral :: Bool
_lhsOisLiteral =
( Bool
True
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
False
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel8
)
_copy :: Expr
_copy =
( Expr
ANil
)
_lhsOcopy :: Expr
_lhsOcopy =
( Expr
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, Expr
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisAssociative, Bool
_lhsOisLiteral, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_Expr_AFalse :: T_Expr
sem_Expr_AFalse :: T_Expr
sem_Expr_AFalse =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIparentOperatorAssociative
OperatorLevel
_lhsIparentOperatorPrecedence
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion ->
( let
_lhsOpretty :: Doc
_lhsOisLiteral :: Bool
_lhsOendsWithPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_lhsOisAssociative :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOcopy :: Expr
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"false"
)
_lhsOisLiteral :: Bool
_lhsOisLiteral =
( Bool
True
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
False
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel8
)
_copy :: Expr
_copy =
( Expr
AFalse
)
_lhsOcopy :: Expr
_lhsOcopy =
( Expr
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, Expr
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisAssociative, Bool
_lhsOisLiteral, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_Expr_ATrue :: T_Expr
sem_Expr_ATrue :: T_Expr
sem_Expr_ATrue =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIparentOperatorAssociative
OperatorLevel
_lhsIparentOperatorPrecedence
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion ->
( let
_lhsOpretty :: Doc
_lhsOisLiteral :: Bool
_lhsOendsWithPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_lhsOisAssociative :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOcopy :: Expr
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"true"
)
_lhsOisLiteral :: Bool
_lhsOisLiteral =
( Bool
True
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
False
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel8
)
_copy :: Expr
_copy =
( Expr
ATrue
)
_lhsOcopy :: Expr
_lhsOcopy =
( Expr
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, Expr
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisAssociative, Bool
_lhsOisLiteral, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_Expr_ANumber
:: String
-> T_Expr
sem_Expr_ANumber :: String -> T_Expr
sem_Expr_ANumber String
num_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIparentOperatorAssociative
OperatorLevel
_lhsIparentOperatorPrecedence
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion ->
( let
_lhsOpretty :: Doc
_lhsOisLiteral :: Bool
_lhsOendsWithPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_lhsOisAssociative :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOcopy :: Expr
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
num_
)
_lhsOisLiteral :: Bool
_lhsOisLiteral =
( Bool
True
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
False
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel8
)
_copy :: Expr
_copy =
( String -> Expr
ANumber String
num_
)
_lhsOcopy :: Expr
_lhsOcopy =
( Expr
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, Expr
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisAssociative, Bool
_lhsOisLiteral, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_Expr_AString
:: MToken
-> T_Expr
sem_Expr_AString :: MToken -> T_Expr
sem_Expr_AString MToken
str_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIparentOperatorAssociative
OperatorLevel
_lhsIparentOperatorPrecedence
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion ->
( let
_lhsOpretty :: Doc
_lhsOisLiteral :: Bool
_lhsOendsWithPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_lhsOisAssociative :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOcopy :: Expr
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( MToken -> Doc
tok MToken
str_
)
_lhsOisLiteral :: Bool
_lhsOisLiteral =
( Bool
True
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
False
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel8
)
_copy :: Expr
_copy =
( MToken -> Expr
AString MToken
str_
)
_lhsOcopy :: Expr
_lhsOcopy =
( Expr
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, Expr
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisAssociative, Bool
_lhsOisLiteral, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_Expr_AVarArg :: T_Expr
sem_Expr_AVarArg :: T_Expr
sem_Expr_AVarArg =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIparentOperatorAssociative
OperatorLevel
_lhsIparentOperatorPrecedence
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion ->
( let
_lhsOpretty :: Doc
_lhsOisLiteral :: Bool
_lhsOendsWithPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_lhsOisAssociative :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOcopy :: Expr
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"..."
)
_lhsOisLiteral :: Bool
_lhsOisLiteral =
( Bool
True
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
False
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel8
)
_copy :: Expr
_copy =
( Expr
AVarArg
)
_lhsOcopy :: Expr
_lhsOcopy =
( Expr
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, Expr
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisAssociative, Bool
_lhsOisLiteral, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_Expr_AnonymousFunc
:: ([MToken])
-> T_Block
-> T_Expr
sem_Expr_AnonymousFunc :: [MToken] -> T_Block -> T_Expr
sem_Expr_AnonymousFunc [MToken]
pars_ T_Block
body_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIparentOperatorAssociative
OperatorLevel
_lhsIparentOperatorPrecedence
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion ->
( let
_lhsOendsWithPrefixExpression :: Bool
_bodyOindent :: Int
_lhsOpretty :: Doc
_lhsOisAssociative :: Bool
_lhsOisLiteral :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOcopy :: Expr
_lhsOcomments :: ([MToken])
_lhsOisMultiline :: Bool
_bodyOcomments :: ([MToken])
_bodyOforceMultiline :: Bool
_bodyOppconf :: PrettyPrintConfig
_bodyOstatRegion :: Region
_bodyIcomments :: ([MToken])
_bodyIcopy :: Block
_bodyIisMultiline :: Bool
_bodyIpretty :: Doc
_bodyIstatementCount :: Int
_isMultiline :: Bool
_isMultiline =
( Bool
_lhsIforceMultiline Bool -> Bool -> Bool
|| Bool
_bodyIisMultiline
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
False
)
_singleLinePretty :: Doc
_singleLinePretty =
( String -> Doc
zeroWidthText String
"function"
Doc -> Doc -> Doc
<> PrettyPrintConfig -> IsEmpty -> Doc -> Doc
parens PrettyPrintConfig
_lhsIppconf IsEmpty
_emptyParams (forall a. (a -> Doc) -> String -> [a] -> Doc
printList MToken -> Doc
tok (Doc -> String
render Doc
_comma) [MToken]
pars_)
Doc -> Doc -> Doc
<-> Doc
_bodyIpretty
Doc -> Doc -> Doc
<-> String -> Doc
zeroWidthText String
"end"
)
_multilinePretty :: Doc
_multilinePretty =
( String -> Doc
zeroWidthText String
"function"
Doc -> Doc -> Doc
<> PrettyPrintConfig -> IsEmpty -> Doc -> Doc
parens PrettyPrintConfig
_lhsIppconf IsEmpty
_emptyParams (forall a. (a -> Doc) -> String -> [a] -> Doc
printList MToken -> Doc
tok (Doc -> String
render Doc
_comma) [MToken]
pars_)
Doc -> Doc -> Doc
$+$ Doc
_bodyIpretty
Doc -> Doc -> Doc
$+$ PrettyPrintConfig -> Int -> Doc -> Doc
indent PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (String -> Doc
zeroWidthText String
"end")
)
_comma :: Doc
_comma =
( (if PrettyPrintConfig -> Bool
spaceBeforeComma PrettyPrintConfig
_lhsIppconf then Char -> Doc
zchr Char
' ' else Doc
empty)
Doc -> Doc -> Doc
<> Char -> Doc
zchr Char
','
Doc -> Doc -> Doc
<> (if PrettyPrintConfig -> Bool
spaceAfterComma PrettyPrintConfig
_lhsIppconf then Char -> Doc
zchr Char
' ' else Doc
empty)
)
_emptyParams :: IsEmpty
_emptyParams =
( Bool -> IsEmpty
toEmpty forall a b. (a -> b) -> a -> b
$ forall (t :: * -> *) a. Foldable t => t a -> Bool
null [MToken]
pars_
)
_bodyOindent :: Int
_bodyOindent =
( if Bool
_isMultiline then Int
_lhsIindent forall a. Num a => a -> a -> a
+ Int
1 else Int
0
)
_lhsOpretty :: Doc
_lhsOpretty =
( if Bool
_isMultiline then Doc
_multilinePretty else Doc
_singleLinePretty
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
False
)
_lhsOisLiteral :: Bool
_lhsOisLiteral =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel8
)
_copy :: Expr
_copy =
( [MToken] -> Block -> Expr
AnonymousFunc [MToken]
pars_ Block
_bodyIcopy
)
_lhsOcopy :: Expr
_lhsOcopy =
( Expr
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_bodyIcomments
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_isMultiline
)
_bodyOcomments :: [MToken]
_bodyOcomments =
( [MToken]
_lhsIcomments
)
_bodyOforceMultiline :: Bool
_bodyOforceMultiline =
( Bool
_lhsIforceMultiline
)
_bodyOppconf :: PrettyPrintConfig
_bodyOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_bodyOstatRegion :: Region
_bodyOstatRegion =
( Region
_lhsIstatRegion
)
([MToken]
_bodyIcomments, Block
_bodyIcopy, Bool
_bodyIisMultiline, Doc
_bodyIpretty, Int
_bodyIstatementCount) =
T_Block
body_ [MToken]
_bodyOcomments Bool
_bodyOforceMultiline Int
_bodyOindent PrettyPrintConfig
_bodyOppconf Region
_bodyOstatRegion
in
([MToken]
_lhsOcomments, Expr
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisAssociative, Bool
_lhsOisLiteral, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_Expr_APrefixExpr
:: T_PrefixExp
-> T_Expr
sem_Expr_APrefixExpr :: T_PrefixExp -> T_Expr
sem_Expr_APrefixExpr T_PrefixExp
pexpr_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIparentOperatorAssociative
OperatorLevel
_lhsIparentOperatorPrecedence
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion ->
( let
_lhsOpretty :: Doc
_lhsOendsWithPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_lhsOisAssociative :: Bool
_lhsOisLiteral :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOcopy :: Expr
_lhsOcomments :: ([MToken])
_pexprOcomments :: ([MToken])
_pexprOforceMultiline :: Bool
_pexprOindent :: Int
_pexprOparentOperatorAssociative :: Bool
_pexprOparentOperatorPrecedence :: OperatorLevel
_pexprOppconf :: PrettyPrintConfig
_pexprIcomments :: ([MToken])
_pexprIcopy :: PrefixExp
_pexprIisAssociative :: Bool
_pexprIisLiteral :: Bool
_pexprIisMultiline :: Bool
_pexprIprecedence :: OperatorLevel
_pexprIpretty :: Doc
_pexprIstartsWithExprPrefixExpression :: Bool
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
_pexprIpretty
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
True
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_pexprIisMultiline
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
_pexprIisAssociative
)
_lhsOisLiteral :: Bool
_lhsOisLiteral =
( Bool
_pexprIisLiteral
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
_pexprIprecedence
)
_copy :: Expr
_copy =
( PrefixExp -> Expr
APrefixExpr PrefixExp
_pexprIcopy
)
_lhsOcopy :: Expr
_lhsOcopy =
( Expr
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_pexprIcomments
)
_pexprOcomments :: [MToken]
_pexprOcomments =
( [MToken]
_lhsIcomments
)
_pexprOforceMultiline :: Bool
_pexprOforceMultiline =
( Bool
_lhsIforceMultiline
)
_pexprOindent :: Int
_pexprOindent =
( Int
_lhsIindent
)
_pexprOparentOperatorAssociative :: Bool
_pexprOparentOperatorAssociative =
( Bool
_lhsIparentOperatorAssociative
)
_pexprOparentOperatorPrecedence :: OperatorLevel
_pexprOparentOperatorPrecedence =
( OperatorLevel
_lhsIparentOperatorPrecedence
)
_pexprOppconf :: PrettyPrintConfig
_pexprOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_pexprIcomments, PrefixExp
_pexprIcopy, Bool
_pexprIisAssociative, Bool
_pexprIisLiteral, Bool
_pexprIisMultiline, OperatorLevel
_pexprIprecedence, Doc
_pexprIpretty, Bool
_pexprIstartsWithExprPrefixExpression) =
T_PrefixExp
pexpr_ [MToken]
_pexprOcomments Bool
_pexprOforceMultiline Int
_pexprOindent Bool
_pexprOparentOperatorAssociative OperatorLevel
_pexprOparentOperatorPrecedence PrettyPrintConfig
_pexprOppconf
in
([MToken]
_lhsOcomments, Expr
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisAssociative, Bool
_lhsOisLiteral, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_Expr_ATableConstructor
:: T_FieldList
-> T_Expr
sem_Expr_ATableConstructor :: T_FieldList -> T_Expr
sem_Expr_ATableConstructor T_FieldList
fields_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIparentOperatorAssociative
OperatorLevel
_lhsIparentOperatorPrecedence
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion ->
( let
_lhsOpretty :: Doc
_lhsOisLiteral :: Bool
_lhsOendsWithPrefixExpression :: Bool
_fieldsOindent :: Int
_fieldsOsomeElementsInListAreMultiline :: Bool
_lhsOisAssociative :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOcopy :: Expr
_lhsOcomments :: ([MToken])
_lhsOisMultiline :: Bool
_fieldsOcomments :: ([MToken])
_fieldsOforceMultiline :: Bool
_fieldsOppconf :: PrettyPrintConfig
_fieldsIcomments :: ([MToken])
_fieldsIcopy :: FieldList
_fieldsIisMultiline :: Bool
_fieldsIisNil :: Bool
_fieldsIpretty :: Doc
_lhsOpretty :: Doc
_lhsOpretty =
( if Bool
_isMultiline then Doc
_prettyMulti else Doc
_prettySingle
)
_isMultiline :: Bool
_isMultiline =
( Bool
_lhsIforceMultiline Bool -> Bool -> Bool
|| Bool
_fieldsIisMultiline
)
_lhsOisLiteral :: Bool
_lhsOisLiteral =
( Bool
True
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
False
)
_prettyMulti :: Doc
_prettyMulti =
( Char -> Doc
zchr Char
'{' Doc -> Doc -> Doc
$+$ Doc
_fieldsIpretty Doc -> Doc -> Doc
$+$ PrettyPrintConfig -> Int -> Doc -> Doc
indent PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (Char -> Doc
zchr Char
'}')
)
_prettySingle :: Doc
_prettySingle =
( PrettyPrintConfig -> IsEmpty -> Doc -> Doc
braces PrettyPrintConfig
_lhsIppconf IsEmpty
_emptyContents Doc
_fieldsIpretty
)
_emptyContents :: IsEmpty
_emptyContents =
( Bool -> IsEmpty
toEmpty forall a b. (a -> b) -> a -> b
$ forall (t :: * -> *) a. Foldable t => t a -> Bool
null FieldList
_fieldsIcopy
)
_fieldsOindent :: Int
_fieldsOindent =
( Int
_lhsIindent forall a. Num a => a -> a -> a
+ (if Bool
_fieldsIisMultiline then Int
1 else Int
0)
)
_fieldsOsomeElementsInListAreMultiline :: Bool
_fieldsOsomeElementsInListAreMultiline =
( Bool
False
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel8
)
_copy :: Expr
_copy =
( FieldList -> Expr
ATableConstructor FieldList
_fieldsIcopy
)
_lhsOcopy :: Expr
_lhsOcopy =
( Expr
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_fieldsIcomments
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_isMultiline
)
_fieldsOcomments :: [MToken]
_fieldsOcomments =
( [MToken]
_lhsIcomments
)
_fieldsOforceMultiline :: Bool
_fieldsOforceMultiline =
( Bool
_lhsIforceMultiline
)
_fieldsOppconf :: PrettyPrintConfig
_fieldsOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_fieldsIcomments, FieldList
_fieldsIcopy, Bool
_fieldsIisMultiline, Bool
_fieldsIisNil, Doc
_fieldsIpretty) =
T_FieldList
fields_ [MToken]
_fieldsOcomments Bool
_fieldsOforceMultiline Int
_fieldsOindent PrettyPrintConfig
_fieldsOppconf Bool
_fieldsOsomeElementsInListAreMultiline
in
([MToken]
_lhsOcomments, Expr
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisAssociative, Bool
_lhsOisLiteral, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_Expr_BinOpExpr
:: T_BinOp
-> T_MExpr
-> T_MExpr
-> T_Expr
sem_Expr_BinOpExpr :: T_BinOp -> T_MExpr -> T_MExpr -> T_Expr
sem_Expr_BinOpExpr T_BinOp
op_ T_MExpr
left_ T_MExpr
right_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIparentOperatorAssociative
OperatorLevel
_lhsIparentOperatorPrecedence
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion ->
( let
_lhsOpretty :: Doc
_lhsOendsWithPrefixExpression :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOisMultiline :: Bool
_leftOparentOperatorPrecedence :: OperatorLevel
_rightOparentOperatorPrecedence :: OperatorLevel
_leftOparentOperatorAssociative :: Bool
_rightOparentOperatorAssociative :: Bool
_lhsOisAssociative :: Bool
_lhsOisLiteral :: Bool
_lhsOcopy :: Expr
_lhsOcomments :: ([MToken])
_opOcomments :: ([MToken])
_opOindent :: Int
_opOppconf :: PrettyPrintConfig
_leftOcomments :: ([MToken])
_leftOforceMultiline :: Bool
_leftOindent :: Int
_leftOppconf :: PrettyPrintConfig
_rightOcomments :: ([MToken])
_rightOforceMultiline :: Bool
_rightOindent :: Int
_rightOppconf :: PrettyPrintConfig
_opIcomments :: ([MToken])
_opIcopy :: BinOp
_opIisAssociative :: Bool
_opIisMultiline :: Bool
_opIprecedence :: OperatorLevel
_opIpretty :: Doc
_leftIcomments :: ([MToken])
_leftIcopy :: MExpr
_leftIendsWithPrefixExpression :: Bool
_leftIisAssociative :: Bool
_leftIisLiteral :: Bool
_leftIisMultiline :: Bool
_leftIpos :: Region
_leftIprecedence :: OperatorLevel
_leftIpretty :: Doc
_rightIcomments :: ([MToken])
_rightIcopy :: MExpr
_rightIendsWithPrefixExpression :: Bool
_rightIisAssociative :: Bool
_rightIisLiteral :: Bool
_rightIisMultiline :: Bool
_rightIpos :: Region
_rightIprecedence :: OperatorLevel
_rightIpretty :: Doc
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
_leftIpretty Doc -> Doc -> Doc
<-> Doc
_opIpretty Doc -> Doc -> Doc
<-> Doc
_rightIpretty
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
_rightIendsWithPrefixExpression
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( forall a. Ord a => a -> a -> a
min OperatorLevel
_opIprecedence forall a b. (a -> b) -> a -> b
$ forall a. Ord a => a -> a -> a
min OperatorLevel
_leftIprecedence OperatorLevel
_rightIprecedence
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_leftIisMultiline Bool -> Bool -> Bool
|| Bool
_rightIisMultiline
)
_leftOparentOperatorPrecedence :: OperatorLevel
_leftOparentOperatorPrecedence =
( OperatorLevel
_opIprecedence
)
_rightOparentOperatorPrecedence :: OperatorLevel
_rightOparentOperatorPrecedence =
( OperatorLevel
_opIprecedence
)
_leftOparentOperatorAssociative :: Bool
_leftOparentOperatorAssociative =
( Bool
_opIisAssociative
)
_rightOparentOperatorAssociative :: Bool
_rightOparentOperatorAssociative =
( Bool
_opIisAssociative
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
_opIisAssociative Bool -> Bool -> Bool
&& Bool
_leftIisAssociative Bool -> Bool -> Bool
&& Bool
_rightIisAssociative
)
_lhsOisLiteral :: Bool
_lhsOisLiteral =
( ((\Bool
_ Bool
_ -> Bool
False) Bool
_leftIisLiteral Bool
_rightIisLiteral)
)
_copy :: Expr
_copy =
( BinOp -> MExpr -> MExpr -> Expr
BinOpExpr BinOp
_opIcopy MExpr
_leftIcopy MExpr
_rightIcopy
)
_lhsOcopy :: Expr
_lhsOcopy =
( Expr
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_rightIcomments
)
_opOcomments :: [MToken]
_opOcomments =
( [MToken]
_lhsIcomments
)
_opOindent :: Int
_opOindent =
( Int
_lhsIindent
)
_opOppconf :: PrettyPrintConfig
_opOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_leftOcomments :: [MToken]
_leftOcomments =
( [MToken]
_opIcomments
)
_leftOforceMultiline :: Bool
_leftOforceMultiline =
( Bool
_lhsIforceMultiline
)
_leftOindent :: Int
_leftOindent =
( Int
_lhsIindent
)
_leftOppconf :: PrettyPrintConfig
_leftOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_rightOcomments :: [MToken]
_rightOcomments =
( [MToken]
_leftIcomments
)
_rightOforceMultiline :: Bool
_rightOforceMultiline =
( Bool
_lhsIforceMultiline
)
_rightOindent :: Int
_rightOindent =
( Int
_lhsIindent
)
_rightOppconf :: PrettyPrintConfig
_rightOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_opIcomments, BinOp
_opIcopy, Bool
_opIisAssociative, Bool
_opIisMultiline, OperatorLevel
_opIprecedence, Doc
_opIpretty) =
T_BinOp
op_ [MToken]
_opOcomments Int
_opOindent PrettyPrintConfig
_opOppconf
([MToken]
_leftIcomments, MExpr
_leftIcopy, Bool
_leftIendsWithPrefixExpression, Bool
_leftIisAssociative, Bool
_leftIisLiteral, Bool
_leftIisMultiline, Region
_leftIpos, OperatorLevel
_leftIprecedence, Doc
_leftIpretty) =
T_MExpr
left_ [MToken]
_leftOcomments Bool
_leftOforceMultiline Int
_leftOindent Bool
_leftOparentOperatorAssociative OperatorLevel
_leftOparentOperatorPrecedence PrettyPrintConfig
_leftOppconf
([MToken]
_rightIcomments, MExpr
_rightIcopy, Bool
_rightIendsWithPrefixExpression, Bool
_rightIisAssociative, Bool
_rightIisLiteral, Bool
_rightIisMultiline, Region
_rightIpos, OperatorLevel
_rightIprecedence, Doc
_rightIpretty) =
T_MExpr
right_ [MToken]
_rightOcomments Bool
_rightOforceMultiline Int
_rightOindent Bool
_rightOparentOperatorAssociative OperatorLevel
_rightOparentOperatorPrecedence PrettyPrintConfig
_rightOppconf
in
([MToken]
_lhsOcomments, Expr
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisAssociative, Bool
_lhsOisLiteral, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_Expr_UnOpExpr
:: T_UnOp
-> T_MExpr
-> T_Expr
sem_Expr_UnOpExpr :: T_UnOp -> T_MExpr -> T_Expr
sem_Expr_UnOpExpr T_UnOp
op_ T_MExpr
right_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIparentOperatorAssociative
OperatorLevel
_lhsIparentOperatorPrecedence
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion ->
( let
_lhsOpretty :: Doc
_lhsOprecedence :: OperatorLevel
_lhsOendsWithPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_rightOparentOperatorPrecedence :: OperatorLevel
_lhsOisAssociative :: Bool
_lhsOisLiteral :: Bool
_lhsOcopy :: Expr
_lhsOcomments :: ([MToken])
_opOcomments :: ([MToken])
_opOindent :: Int
_opOppconf :: PrettyPrintConfig
_rightOcomments :: ([MToken])
_rightOforceMultiline :: Bool
_rightOindent :: Int
_rightOparentOperatorAssociative :: Bool
_rightOppconf :: PrettyPrintConfig
_opIcomments :: ([MToken])
_opIcopy :: UnOp
_opIisMultiline :: Bool
_opIpretty :: Doc
_rightIcomments :: ([MToken])
_rightIcopy :: MExpr
_rightIendsWithPrefixExpression :: Bool
_rightIisAssociative :: Bool
_rightIisLiteral :: Bool
_rightIisMultiline :: Bool
_rightIpos :: Region
_rightIprecedence :: OperatorLevel
_rightIpretty :: Doc
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
_opIpretty Doc -> Doc -> Doc
<> Doc
_rightIpretty
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( forall a. Ord a => a -> a -> a
min OperatorLevel
_rightIprecedence OperatorLevel
OperatorLevel7
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
_rightIendsWithPrefixExpression
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_opIisMultiline Bool -> Bool -> Bool
|| Bool
_rightIisMultiline
)
_rightOparentOperatorPrecedence :: OperatorLevel
_rightOparentOperatorPrecedence =
( OperatorLevel
OperatorLevel7
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
_rightIisAssociative
)
_lhsOisLiteral :: Bool
_lhsOisLiteral =
( Bool
_rightIisLiteral
)
_copy :: Expr
_copy =
( UnOp -> MExpr -> Expr
UnOpExpr UnOp
_opIcopy MExpr
_rightIcopy
)
_lhsOcopy :: Expr
_lhsOcopy =
( Expr
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_rightIcomments
)
_opOcomments :: [MToken]
_opOcomments =
( [MToken]
_lhsIcomments
)
_opOindent :: Int
_opOindent =
( Int
_lhsIindent
)
_opOppconf :: PrettyPrintConfig
_opOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_rightOcomments :: [MToken]
_rightOcomments =
( [MToken]
_opIcomments
)
_rightOforceMultiline :: Bool
_rightOforceMultiline =
( Bool
_lhsIforceMultiline
)
_rightOindent :: Int
_rightOindent =
( Int
_lhsIindent
)
_rightOparentOperatorAssociative :: Bool
_rightOparentOperatorAssociative =
( Bool
_lhsIparentOperatorAssociative
)
_rightOppconf :: PrettyPrintConfig
_rightOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_opIcomments, UnOp
_opIcopy, Bool
_opIisMultiline, Doc
_opIpretty) =
T_UnOp
op_ [MToken]
_opOcomments Int
_opOindent PrettyPrintConfig
_opOppconf
([MToken]
_rightIcomments, MExpr
_rightIcopy, Bool
_rightIendsWithPrefixExpression, Bool
_rightIisAssociative, Bool
_rightIisLiteral, Bool
_rightIisMultiline, Region
_rightIpos, OperatorLevel
_rightIprecedence, Doc
_rightIpretty) =
T_MExpr
right_ [MToken]
_rightOcomments Bool
_rightOforceMultiline Int
_rightOindent Bool
_rightOparentOperatorAssociative OperatorLevel
_rightOparentOperatorPrecedence PrettyPrintConfig
_rightOppconf
in
([MToken]
_lhsOcomments, Expr
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisAssociative, Bool
_lhsOisLiteral, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_ExprSuffixList
:: ExprSuffixList
-> T_ExprSuffixList
sem_ExprSuffixList :: ExprSuffixList -> T_ExprSuffixList
sem_ExprSuffixList ExprSuffixList
list =
(forall (t :: * -> *) a b.
Foldable t =>
(a -> b -> b) -> b -> t a -> b
Prelude.foldr T_PFExprSuffix -> T_ExprSuffixList -> T_ExprSuffixList
sem_ExprSuffixList_Cons T_ExprSuffixList
sem_ExprSuffixList_Nil (forall a b. (a -> b) -> [a] -> [b]
Prelude.map PFExprSuffix -> T_PFExprSuffix
sem_PFExprSuffix ExprSuffixList
list))
type T_ExprSuffixList =
([MToken])
-> Bool
-> Int
-> PrettyPrintConfig
-> (([MToken]), ExprSuffixList, Bool, Bool, OperatorLevel, Doc)
data Inh_ExprSuffixList = Inh_ExprSuffixList { :: ([MToken]), Inh_ExprSuffixList -> Bool
forceMultiline_Inh_ExprSuffixList :: Bool, Inh_ExprSuffixList -> Int
indent_Inh_ExprSuffixList :: Int, Inh_ExprSuffixList -> PrettyPrintConfig
ppconf_Inh_ExprSuffixList :: PrettyPrintConfig}
data Syn_ExprSuffixList = Syn_ExprSuffixList { :: ([MToken]), Syn_ExprSuffixList -> ExprSuffixList
copy_Syn_ExprSuffixList :: ExprSuffixList, Syn_ExprSuffixList -> Bool
isAssociative_Syn_ExprSuffixList :: Bool, Syn_ExprSuffixList -> Bool
isMultiline_Syn_ExprSuffixList :: Bool, Syn_ExprSuffixList -> OperatorLevel
precedence_Syn_ExprSuffixList :: OperatorLevel, Syn_ExprSuffixList -> Doc
pretty_Syn_ExprSuffixList :: Doc}
wrap_ExprSuffixList
:: T_ExprSuffixList
-> Inh_ExprSuffixList
-> Syn_ExprSuffixList
wrap_ExprSuffixList :: T_ExprSuffixList -> Inh_ExprSuffixList -> Syn_ExprSuffixList
wrap_ExprSuffixList T_ExprSuffixList
sem (Inh_ExprSuffixList [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf) =
( let
([MToken]
_lhsOcomments, ExprSuffixList
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty) = T_ExprSuffixList
sem [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf
in
([MToken]
-> ExprSuffixList
-> Bool
-> Bool
-> OperatorLevel
-> Doc
-> Syn_ExprSuffixList
Syn_ExprSuffixList [MToken]
_lhsOcomments ExprSuffixList
_lhsOcopy Bool
_lhsOisAssociative Bool
_lhsOisMultiline OperatorLevel
_lhsOprecedence Doc
_lhsOpretty)
)
sem_ExprSuffixList_Cons
:: T_PFExprSuffix
-> T_ExprSuffixList
-> T_ExprSuffixList
sem_ExprSuffixList_Cons :: T_PFExprSuffix -> T_ExprSuffixList -> T_ExprSuffixList
sem_ExprSuffixList_Cons T_PFExprSuffix
hd_ T_ExprSuffixList
tl_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOisAssociative :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOcopy :: ExprSuffixList
_lhsOcomments :: ([MToken])
_hdOcomments :: ([MToken])
_hdOforceMultiline :: Bool
_hdOindent :: Int
_hdOppconf :: PrettyPrintConfig
_tlOcomments :: ([MToken])
_tlOforceMultiline :: Bool
_tlOindent :: Int
_tlOppconf :: PrettyPrintConfig
_hdIcomments :: ([MToken])
_hdIcopy :: PFExprSuffix
_hdIisAssociative :: Bool
_hdIisMultiline :: Bool
_hdIprecedence :: OperatorLevel
_hdIpretty :: Doc
_tlIcomments :: ([MToken])
_tlIcopy :: ExprSuffixList
_tlIisAssociative :: Bool
_tlIisMultiline :: Bool
_tlIprecedence :: OperatorLevel
_tlIpretty :: Doc
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
_hdIpretty Doc -> Doc -> Doc
<> Doc
_tlIpretty
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_hdIisMultiline Bool -> Bool -> Bool
|| Bool
_tlIisMultiline
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
_hdIisAssociative Bool -> Bool -> Bool
&& Bool
_tlIisAssociative
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( (forall a. Ord a => a -> a -> a
min OperatorLevel
_hdIprecedence OperatorLevel
_tlIprecedence)
)
_copy :: ExprSuffixList
_copy =
( (:) PFExprSuffix
_hdIcopy ExprSuffixList
_tlIcopy
)
_lhsOcopy :: ExprSuffixList
_lhsOcopy =
( ExprSuffixList
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_tlIcomments
)
_hdOcomments :: [MToken]
_hdOcomments =
( [MToken]
_lhsIcomments
)
_hdOforceMultiline :: Bool
_hdOforceMultiline =
( Bool
_lhsIforceMultiline
)
_hdOindent :: Int
_hdOindent =
( Int
_lhsIindent
)
_hdOppconf :: PrettyPrintConfig
_hdOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_tlOcomments :: [MToken]
_tlOcomments =
( [MToken]
_hdIcomments
)
_tlOforceMultiline :: Bool
_tlOforceMultiline =
( Bool
_lhsIforceMultiline
)
_tlOindent :: Int
_tlOindent =
( Int
_lhsIindent
)
_tlOppconf :: PrettyPrintConfig
_tlOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_hdIcomments, PFExprSuffix
_hdIcopy, Bool
_hdIisAssociative, Bool
_hdIisMultiline, OperatorLevel
_hdIprecedence, Doc
_hdIpretty) =
T_PFExprSuffix
hd_ [MToken]
_hdOcomments Bool
_hdOforceMultiline Int
_hdOindent PrettyPrintConfig
_hdOppconf
([MToken]
_tlIcomments, ExprSuffixList
_tlIcopy, Bool
_tlIisAssociative, Bool
_tlIisMultiline, OperatorLevel
_tlIprecedence, Doc
_tlIpretty) =
T_ExprSuffixList
tl_ [MToken]
_tlOcomments Bool
_tlOforceMultiline Int
_tlOindent PrettyPrintConfig
_tlOppconf
in
([MToken]
_lhsOcomments, ExprSuffixList
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_ExprSuffixList_Nil :: T_ExprSuffixList
sem_ExprSuffixList_Nil :: T_ExprSuffixList
sem_ExprSuffixList_Nil =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOisAssociative :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOcopy :: ExprSuffixList
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
empty
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel8
)
_copy :: [a]
_copy =
( []
)
_lhsOcopy :: ExprSuffixList
_lhsOcopy =
( forall a. [a]
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, ExprSuffixList
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_Field
:: Field
-> T_Field
sem_Field :: Field -> T_Field
sem_Field (ExprField MExpr
_key MExpr
_value FieldSep
_sep) =
(T_MExpr -> T_MExpr -> T_FieldSep -> T_Field
sem_Field_ExprField (MExpr -> T_MExpr
sem_MExpr MExpr
_key) (MExpr -> T_MExpr
sem_MExpr MExpr
_value) (FieldSep -> T_FieldSep
sem_FieldSep FieldSep
_sep))
sem_Field (NamedField MToken
_key MExpr
_value FieldSep
_sep) =
(MToken -> T_MExpr -> T_FieldSep -> T_Field
sem_Field_NamedField MToken
_key (MExpr -> T_MExpr
sem_MExpr MExpr
_value) (FieldSep -> T_FieldSep
sem_FieldSep FieldSep
_sep))
sem_Field (UnnamedField MExpr
_value FieldSep
_sep) =
(T_MExpr -> T_FieldSep -> T_Field
sem_Field_UnnamedField (MExpr -> T_MExpr
sem_MExpr MExpr
_value) (FieldSep -> T_FieldSep
sem_FieldSep FieldSep
_sep))
type T_Field =
([MToken])
-> Bool
-> Int
-> PrettyPrintConfig
-> (([MToken]), Field, Bool, Bool, Region, Doc)
data Inh_Field = Inh_Field { :: ([MToken]), Inh_Field -> Bool
forceMultiline_Inh_Field :: Bool, Inh_Field -> Int
indent_Inh_Field :: Int, Inh_Field -> PrettyPrintConfig
ppconf_Inh_Field :: PrettyPrintConfig}
data Syn_Field = Syn_Field { :: ([MToken]), Syn_Field -> Field
copy_Syn_Field :: Field, Syn_Field -> Bool
isMultiline_Syn_Field :: Bool, Syn_Field -> Bool
isSemiColon_Syn_Field :: Bool, Syn_Field -> Region
pos_Syn_Field :: Region, Syn_Field -> Doc
pretty_Syn_Field :: Doc}
wrap_Field
:: T_Field
-> Inh_Field
-> Syn_Field
wrap_Field :: T_Field -> Inh_Field -> Syn_Field
wrap_Field T_Field
sem (Inh_Field [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf) =
( let
([MToken]
_lhsOcomments, Field
_lhsOcopy, Bool
_lhsOisMultiline, Bool
_lhsOisSemiColon, Region
_lhsOpos, Doc
_lhsOpretty) = T_Field
sem [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf
in
([MToken] -> Field -> Bool -> Bool -> Region -> Doc -> Syn_Field
Syn_Field [MToken]
_lhsOcomments Field
_lhsOcopy Bool
_lhsOisMultiline Bool
_lhsOisSemiColon Region
_lhsOpos Doc
_lhsOpretty)
)
sem_Field_ExprField
:: T_MExpr
-> T_MExpr
-> T_FieldSep
-> T_Field
sem_Field_ExprField :: T_MExpr -> T_MExpr -> T_FieldSep -> T_Field
sem_Field_ExprField T_MExpr
key_ T_MExpr
value_ T_FieldSep
sep_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_keyOparentOperatorPrecedence :: OperatorLevel
_keyOparentOperatorAssociative :: Bool
_valueOparentOperatorPrecedence :: OperatorLevel
_valueOparentOperatorAssociative :: Bool
_lhsOisSemiColon :: Bool
_lhsOcopy :: Field
_lhsOcomments :: ([MToken])
_lhsOpos :: Region
_keyOcomments :: ([MToken])
_keyOforceMultiline :: Bool
_keyOindent :: Int
_keyOppconf :: PrettyPrintConfig
_valueOcomments :: ([MToken])
_valueOforceMultiline :: Bool
_valueOindent :: Int
_valueOppconf :: PrettyPrintConfig
_sepOindent :: Int
_sepOppconf :: PrettyPrintConfig
_keyIcomments :: ([MToken])
_keyIcopy :: MExpr
_keyIendsWithPrefixExpression :: Bool
_keyIisAssociative :: Bool
_keyIisLiteral :: Bool
_keyIisMultiline :: Bool
_keyIpos :: Region
_keyIprecedence :: OperatorLevel
_keyIpretty :: Doc
_valueIcomments :: ([MToken])
_valueIcopy :: MExpr
_valueIendsWithPrefixExpression :: Bool
_valueIisAssociative :: Bool
_valueIisLiteral :: Bool
_valueIisMultiline :: Bool
_valueIpos :: Region
_valueIprecedence :: OperatorLevel
_valueIpretty :: Doc
_sepIcopy :: FieldSep
_sepIisMultiline :: Bool
_sepIisSemiColon :: Bool
_sepIpretty :: Doc
_lhsOpretty :: Doc
_lhsOpretty =
( PrettyPrintConfig -> Doc -> Doc
brackets PrettyPrintConfig
_lhsIppconf Doc
_keyIpretty Doc -> Doc -> Doc
<-> Char -> Doc
zchr Char
'=' Doc -> Doc -> Doc
<-> Doc
_valueIpretty Doc -> Doc -> Doc
<> Doc
_sepIpretty
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
True
)
_keyOparentOperatorPrecedence :: OperatorLevel
_keyOparentOperatorPrecedence =
( OperatorLevel
TopLevelExpression
)
_keyOparentOperatorAssociative :: Bool
_keyOparentOperatorAssociative =
( Bool
True
)
_valueOparentOperatorPrecedence :: OperatorLevel
_valueOparentOperatorPrecedence =
( OperatorLevel
TopLevelExpression
)
_valueOparentOperatorAssociative :: Bool
_valueOparentOperatorAssociative =
( Bool
True
)
_lhsOisSemiColon :: Bool
_lhsOisSemiColon =
( Bool
_sepIisSemiColon
)
_copy :: Field
_copy =
( MExpr -> MExpr -> FieldSep -> Field
ExprField MExpr
_keyIcopy MExpr
_valueIcopy FieldSep
_sepIcopy
)
_lhsOcopy :: Field
_lhsOcopy =
( Field
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_valueIcomments
)
_lhsOpos :: Region
_lhsOpos =
( Region
_valueIpos
)
_keyOcomments :: [MToken]
_keyOcomments =
( [MToken]
_lhsIcomments
)
_keyOforceMultiline :: Bool
_keyOforceMultiline =
( Bool
_lhsIforceMultiline
)
_keyOindent :: Int
_keyOindent =
( Int
_lhsIindent
)
_keyOppconf :: PrettyPrintConfig
_keyOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_valueOcomments :: [MToken]
_valueOcomments =
( [MToken]
_keyIcomments
)
_valueOforceMultiline :: Bool
_valueOforceMultiline =
( Bool
_lhsIforceMultiline
)
_valueOindent :: Int
_valueOindent =
( Int
_lhsIindent
)
_valueOppconf :: PrettyPrintConfig
_valueOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_sepOindent :: Int
_sepOindent =
( Int
_lhsIindent
)
_sepOppconf :: PrettyPrintConfig
_sepOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_keyIcomments, MExpr
_keyIcopy, Bool
_keyIendsWithPrefixExpression, Bool
_keyIisAssociative, Bool
_keyIisLiteral, Bool
_keyIisMultiline, Region
_keyIpos, OperatorLevel
_keyIprecedence, Doc
_keyIpretty) =
T_MExpr
key_ [MToken]
_keyOcomments Bool
_keyOforceMultiline Int
_keyOindent Bool
_keyOparentOperatorAssociative OperatorLevel
_keyOparentOperatorPrecedence PrettyPrintConfig
_keyOppconf
([MToken]
_valueIcomments, MExpr
_valueIcopy, Bool
_valueIendsWithPrefixExpression, Bool
_valueIisAssociative, Bool
_valueIisLiteral, Bool
_valueIisMultiline, Region
_valueIpos, OperatorLevel
_valueIprecedence, Doc
_valueIpretty) =
T_MExpr
value_ [MToken]
_valueOcomments Bool
_valueOforceMultiline Int
_valueOindent Bool
_valueOparentOperatorAssociative OperatorLevel
_valueOparentOperatorPrecedence PrettyPrintConfig
_valueOppconf
(FieldSep
_sepIcopy, Bool
_sepIisMultiline, Bool
_sepIisSemiColon, Doc
_sepIpretty) =
T_FieldSep
sep_ Int
_sepOindent PrettyPrintConfig
_sepOppconf
in
([MToken]
_lhsOcomments, Field
_lhsOcopy, Bool
_lhsOisMultiline, Bool
_lhsOisSemiColon, Region
_lhsOpos, Doc
_lhsOpretty)
)
)
sem_Field_NamedField
:: MToken
-> T_MExpr
-> T_FieldSep
-> T_Field
sem_Field_NamedField :: MToken -> T_MExpr -> T_FieldSep -> T_Field
sem_Field_NamedField MToken
key_ T_MExpr
value_ T_FieldSep
sep_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_valueOparentOperatorPrecedence :: OperatorLevel
_valueOparentOperatorAssociative :: Bool
_lhsOisSemiColon :: Bool
_lhsOcopy :: Field
_lhsOcomments :: ([MToken])
_lhsOpos :: Region
_valueOcomments :: ([MToken])
_valueOforceMultiline :: Bool
_valueOindent :: Int
_valueOppconf :: PrettyPrintConfig
_sepOindent :: Int
_sepOppconf :: PrettyPrintConfig
_valueIcomments :: ([MToken])
_valueIcopy :: MExpr
_valueIendsWithPrefixExpression :: Bool
_valueIisAssociative :: Bool
_valueIisLiteral :: Bool
_valueIisMultiline :: Bool
_valueIpos :: Region
_valueIprecedence :: OperatorLevel
_valueIpretty :: Doc
_sepIcopy :: FieldSep
_sepIisMultiline :: Bool
_sepIisSemiColon :: Bool
_sepIpretty :: Doc
_lhsOpretty :: Doc
_lhsOpretty =
( MToken -> Doc
tok MToken
key_ Doc -> Doc -> Doc
<-> Char -> Doc
zchr Char
'=' Doc -> Doc -> Doc
<-> Doc
_valueIpretty Doc -> Doc -> Doc
<> Doc
_sepIpretty
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
True
)
_valueOparentOperatorPrecedence :: OperatorLevel
_valueOparentOperatorPrecedence =
( OperatorLevel
TopLevelExpression
)
_valueOparentOperatorAssociative :: Bool
_valueOparentOperatorAssociative =
( Bool
True
)
_lhsOisSemiColon :: Bool
_lhsOisSemiColon =
( Bool
_sepIisSemiColon
)
_copy :: Field
_copy =
( MToken -> MExpr -> FieldSep -> Field
NamedField MToken
key_ MExpr
_valueIcopy FieldSep
_sepIcopy
)
_lhsOcopy :: Field
_lhsOcopy =
( Field
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_valueIcomments
)
_lhsOpos :: Region
_lhsOpos =
( Region
_valueIpos
)
_valueOcomments :: [MToken]
_valueOcomments =
( [MToken]
_lhsIcomments
)
_valueOforceMultiline :: Bool
_valueOforceMultiline =
( Bool
_lhsIforceMultiline
)
_valueOindent :: Int
_valueOindent =
( Int
_lhsIindent
)
_valueOppconf :: PrettyPrintConfig
_valueOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_sepOindent :: Int
_sepOindent =
( Int
_lhsIindent
)
_sepOppconf :: PrettyPrintConfig
_sepOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_valueIcomments, MExpr
_valueIcopy, Bool
_valueIendsWithPrefixExpression, Bool
_valueIisAssociative, Bool
_valueIisLiteral, Bool
_valueIisMultiline, Region
_valueIpos, OperatorLevel
_valueIprecedence, Doc
_valueIpretty) =
T_MExpr
value_ [MToken]
_valueOcomments Bool
_valueOforceMultiline Int
_valueOindent Bool
_valueOparentOperatorAssociative OperatorLevel
_valueOparentOperatorPrecedence PrettyPrintConfig
_valueOppconf
(FieldSep
_sepIcopy, Bool
_sepIisMultiline, Bool
_sepIisSemiColon, Doc
_sepIpretty) =
T_FieldSep
sep_ Int
_sepOindent PrettyPrintConfig
_sepOppconf
in
([MToken]
_lhsOcomments, Field
_lhsOcopy, Bool
_lhsOisMultiline, Bool
_lhsOisSemiColon, Region
_lhsOpos, Doc
_lhsOpretty)
)
)
sem_Field_UnnamedField
:: T_MExpr
-> T_FieldSep
-> T_Field
sem_Field_UnnamedField :: T_MExpr -> T_FieldSep -> T_Field
sem_Field_UnnamedField T_MExpr
value_ T_FieldSep
sep_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_valueOparentOperatorPrecedence :: OperatorLevel
_valueOparentOperatorAssociative :: Bool
_lhsOisSemiColon :: Bool
_lhsOcopy :: Field
_lhsOcomments :: ([MToken])
_lhsOpos :: Region
_valueOcomments :: ([MToken])
_valueOforceMultiline :: Bool
_valueOindent :: Int
_valueOppconf :: PrettyPrintConfig
_sepOindent :: Int
_sepOppconf :: PrettyPrintConfig
_valueIcomments :: ([MToken])
_valueIcopy :: MExpr
_valueIendsWithPrefixExpression :: Bool
_valueIisAssociative :: Bool
_valueIisLiteral :: Bool
_valueIisMultiline :: Bool
_valueIpos :: Region
_valueIprecedence :: OperatorLevel
_valueIpretty :: Doc
_sepIcopy :: FieldSep
_sepIisMultiline :: Bool
_sepIisSemiColon :: Bool
_sepIpretty :: Doc
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
_valueIpretty Doc -> Doc -> Doc
<> Doc
_sepIpretty
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_valueIisMultiline Bool -> Bool -> Bool
|| Bool
_sepIisMultiline
)
_valueOparentOperatorPrecedence :: OperatorLevel
_valueOparentOperatorPrecedence =
( OperatorLevel
TopLevelExpression
)
_valueOparentOperatorAssociative :: Bool
_valueOparentOperatorAssociative =
( Bool
True
)
_lhsOisSemiColon :: Bool
_lhsOisSemiColon =
( Bool
_sepIisSemiColon
)
_copy :: Field
_copy =
( MExpr -> FieldSep -> Field
UnnamedField MExpr
_valueIcopy FieldSep
_sepIcopy
)
_lhsOcopy :: Field
_lhsOcopy =
( Field
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_valueIcomments
)
_lhsOpos :: Region
_lhsOpos =
( Region
_valueIpos
)
_valueOcomments :: [MToken]
_valueOcomments =
( [MToken]
_lhsIcomments
)
_valueOforceMultiline :: Bool
_valueOforceMultiline =
( Bool
_lhsIforceMultiline
)
_valueOindent :: Int
_valueOindent =
( Int
_lhsIindent
)
_valueOppconf :: PrettyPrintConfig
_valueOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_sepOindent :: Int
_sepOindent =
( Int
_lhsIindent
)
_sepOppconf :: PrettyPrintConfig
_sepOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_valueIcomments, MExpr
_valueIcopy, Bool
_valueIendsWithPrefixExpression, Bool
_valueIisAssociative, Bool
_valueIisLiteral, Bool
_valueIisMultiline, Region
_valueIpos, OperatorLevel
_valueIprecedence, Doc
_valueIpretty) =
T_MExpr
value_ [MToken]
_valueOcomments Bool
_valueOforceMultiline Int
_valueOindent Bool
_valueOparentOperatorAssociative OperatorLevel
_valueOparentOperatorPrecedence PrettyPrintConfig
_valueOppconf
(FieldSep
_sepIcopy, Bool
_sepIisMultiline, Bool
_sepIisSemiColon, Doc
_sepIpretty) =
T_FieldSep
sep_ Int
_sepOindent PrettyPrintConfig
_sepOppconf
in
([MToken]
_lhsOcomments, Field
_lhsOcopy, Bool
_lhsOisMultiline, Bool
_lhsOisSemiColon, Region
_lhsOpos, Doc
_lhsOpretty)
)
)
sem_FieldList
:: FieldList
-> T_FieldList
sem_FieldList :: FieldList -> T_FieldList
sem_FieldList FieldList
list =
(forall (t :: * -> *) a b.
Foldable t =>
(a -> b -> b) -> b -> t a -> b
Prelude.foldr T_Field -> T_FieldList -> T_FieldList
sem_FieldList_Cons T_FieldList
sem_FieldList_Nil (forall a b. (a -> b) -> [a] -> [b]
Prelude.map Field -> T_Field
sem_Field FieldList
list))
type T_FieldList =
([MToken])
-> Bool
-> Int
-> PrettyPrintConfig
-> Bool
-> (([MToken]), FieldList, Bool, Bool, Doc)
data Inh_FieldList = Inh_FieldList { :: ([MToken]), Inh_FieldList -> Bool
forceMultiline_Inh_FieldList :: Bool, Inh_FieldList -> Int
indent_Inh_FieldList :: Int, Inh_FieldList -> PrettyPrintConfig
ppconf_Inh_FieldList :: PrettyPrintConfig, Inh_FieldList -> Bool
someElementsInListAreMultiline_Inh_FieldList :: Bool}
data Syn_FieldList = Syn_FieldList { :: ([MToken]), Syn_FieldList -> FieldList
copy_Syn_FieldList :: FieldList, Syn_FieldList -> Bool
isMultiline_Syn_FieldList :: Bool, Syn_FieldList -> Bool
isNil_Syn_FieldList :: Bool, Syn_FieldList -> Doc
pretty_Syn_FieldList :: Doc}
wrap_FieldList
:: T_FieldList
-> Inh_FieldList
-> Syn_FieldList
wrap_FieldList :: T_FieldList -> Inh_FieldList -> Syn_FieldList
wrap_FieldList T_FieldList
sem (Inh_FieldList [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf Bool
_lhsIsomeElementsInListAreMultiline) =
( let
([MToken]
_lhsOcomments, FieldList
_lhsOcopy, Bool
_lhsOisMultiline, Bool
_lhsOisNil, Doc
_lhsOpretty) = T_FieldList
sem [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf Bool
_lhsIsomeElementsInListAreMultiline
in
([MToken] -> FieldList -> Bool -> Bool -> Doc -> Syn_FieldList
Syn_FieldList [MToken]
_lhsOcomments FieldList
_lhsOcopy Bool
_lhsOisMultiline Bool
_lhsOisNil Doc
_lhsOpretty)
)
sem_FieldList_Cons
:: T_Field
-> T_FieldList
-> T_FieldList
sem_FieldList_Cons :: T_Field -> T_FieldList -> T_FieldList
sem_FieldList_Cons T_Field
hd_ T_FieldList
tl_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf
Bool
_lhsIsomeElementsInListAreMultiline ->
( let
_lhsOpretty :: Doc
_lhsOisNil :: Bool
_tlOsomeElementsInListAreMultiline :: Bool
_hdOcomments :: ([MToken])
_tlOcomments :: ([MToken])
_lhsOcomments :: ([MToken])
_lhsOcopy :: FieldList
_lhsOisMultiline :: Bool
_hdOforceMultiline :: Bool
_hdOindent :: Int
_hdOppconf :: PrettyPrintConfig
_tlOforceMultiline :: Bool
_tlOindent :: Int
_tlOppconf :: PrettyPrintConfig
_hdIcomments :: ([MToken])
_hdIcopy :: Field
_hdIisMultiline :: Bool
_hdIisSemiColon :: Bool
_hdIpos :: Region
_hdIpretty :: Doc
_tlIcomments :: ([MToken])
_tlIcopy :: FieldList
_tlIisMultiline :: Bool
_tlIisNil :: Bool
_tlIpretty :: Doc
_lhsOpretty :: Doc
_lhsOpretty =
( if Bool
_isMultiline
then
PrettyPrintConfig -> Int -> [MToken] -> Doc
renderMLComments PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsBefore)
Doc -> Doc -> Doc
$+$ PrettyPrintConfig -> Int -> Doc -> Doc
indent PrettyPrintConfig
_lhsIppconf Int
_lhsIindent Doc
_hdIpretty
Doc -> Doc -> Doc
<-> PrettyPrintConfig -> Int -> [MToken] -> Doc
renderSLComments PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsAfter)
Doc -> Doc -> Doc
$+$ Doc
_tlIpretty
else
Doc
_hdIpretty
Doc -> Doc -> Doc
`_optionalSpaceAfterSep` Doc
_tlIpretty
)
_lhsOisNil :: Bool
_lhsOisNil =
( Bool
False
)
_optionalSpaceAfterSep :: Doc -> Doc -> Doc
_optionalSpaceAfterSep =
( if PrettyPrintConfig -> Bool
spaceAfterComma PrettyPrintConfig
_lhsIppconf then Doc -> Doc -> Doc
(<->) else Doc -> Doc -> Doc
(<>)
)
_isMultiline :: Bool
_isMultiline =
( Bool
_lhsIforceMultiline
Bool -> Bool -> Bool
|| Bool
_hdIisMultiline
Bool -> Bool -> Bool
|| Bool
_tlIisMultiline
Bool -> Bool -> Bool
|| Bool
_lhsIsomeElementsInListAreMultiline
Bool -> Bool -> Bool
|| Bool -> Bool
not (forall (t :: * -> *) a. Foldable t => t a -> Bool
null forall a b. (a -> b) -> a -> b
$ forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsBefore)
Bool -> Bool -> Bool
|| Bool -> Bool
not (forall (t :: * -> *) a. Foldable t => t a -> Bool
null forall a b. (a -> b) -> a -> b
$ forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsAfter)
)
_tlOsomeElementsInListAreMultiline :: Bool
_tlOsomeElementsInListAreMultiline =
( Bool
_lhsIsomeElementsInListAreMultiline
Bool -> Bool -> Bool
|| Bool
_hdIisMultiline
Bool -> Bool -> Bool
|| Bool -> Bool
not (forall (t :: * -> *) a. Foldable t => t a -> Bool
null forall a b. (a -> b) -> a -> b
$ forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsBefore)
Bool -> Bool -> Bool
|| Bool -> Bool
not (forall (t :: * -> *) a. Foldable t => t a -> Bool
null forall a b. (a -> b) -> a -> b
$ forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsAfter)
)
_commentsBefore :: ([MToken], [MToken])
_commentsBefore =
( forall a. (a -> Bool) -> [a] -> ([a], [a])
span (\(MToken Region
pos Token
_) -> Region
pos Region -> Region -> Bool
`before` Region
_hdIpos) [MToken]
_lhsIcomments
)
_hdOcomments :: [MToken]
_hdOcomments =
( forall a b. (a, b) -> b
snd ([MToken], [MToken])
_commentsBefore
)
_commentsAfter :: ([MToken], [MToken])
_commentsAfter =
( forall a. (a -> Bool) -> [a] -> ([a], [a])
span (\(MToken Region
pos Token
_) -> Region
pos Region -> Region -> Bool
`beforeOrOnLine` Region
_hdIpos) [MToken]
_hdIcomments
)
_tlOcomments :: [MToken]
_tlOcomments =
( forall a b. (a, b) -> b
snd ([MToken], [MToken])
_commentsAfter
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_tlIcomments
)
_copy :: FieldList
_copy =
( (:) Field
_hdIcopy FieldList
_tlIcopy
)
_lhsOcopy :: FieldList
_lhsOcopy =
( FieldList
_copy
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_isMultiline
)
_hdOforceMultiline :: Bool
_hdOforceMultiline =
( Bool
_lhsIforceMultiline
)
_hdOindent :: Int
_hdOindent =
( Int
_lhsIindent
)
_hdOppconf :: PrettyPrintConfig
_hdOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_tlOforceMultiline :: Bool
_tlOforceMultiline =
( Bool
_lhsIforceMultiline
)
_tlOindent :: Int
_tlOindent =
( Int
_lhsIindent
)
_tlOppconf :: PrettyPrintConfig
_tlOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_hdIcomments, Field
_hdIcopy, Bool
_hdIisMultiline, Bool
_hdIisSemiColon, Region
_hdIpos, Doc
_hdIpretty) =
T_Field
hd_ [MToken]
_hdOcomments Bool
_hdOforceMultiline Int
_hdOindent PrettyPrintConfig
_hdOppconf
([MToken]
_tlIcomments, FieldList
_tlIcopy, Bool
_tlIisMultiline, Bool
_tlIisNil, Doc
_tlIpretty) =
T_FieldList
tl_ [MToken]
_tlOcomments Bool
_tlOforceMultiline Int
_tlOindent PrettyPrintConfig
_tlOppconf Bool
_tlOsomeElementsInListAreMultiline
in
([MToken]
_lhsOcomments, FieldList
_lhsOcopy, Bool
_lhsOisMultiline, Bool
_lhsOisNil, Doc
_lhsOpretty)
)
)
sem_FieldList_Nil :: T_FieldList
sem_FieldList_Nil :: T_FieldList
sem_FieldList_Nil =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf
Bool
_lhsIsomeElementsInListAreMultiline ->
( let
_lhsOpretty :: Doc
_lhsOisNil :: Bool
_lhsOisMultiline :: Bool
_lhsOcopy :: FieldList
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
empty
)
_lhsOisNil :: Bool
_lhsOisNil =
( Bool
True
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_copy :: [a]
_copy =
( []
)
_lhsOcopy :: FieldList
_lhsOcopy =
( forall a. [a]
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, FieldList
_lhsOcopy, Bool
_lhsOisMultiline, Bool
_lhsOisNil, Doc
_lhsOpretty)
)
)
sem_FieldSep
:: FieldSep
-> T_FieldSep
sem_FieldSep :: FieldSep -> T_FieldSep
sem_FieldSep (FieldSep
CommaSep) =
(T_FieldSep
sem_FieldSep_CommaSep)
sem_FieldSep (FieldSep
SemicolonSep) =
(T_FieldSep
sem_FieldSep_SemicolonSep)
sem_FieldSep (FieldSep
NoSep) =
(T_FieldSep
sem_FieldSep_NoSep)
type T_FieldSep =
Int
-> PrettyPrintConfig
-> (FieldSep, Bool, Bool, Doc)
data Inh_FieldSep = Inh_FieldSep {Inh_FieldSep -> Int
indent_Inh_FieldSep :: Int, Inh_FieldSep -> PrettyPrintConfig
ppconf_Inh_FieldSep :: PrettyPrintConfig}
data Syn_FieldSep = Syn_FieldSep {Syn_FieldSep -> FieldSep
copy_Syn_FieldSep :: FieldSep, Syn_FieldSep -> Bool
isMultiline_Syn_FieldSep :: Bool, Syn_FieldSep -> Bool
isSemiColon_Syn_FieldSep :: Bool, Syn_FieldSep -> Doc
pretty_Syn_FieldSep :: Doc}
wrap_FieldSep
:: T_FieldSep
-> Inh_FieldSep
-> Syn_FieldSep
wrap_FieldSep :: T_FieldSep -> Inh_FieldSep -> Syn_FieldSep
wrap_FieldSep T_FieldSep
sem (Inh_FieldSep Int
_lhsIindent PrettyPrintConfig
_lhsIppconf) =
( let
(FieldSep
_lhsOcopy, Bool
_lhsOisMultiline, Bool
_lhsOisSemiColon, Doc
_lhsOpretty) = T_FieldSep
sem Int
_lhsIindent PrettyPrintConfig
_lhsIppconf
in
(FieldSep -> Bool -> Bool -> Doc -> Syn_FieldSep
Syn_FieldSep FieldSep
_lhsOcopy Bool
_lhsOisMultiline Bool
_lhsOisSemiColon Doc
_lhsOpretty)
)
sem_FieldSep_CommaSep :: T_FieldSep
sem_FieldSep_CommaSep :: T_FieldSep
sem_FieldSep_CommaSep =
( \Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOisSemiColon :: Bool
_lhsOcopy :: FieldSep
_lhsOpretty :: Doc
_lhsOpretty =
( (if PrettyPrintConfig -> Bool
spaceBeforeComma PrettyPrintConfig
_lhsIppconf then Char -> Doc
zchr Char
' ' else Doc
empty) Doc -> Doc -> Doc
<> Char -> Doc
zchr Char
','
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOisSemiColon :: Bool
_lhsOisSemiColon =
( Bool
False
)
_copy :: FieldSep
_copy =
( FieldSep
CommaSep
)
_lhsOcopy :: FieldSep
_lhsOcopy =
( FieldSep
_copy
)
in
(FieldSep
_lhsOcopy, Bool
_lhsOisMultiline, Bool
_lhsOisSemiColon, Doc
_lhsOpretty)
)
)
sem_FieldSep_SemicolonSep :: T_FieldSep
sem_FieldSep_SemicolonSep :: T_FieldSep
sem_FieldSep_SemicolonSep =
( \Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisSemiColon :: Bool
_lhsOisMultiline :: Bool
_lhsOcopy :: FieldSep
_lhsOpretty :: Doc
_lhsOpretty =
( (if PrettyPrintConfig -> Bool
spaceBeforeComma PrettyPrintConfig
_lhsIppconf then Char -> Doc
zchr Char
' ' else Doc
empty) Doc -> Doc -> Doc
<> Char -> Doc
zchr Char
';'
)
_lhsOisSemiColon :: Bool
_lhsOisSemiColon =
( Bool
True
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
True
)
_copy :: FieldSep
_copy =
( FieldSep
SemicolonSep
)
_lhsOcopy :: FieldSep
_lhsOcopy =
( FieldSep
_copy
)
in
(FieldSep
_lhsOcopy, Bool
_lhsOisMultiline, Bool
_lhsOisSemiColon, Doc
_lhsOpretty)
)
)
sem_FieldSep_NoSep :: T_FieldSep
sem_FieldSep_NoSep :: T_FieldSep
sem_FieldSep_NoSep =
( \Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOisSemiColon :: Bool
_lhsOcopy :: FieldSep
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
empty
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOisSemiColon :: Bool
_lhsOisSemiColon =
( Bool
False
)
_copy :: FieldSep
_copy =
( FieldSep
NoSep
)
_lhsOcopy :: FieldSep
_lhsOcopy =
( FieldSep
_copy
)
in
(FieldSep
_lhsOcopy, Bool
_lhsOisMultiline, Bool
_lhsOisSemiColon, Doc
_lhsOpretty)
)
)
sem_FuncName
:: FuncName
-> T_FuncName
sem_FuncName :: FuncName -> T_FuncName
sem_FuncName (FuncName [MToken]
_names Maybe MToken
_meta) =
([MToken] -> Maybe MToken -> T_FuncName
sem_FuncName_FuncName [MToken]
_names Maybe MToken
_meta)
type T_FuncName =
([MToken])
-> Int
-> PrettyPrintConfig
-> (([MToken]), FuncName, Bool, Region, Doc)
data Inh_FuncName = Inh_FuncName { :: ([MToken]), Inh_FuncName -> Int
indent_Inh_FuncName :: Int, Inh_FuncName -> PrettyPrintConfig
ppconf_Inh_FuncName :: PrettyPrintConfig}
data Syn_FuncName = Syn_FuncName { :: ([MToken]), Syn_FuncName -> FuncName
copy_Syn_FuncName :: FuncName, Syn_FuncName -> Bool
isMultiline_Syn_FuncName :: Bool, Syn_FuncName -> Region
pos_Syn_FuncName :: Region, Syn_FuncName -> Doc
pretty_Syn_FuncName :: Doc}
wrap_FuncName
:: T_FuncName
-> Inh_FuncName
-> Syn_FuncName
wrap_FuncName :: T_FuncName -> Inh_FuncName -> Syn_FuncName
wrap_FuncName T_FuncName
sem (Inh_FuncName [MToken]
_lhsIcomments Int
_lhsIindent PrettyPrintConfig
_lhsIppconf) =
( let
([MToken]
_lhsOcomments, FuncName
_lhsOcopy, Bool
_lhsOisMultiline, Region
_lhsOpos, Doc
_lhsOpretty) = T_FuncName
sem [MToken]
_lhsIcomments Int
_lhsIindent PrettyPrintConfig
_lhsIppconf
in
([MToken] -> FuncName -> Bool -> Region -> Doc -> Syn_FuncName
Syn_FuncName [MToken]
_lhsOcomments FuncName
_lhsOcopy Bool
_lhsOisMultiline Region
_lhsOpos Doc
_lhsOpretty)
)
sem_FuncName_FuncName
:: ([MToken])
-> (Maybe MToken)
-> T_FuncName
sem_FuncName_FuncName :: [MToken] -> Maybe MToken -> T_FuncName
sem_FuncName_FuncName [MToken]
names_ Maybe MToken
meta_ =
( \[MToken]
_lhsIcomments
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOpos :: Region
_lhsOcopy :: FuncName
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( forall a. (a -> Doc) -> String -> [a] -> Doc
printList MToken -> Doc
tok String
"." [MToken]
names_ Doc -> Doc -> Doc
<> Maybe MToken -> Doc
metaDoc Maybe MToken
meta_
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOpos :: Region
_lhsOpos =
( case Maybe MToken
meta_ of
Maybe MToken
Nothing -> Region
_namesPos
Just MToken
name -> Region -> Region -> Region
rgOr Region
_namesPos (MToken -> Region
mpos MToken
name)
)
_namesPos :: Region
_namesPos =
( forall (t :: * -> *) a. Foldable t => (a -> a -> a) -> t a -> a
foldl1 Region -> Region -> Region
rgOr forall a b. (a -> b) -> a -> b
$ forall a b. (a -> b) -> [a] -> [b]
map MToken -> Region
mpos [MToken]
names_
)
_copy :: FuncName
_copy =
( [MToken] -> Maybe MToken -> FuncName
FuncName [MToken]
names_ Maybe MToken
meta_
)
_lhsOcopy :: FuncName
_lhsOcopy =
( FuncName
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, FuncName
_lhsOcopy, Bool
_lhsOisMultiline, Region
_lhsOpos, Doc
_lhsOpretty)
)
)
sem_MElse
:: MElse
-> T_MElse
sem_MElse :: MElse -> T_MElse
sem_MElse (MElse Region
_pos Block
_body) =
(Region -> T_Block -> T_MElse
sem_MElse_MElse Region
_pos (Block -> T_Block
sem_Block Block
_body))
type T_MElse =
([MToken])
-> Bool
-> Int
-> PrettyPrintConfig
-> Region
-> (([MToken]), MElse, Bool, Bool, Region, Doc)
data Inh_MElse = Inh_MElse { :: ([MToken]), Inh_MElse -> Bool
forceMultiline_Inh_MElse :: Bool, Inh_MElse -> Int
indent_Inh_MElse :: Int, Inh_MElse -> PrettyPrintConfig
ppconf_Inh_MElse :: PrettyPrintConfig, Inh_MElse -> Region
statRegion_Inh_MElse :: Region}
data Syn_MElse = Syn_MElse { :: ([MToken]), Syn_MElse -> MElse
copy_Syn_MElse :: MElse, Syn_MElse -> Bool
elsesExist_Syn_MElse :: Bool, Syn_MElse -> Bool
isMultiline_Syn_MElse :: Bool, Syn_MElse -> Region
pos_Syn_MElse :: Region, Syn_MElse -> Doc
pretty_Syn_MElse :: Doc}
wrap_MElse
:: T_MElse
-> Inh_MElse
-> Syn_MElse
wrap_MElse :: T_MElse -> Inh_MElse -> Syn_MElse
wrap_MElse T_MElse
sem (Inh_MElse [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf Region
_lhsIstatRegion) =
( let
([MToken]
_lhsOcomments, MElse
_lhsOcopy, Bool
_lhsOelsesExist, Bool
_lhsOisMultiline, Region
_lhsOpos, Doc
_lhsOpretty) = T_MElse
sem [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf Region
_lhsIstatRegion
in
([MToken] -> MElse -> Bool -> Bool -> Region -> Doc -> Syn_MElse
Syn_MElse [MToken]
_lhsOcomments MElse
_lhsOcopy Bool
_lhsOelsesExist Bool
_lhsOisMultiline Region
_lhsOpos Doc
_lhsOpretty)
)
sem_MElse_MElse
:: Region
-> T_Block
-> T_MElse
sem_MElse_MElse :: Region -> T_Block -> T_MElse
sem_MElse_MElse Region
pos_ T_Block
body_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_bodyOindent :: Int
_lhsOpos :: Region
_bodyOcomments :: ([MToken])
_lhsOelsesExist :: Bool
_lhsOcopy :: MElse
_lhsOcomments :: ([MToken])
_bodyOforceMultiline :: Bool
_bodyOppconf :: PrettyPrintConfig
_bodyOstatRegion :: Region
_bodyIcomments :: ([MToken])
_bodyIcopy :: Block
_bodyIisMultiline :: Bool
_bodyIpretty :: Doc
_bodyIstatementCount :: Int
_lhsOpretty :: Doc
_lhsOpretty =
( PrettyPrintConfig -> Int -> Doc -> Doc
indent PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (String -> Doc
zeroWidthText String
"else")
Doc -> Doc -> Doc
<-> Doc
_prettyCommentsAfter
Doc -> Doc -> Doc
$+$ Doc
_bodyIpretty
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_bodyIisMultiline
)
_bodyOindent :: Int
_bodyOindent =
( Int
_lhsIindent forall a. Num a => a -> a -> a
+ Int
1
)
_prettyCommentsAfter :: Doc
_prettyCommentsAfter =
( PrettyPrintConfig -> Int -> [MToken] -> Doc
renderSLComments PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsAfter)
)
_commentsAfter :: ([MToken], [MToken])
_commentsAfter =
( forall a. (a -> Bool) -> [a] -> ([a], [a])
span (\(MToken Region
pos Token
_) -> Region
pos Region -> Region -> Bool
`beforeOrOnLine` Region
pos_) [MToken]
_lhsIcomments
)
_lhsOpos :: Region
_lhsOpos =
( Region
pos_
)
_bodyOcomments :: [MToken]
_bodyOcomments =
( forall a b. (a, b) -> b
snd ([MToken], [MToken])
_commentsAfter
)
_lhsOelsesExist :: Bool
_lhsOelsesExist =
( Bool
False
)
_copy :: MElse
_copy =
( Region -> Block -> MElse
MElse Region
pos_ Block
_bodyIcopy
)
_lhsOcopy :: MElse
_lhsOcopy =
( MElse
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_bodyIcomments
)
_bodyOforceMultiline :: Bool
_bodyOforceMultiline =
( Bool
_lhsIforceMultiline
)
_bodyOppconf :: PrettyPrintConfig
_bodyOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_bodyOstatRegion :: Region
_bodyOstatRegion =
( Region
_lhsIstatRegion
)
([MToken]
_bodyIcomments, Block
_bodyIcopy, Bool
_bodyIisMultiline, Doc
_bodyIpretty, Int
_bodyIstatementCount) =
T_Block
body_ [MToken]
_bodyOcomments Bool
_bodyOforceMultiline Int
_bodyOindent PrettyPrintConfig
_bodyOppconf Region
_bodyOstatRegion
in
([MToken]
_lhsOcomments, MElse
_lhsOcopy, Bool
_lhsOelsesExist, Bool
_lhsOisMultiline, Region
_lhsOpos, Doc
_lhsOpretty)
)
)
sem_MElseIf
:: MElseIf
-> T_MElseIf
sem_MElseIf :: MElseIf -> T_MElseIf
sem_MElseIf (MElseIf Region
_pos (MExpr, Block)
_elif) =
(Region -> T_ElseIf -> T_MElseIf
sem_MElseIf_MElseIf Region
_pos ((MExpr, Block) -> T_ElseIf
sem_ElseIf (MExpr, Block)
_elif))
type T_MElseIf =
([MToken])
-> Bool
-> Int
-> PrettyPrintConfig
-> (([MToken]), MElseIf, Bool, Region, Doc)
data Inh_MElseIf = Inh_MElseIf { :: ([MToken]), Inh_MElseIf -> Bool
forceMultiline_Inh_MElseIf :: Bool, Inh_MElseIf -> Int
indent_Inh_MElseIf :: Int, Inh_MElseIf -> PrettyPrintConfig
ppconf_Inh_MElseIf :: PrettyPrintConfig}
data Syn_MElseIf = Syn_MElseIf { :: ([MToken]), Syn_MElseIf -> MElseIf
copy_Syn_MElseIf :: MElseIf, Syn_MElseIf -> Bool
isMultiline_Syn_MElseIf :: Bool, Syn_MElseIf -> Region
pos_Syn_MElseIf :: Region, Syn_MElseIf -> Doc
pretty_Syn_MElseIf :: Doc}
wrap_MElseIf
:: T_MElseIf
-> Inh_MElseIf
-> Syn_MElseIf
wrap_MElseIf :: T_MElseIf -> Inh_MElseIf -> Syn_MElseIf
wrap_MElseIf T_MElseIf
sem (Inh_MElseIf [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf) =
( let
([MToken]
_lhsOcomments, MElseIf
_lhsOcopy, Bool
_lhsOisMultiline, Region
_lhsOpos, Doc
_lhsOpretty) = T_MElseIf
sem [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf
in
([MToken] -> MElseIf -> Bool -> Region -> Doc -> Syn_MElseIf
Syn_MElseIf [MToken]
_lhsOcomments MElseIf
_lhsOcopy Bool
_lhsOisMultiline Region
_lhsOpos Doc
_lhsOpretty)
)
sem_MElseIf_MElseIf
:: Region
-> T_ElseIf
-> T_MElseIf
sem_MElseIf_MElseIf :: Region -> T_ElseIf -> T_MElseIf
sem_MElseIf_MElseIf Region
pos_ T_ElseIf
elif_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpos :: Region
_lhsOisMultiline :: Bool
_lhsOcopy :: MElseIf
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_elifOcomments :: ([MToken])
_elifOforceMultiline :: Bool
_elifOindent :: Int
_elifOppconf :: PrettyPrintConfig
_elifIcomments :: ([MToken])
_elifIcopy :: ElseIf
_elifIisMultiline :: Bool
_elifIpretty :: Doc
_lhsOpos :: Region
_lhsOpos =
( Region
pos_
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_elifIisMultiline
)
_copy :: MElseIf
_copy =
( Region -> (MExpr, Block) -> MElseIf
MElseIf Region
pos_ (MExpr, Block)
_elifIcopy
)
_lhsOcopy :: MElseIf
_lhsOcopy =
( MElseIf
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_elifIcomments
)
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
_elifIpretty
)
_elifOcomments :: [MToken]
_elifOcomments =
( [MToken]
_lhsIcomments
)
_elifOforceMultiline :: Bool
_elifOforceMultiline =
( Bool
_lhsIforceMultiline
)
_elifOindent :: Int
_elifOindent =
( Int
_lhsIindent
)
_elifOppconf :: PrettyPrintConfig
_elifOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_elifIcomments, (MExpr, Block)
_elifIcopy, Bool
_elifIisMultiline, Doc
_elifIpretty) =
T_ElseIf
elif_ [MToken]
_elifOcomments Bool
_elifOforceMultiline Int
_elifOindent PrettyPrintConfig
_elifOppconf
in
([MToken]
_lhsOcomments, MElseIf
_lhsOcopy, Bool
_lhsOisMultiline, Region
_lhsOpos, Doc
_lhsOpretty)
)
)
sem_MExpr
:: MExpr
-> T_MExpr
sem_MExpr :: MExpr -> T_MExpr
sem_MExpr (MExpr Region
_pos Expr
_expr) =
(Region -> T_Expr -> T_MExpr
sem_MExpr_MExpr Region
_pos (Expr -> T_Expr
sem_Expr Expr
_expr))
type T_MExpr =
([MToken])
-> Bool
-> Int
-> Bool
-> OperatorLevel
-> PrettyPrintConfig
-> (([MToken]), MExpr, Bool, Bool, Bool, Bool, Region, OperatorLevel, Doc)
data Inh_MExpr = Inh_MExpr { :: ([MToken]), Inh_MExpr -> Bool
forceMultiline_Inh_MExpr :: Bool, Inh_MExpr -> Int
indent_Inh_MExpr :: Int, Inh_MExpr -> Bool
parentOperatorAssociative_Inh_MExpr :: Bool, Inh_MExpr -> OperatorLevel
parentOperatorPrecedence_Inh_MExpr :: OperatorLevel, Inh_MExpr -> PrettyPrintConfig
ppconf_Inh_MExpr :: PrettyPrintConfig}
data Syn_MExpr = Syn_MExpr { :: ([MToken]), Syn_MExpr -> MExpr
copy_Syn_MExpr :: MExpr, Syn_MExpr -> Bool
endsWithPrefixExpression_Syn_MExpr :: Bool, Syn_MExpr -> Bool
isAssociative_Syn_MExpr :: Bool, Syn_MExpr -> Bool
isLiteral_Syn_MExpr :: Bool, Syn_MExpr -> Bool
isMultiline_Syn_MExpr :: Bool, Syn_MExpr -> Region
pos_Syn_MExpr :: Region, Syn_MExpr -> OperatorLevel
precedence_Syn_MExpr :: OperatorLevel, Syn_MExpr -> Doc
pretty_Syn_MExpr :: Doc}
wrap_MExpr
:: T_MExpr
-> Inh_MExpr
-> Syn_MExpr
wrap_MExpr :: T_MExpr -> Inh_MExpr -> Syn_MExpr
wrap_MExpr T_MExpr
sem (Inh_MExpr [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent Bool
_lhsIparentOperatorAssociative OperatorLevel
_lhsIparentOperatorPrecedence PrettyPrintConfig
_lhsIppconf) =
( let
([MToken]
_lhsOcomments, MExpr
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisAssociative, Bool
_lhsOisLiteral, Bool
_lhsOisMultiline, Region
_lhsOpos, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty) = T_MExpr
sem [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent Bool
_lhsIparentOperatorAssociative OperatorLevel
_lhsIparentOperatorPrecedence PrettyPrintConfig
_lhsIppconf
in
([MToken]
-> MExpr
-> Bool
-> Bool
-> Bool
-> Bool
-> Region
-> OperatorLevel
-> Doc
-> Syn_MExpr
Syn_MExpr [MToken]
_lhsOcomments MExpr
_lhsOcopy Bool
_lhsOendsWithPrefixExpression Bool
_lhsOisAssociative Bool
_lhsOisLiteral Bool
_lhsOisMultiline Region
_lhsOpos OperatorLevel
_lhsOprecedence Doc
_lhsOpretty)
)
sem_MExpr_MExpr
:: Region
-> T_Expr
-> T_MExpr
sem_MExpr_MExpr :: Region -> T_Expr -> T_MExpr
sem_MExpr_MExpr Region
pos_ T_Expr
expr_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIparentOperatorAssociative
OperatorLevel
_lhsIparentOperatorPrecedence
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpos :: Region
_lhsOendsWithPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_exprOstatRegion :: Region
_lhsOisAssociative :: Bool
_lhsOisLiteral :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOcopy :: MExpr
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_exprOcomments :: ([MToken])
_exprOforceMultiline :: Bool
_exprOindent :: Int
_exprOparentOperatorAssociative :: Bool
_exprOparentOperatorPrecedence :: OperatorLevel
_exprOppconf :: PrettyPrintConfig
_exprIcomments :: ([MToken])
_exprIcopy :: Expr
_exprIendsWithPrefixExpression :: Bool
_exprIisAssociative :: Bool
_exprIisLiteral :: Bool
_exprIisMultiline :: Bool
_exprIprecedence :: OperatorLevel
_exprIpretty :: Doc
_lhsOpos :: Region
_lhsOpos =
( Region
pos_
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
_exprIendsWithPrefixExpression
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_exprIisMultiline
)
_exprOstatRegion :: Region
_exprOstatRegion =
( Region
pos_
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
_exprIisAssociative
)
_lhsOisLiteral :: Bool
_lhsOisLiteral =
( Bool
_exprIisLiteral
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
_exprIprecedence
)
_copy :: MExpr
_copy =
( Region -> Expr -> MExpr
MExpr Region
pos_ Expr
_exprIcopy
)
_lhsOcopy :: MExpr
_lhsOcopy =
( MExpr
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_exprIcomments
)
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
_exprIpretty
)
_exprOcomments :: [MToken]
_exprOcomments =
( [MToken]
_lhsIcomments
)
_exprOforceMultiline :: Bool
_exprOforceMultiline =
( Bool
_lhsIforceMultiline
)
_exprOindent :: Int
_exprOindent =
( Int
_lhsIindent
)
_exprOparentOperatorAssociative :: Bool
_exprOparentOperatorAssociative =
( Bool
_lhsIparentOperatorAssociative
)
_exprOparentOperatorPrecedence :: OperatorLevel
_exprOparentOperatorPrecedence =
( OperatorLevel
_lhsIparentOperatorPrecedence
)
_exprOppconf :: PrettyPrintConfig
_exprOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_exprIcomments, Expr
_exprIcopy, Bool
_exprIendsWithPrefixExpression, Bool
_exprIisAssociative, Bool
_exprIisLiteral, Bool
_exprIisMultiline, OperatorLevel
_exprIprecedence, Doc
_exprIpretty) =
T_Expr
expr_ [MToken]
_exprOcomments Bool
_exprOforceMultiline Int
_exprOindent Bool
_exprOparentOperatorAssociative OperatorLevel
_exprOparentOperatorPrecedence PrettyPrintConfig
_exprOppconf Region
_exprOstatRegion
in
([MToken]
_lhsOcomments, MExpr
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisAssociative, Bool
_lhsOisLiteral, Bool
_lhsOisMultiline, Region
_lhsOpos, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_MExprList
:: MExprList
-> T_MExprList
sem_MExprList :: [MExpr] -> T_MExprList
sem_MExprList [MExpr]
list =
(forall (t :: * -> *) a b.
Foldable t =>
(a -> b -> b) -> b -> t a -> b
Prelude.foldr T_MExpr -> T_MExprList -> T_MExprList
sem_MExprList_Cons T_MExprList
sem_MExprList_Nil (forall a b. (a -> b) -> [a] -> [b]
Prelude.map MExpr -> T_MExpr
sem_MExpr [MExpr]
list))
type T_MExprList =
([MToken])
-> Bool
-> Int
-> PrettyPrintConfig
-> Bool
-> (([MToken]), MExprList, Bool, Bool, Bool, Region, OperatorLevel, Doc)
data Inh_MExprList = Inh_MExprList { :: ([MToken]), Inh_MExprList -> Bool
forceMultiline_Inh_MExprList :: Bool, Inh_MExprList -> Int
indent_Inh_MExprList :: Int, Inh_MExprList -> PrettyPrintConfig
ppconf_Inh_MExprList :: PrettyPrintConfig, Inh_MExprList -> Bool
someElementsInListAreMultiline_Inh_MExprList :: Bool}
data Syn_MExprList = Syn_MExprList { :: ([MToken]), Syn_MExprList -> [MExpr]
copy_Syn_MExprList :: MExprList, Syn_MExprList -> Bool
isAssociative_Syn_MExprList :: Bool, Syn_MExprList -> Bool
isLast_Syn_MExprList :: Bool, Syn_MExprList -> Bool
isMultiline_Syn_MExprList :: Bool, Syn_MExprList -> Region
pos_Syn_MExprList :: Region, Syn_MExprList -> OperatorLevel
precedence_Syn_MExprList :: OperatorLevel, Syn_MExprList -> Doc
pretty_Syn_MExprList :: Doc}
wrap_MExprList
:: T_MExprList
-> Inh_MExprList
-> Syn_MExprList
wrap_MExprList :: T_MExprList -> Inh_MExprList -> Syn_MExprList
wrap_MExprList T_MExprList
sem (Inh_MExprList [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf Bool
_lhsIsomeElementsInListAreMultiline) =
( let
([MToken]
_lhsOcomments, [MExpr]
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisLast, Bool
_lhsOisMultiline, Region
_lhsOpos, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty) = T_MExprList
sem [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf Bool
_lhsIsomeElementsInListAreMultiline
in
([MToken]
-> [MExpr]
-> Bool
-> Bool
-> Bool
-> Region
-> OperatorLevel
-> Doc
-> Syn_MExprList
Syn_MExprList [MToken]
_lhsOcomments [MExpr]
_lhsOcopy Bool
_lhsOisAssociative Bool
_lhsOisLast Bool
_lhsOisMultiline Region
_lhsOpos OperatorLevel
_lhsOprecedence Doc
_lhsOpretty)
)
sem_MExprList_Cons
:: T_MExpr
-> T_MExprList
-> T_MExprList
sem_MExprList_Cons :: T_MExpr -> T_MExprList -> T_MExprList
sem_MExprList_Cons T_MExpr
hd_ T_MExprList
tl_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf
Bool
_lhsIsomeElementsInListAreMultiline ->
( let
_lhsOpretty :: Doc
_hdOcomments :: ([MToken])
_tlOcomments :: ([MToken])
_lhsOcomments :: ([MToken])
_lhsOpos :: Region
_lhsOisLast :: Bool
_hdOparentOperatorPrecedence :: OperatorLevel
_hdOparentOperatorAssociative :: Bool
_tlOsomeElementsInListAreMultiline :: Bool
_lhsOisAssociative :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOcopy :: MExprList
_lhsOisMultiline :: Bool
_hdOforceMultiline :: Bool
_hdOindent :: Int
_hdOppconf :: PrettyPrintConfig
_tlOforceMultiline :: Bool
_tlOindent :: Int
_tlOppconf :: PrettyPrintConfig
_hdIcomments :: ([MToken])
_hdIcopy :: MExpr
_hdIendsWithPrefixExpression :: Bool
_hdIisAssociative :: Bool
_hdIisLiteral :: Bool
_hdIisMultiline :: Bool
_hdIpos :: Region
_hdIprecedence :: OperatorLevel
_hdIpretty :: Doc
_tlIcomments :: ([MToken])
_tlIcopy :: MExprList
_tlIisAssociative :: Bool
_tlIisLast :: Bool
_tlIisMultiline :: Bool
_tlIpos :: Region
_tlIprecedence :: OperatorLevel
_tlIpretty :: Doc
_lhsOpretty :: Doc
_lhsOpretty =
( if Bool
_isMultiline then Doc
_prettyMultiLine else Doc
_prettySingleLine
)
_prettySingleLine :: Doc
_prettySingleLine =
( Doc
_hdIpretty
Doc -> Doc -> Doc
<> Doc
_comma
Doc -> Doc -> Doc
<> Doc
_tlIpretty
)
_prettyMultiLine :: Doc
_prettyMultiLine =
( PrettyPrintConfig -> Int -> [MToken] -> Doc
renderMLComments PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsBeforeLine)
Doc -> Doc -> Doc
$+$ PrettyPrintConfig -> Int -> Doc -> Doc
indent PrettyPrintConfig
_lhsIppconf Int
_lhsIindent Doc
_hdIpretty
Doc -> Doc -> Doc
<> Doc
_comma
Doc -> Doc -> Doc
<-> PrettyPrintConfig -> Int -> [MToken] -> Doc
renderSLComments PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsAfter)
Doc -> Doc -> Doc
$+$ Doc
_tlIpretty
)
_comma :: Doc
_comma =
( if Bool
_tlIisLast
then Doc
empty
else
(if PrettyPrintConfig -> Bool
spaceBeforeComma PrettyPrintConfig
_lhsIppconf then Char -> Doc
zchr Char
' ' else Doc
empty)
Doc -> Doc -> Doc
<> Char -> Doc
zchr Char
','
Doc -> Doc -> Doc
<> (if Bool -> Bool
not Bool
_isMultiline Bool -> Bool -> Bool
&& PrettyPrintConfig -> Bool
spaceAfterComma PrettyPrintConfig
_lhsIppconf then Char -> Doc
zchr Char
' ' else Doc
empty)
)
_commentsBeforeLine :: ([MToken], [MToken])
_commentsBeforeLine =
( forall a. (a -> Bool) -> [a] -> ([a], [a])
span (\(MToken Region
pos' Token
_) -> Region
pos' Region -> Region -> Bool
`before` Region
_hdIpos) [MToken]
_lhsIcomments
)
_hdOcomments :: [MToken]
_hdOcomments =
( forall a b. (a, b) -> b
snd ([MToken], [MToken])
_commentsBeforeLine
)
_commentsAfter :: ([MToken], [MToken])
_commentsAfter =
( forall a. (a -> Bool) -> [a] -> ([a], [a])
span (\(MToken Region
pos' Token
_) -> Region
pos' Region -> Region -> Bool
`before` Region
_tlIpos) [MToken]
_hdIcomments
)
_tlOcomments :: [MToken]
_tlOcomments =
( forall a b. (a, b) -> b
snd ([MToken], [MToken])
_commentsAfter
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_tlIcomments
)
_lhsOpos :: Region
_lhsOpos =
( Region
_hdIpos
)
_lhsOisLast :: Bool
_lhsOisLast =
( Bool
False
)
_hdOparentOperatorPrecedence :: OperatorLevel
_hdOparentOperatorPrecedence =
( OperatorLevel
TopLevelExpression
)
_hdOparentOperatorAssociative :: Bool
_hdOparentOperatorAssociative =
( Bool
True
)
_isMultiline :: Bool
_isMultiline =
( Bool
_lhsIforceMultiline
Bool -> Bool -> Bool
|| Bool -> Bool
not (forall (t :: * -> *) a. Foldable t => t a -> Bool
null forall a b. (a -> b) -> a -> b
$ forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsBeforeLine)
Bool -> Bool -> Bool
|| Bool -> Bool
not (forall (t :: * -> *) a. Foldable t => t a -> Bool
null forall a b. (a -> b) -> a -> b
$ forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsAfter)
Bool -> Bool -> Bool
|| Bool
_lhsIsomeElementsInListAreMultiline
Bool -> Bool -> Bool
|| Bool
_hdIisMultiline
Bool -> Bool -> Bool
|| Bool
_tlIisMultiline
)
_tlOsomeElementsInListAreMultiline :: Bool
_tlOsomeElementsInListAreMultiline =
( Bool
_lhsIsomeElementsInListAreMultiline
Bool -> Bool -> Bool
|| Bool
_hdIisMultiline
Bool -> Bool -> Bool
|| Bool -> Bool
not (forall (t :: * -> *) a. Foldable t => t a -> Bool
null forall a b. (a -> b) -> a -> b
$ forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsBeforeLine)
Bool -> Bool -> Bool
|| Bool -> Bool
not (forall (t :: * -> *) a. Foldable t => t a -> Bool
null forall a b. (a -> b) -> a -> b
$ forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsAfter)
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
_hdIisAssociative Bool -> Bool -> Bool
&& Bool
_tlIisAssociative
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( (forall a. Ord a => a -> a -> a
min OperatorLevel
_hdIprecedence OperatorLevel
_tlIprecedence)
)
_copy :: [MExpr]
_copy =
( (:) MExpr
_hdIcopy [MExpr]
_tlIcopy
)
_lhsOcopy :: [MExpr]
_lhsOcopy =
( [MExpr]
_copy
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_isMultiline
)
_hdOforceMultiline :: Bool
_hdOforceMultiline =
( Bool
_lhsIforceMultiline
)
_hdOindent :: Int
_hdOindent =
( Int
_lhsIindent
)
_hdOppconf :: PrettyPrintConfig
_hdOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_tlOforceMultiline :: Bool
_tlOforceMultiline =
( Bool
_lhsIforceMultiline
)
_tlOindent :: Int
_tlOindent =
( Int
_lhsIindent
)
_tlOppconf :: PrettyPrintConfig
_tlOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_hdIcomments, MExpr
_hdIcopy, Bool
_hdIendsWithPrefixExpression, Bool
_hdIisAssociative, Bool
_hdIisLiteral, Bool
_hdIisMultiline, Region
_hdIpos, OperatorLevel
_hdIprecedence, Doc
_hdIpretty) =
T_MExpr
hd_ [MToken]
_hdOcomments Bool
_hdOforceMultiline Int
_hdOindent Bool
_hdOparentOperatorAssociative OperatorLevel
_hdOparentOperatorPrecedence PrettyPrintConfig
_hdOppconf
([MToken]
_tlIcomments, [MExpr]
_tlIcopy, Bool
_tlIisAssociative, Bool
_tlIisLast, Bool
_tlIisMultiline, Region
_tlIpos, OperatorLevel
_tlIprecedence, Doc
_tlIpretty) =
T_MExprList
tl_ [MToken]
_tlOcomments Bool
_tlOforceMultiline Int
_tlOindent PrettyPrintConfig
_tlOppconf Bool
_tlOsomeElementsInListAreMultiline
in
([MToken]
_lhsOcomments, [MExpr]
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisLast, Bool
_lhsOisMultiline, Region
_lhsOpos, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_MExprList_Nil :: T_MExprList
sem_MExprList_Nil :: T_MExprList
sem_MExprList_Nil =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf
Bool
_lhsIsomeElementsInListAreMultiline ->
( let
_lhsOpretty :: Doc
_lhsOpos :: Region
_lhsOisMultiline :: Bool
_lhsOisLast :: Bool
_lhsOisAssociative :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOcopy :: MExprList
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
empty
)
_lhsOpos :: Region
_lhsOpos =
( Region
emptyRg
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOisLast :: Bool
_lhsOisLast =
( Bool
True
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel8
)
_copy :: [a]
_copy =
( []
)
_lhsOcopy :: [MExpr]
_lhsOcopy =
( forall a. [a]
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, [MExpr]
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisLast, Bool
_lhsOisMultiline, Region
_lhsOpos, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_MStat
:: MStat
-> T_MStat
sem_MStat :: MStat -> T_MStat
sem_MStat (MStat Region
_pos Stat
_stat) =
(Region -> T_Stat -> T_MStat
sem_MStat_MStat Region
_pos (Stat -> T_Stat
sem_Stat Stat
_stat))
type T_MStat =
([MToken])
-> Bool
-> Int
-> Bool
-> PrettyPrintConfig
-> Bool
-> (([MToken]), MStat, Bool, Bool, Region, Doc, Bool, Int)
data Inh_MStat = Inh_MStat { :: ([MToken]), Inh_MStat -> Bool
forceMultiline_Inh_MStat :: Bool, Inh_MStat -> Int
indent_Inh_MStat :: Int, Inh_MStat -> Bool
isLastStatement_Inh_MStat :: Bool, Inh_MStat -> PrettyPrintConfig
ppconf_Inh_MStat :: PrettyPrintConfig, Inh_MStat -> Bool
wouldBeAmbiguousWithoutSemicolon_Inh_MStat :: Bool}
data Syn_MStat = Syn_MStat { :: ([MToken]), Syn_MStat -> MStat
copy_Syn_MStat :: MStat, Syn_MStat -> Bool
endsWithPrefixExpression_Syn_MStat :: Bool, Syn_MStat -> Bool
isMultiline_Syn_MStat :: Bool, Syn_MStat -> Region
pos_Syn_MStat :: Region, Syn_MStat -> Doc
pretty_Syn_MStat :: Doc, Syn_MStat -> Bool
startsWithExprPrefixExpression_Syn_MStat :: Bool, Syn_MStat -> Int
statementCount_Syn_MStat :: Int}
wrap_MStat
:: T_MStat
-> Inh_MStat
-> Syn_MStat
wrap_MStat :: T_MStat -> Inh_MStat -> Syn_MStat
wrap_MStat T_MStat
sem (Inh_MStat [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent Bool
_lhsIisLastStatement PrettyPrintConfig
_lhsIppconf Bool
_lhsIwouldBeAmbiguousWithoutSemicolon) =
( let
([MToken]
_lhsOcomments, MStat
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisMultiline, Region
_lhsOpos, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression, Int
_lhsOstatementCount) = T_MStat
sem [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent Bool
_lhsIisLastStatement PrettyPrintConfig
_lhsIppconf Bool
_lhsIwouldBeAmbiguousWithoutSemicolon
in
([MToken]
-> MStat
-> Bool
-> Bool
-> Region
-> Doc
-> Bool
-> Int
-> Syn_MStat
Syn_MStat [MToken]
_lhsOcomments MStat
_lhsOcopy Bool
_lhsOendsWithPrefixExpression Bool
_lhsOisMultiline Region
_lhsOpos Doc
_lhsOpretty Bool
_lhsOstartsWithExprPrefixExpression Int
_lhsOstatementCount)
)
sem_MStat_MStat
:: Region
-> T_Stat
-> T_MStat
sem_MStat_MStat :: Region -> T_Stat -> T_MStat
sem_MStat_MStat Region
pos_ T_Stat
stat_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIisLastStatement
PrettyPrintConfig
_lhsIppconf
Bool
_lhsIwouldBeAmbiguousWithoutSemicolon ->
( let
_lhsOpos :: Region
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOendsWithPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_statOstatRegion :: Region
_statOwouldBeAmbiguousWithoutSemicolon :: Bool
_lhsOstatementCount :: Int
_lhsOcopy :: MStat
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_statOcomments :: ([MToken])
_statOforceMultiline :: Bool
_statOindent :: Int
_statOisLastStatement :: Bool
_statOppconf :: PrettyPrintConfig
_statIcomments :: ([MToken])
_statIcopy :: Stat
_statIendsWithPrefixExpression :: Bool
_statIisMultiline :: Bool
_statIpretty :: Doc
_statIstartsWithExprPrefixExpression :: Bool
_lhsOpos :: Region
_lhsOpos =
( Region
pos_
)
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOstartsWithExprPrefixExpression =
( Bool
_statIstartsWithExprPrefixExpression
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
_statIendsWithPrefixExpression
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_statIisMultiline
)
_statOstatRegion :: Region
_statOstatRegion =
( Region
pos_
)
_statOwouldBeAmbiguousWithoutSemicolon :: Bool
_statOwouldBeAmbiguousWithoutSemicolon =
( Bool
_lhsIwouldBeAmbiguousWithoutSemicolon
)
_lhsOstatementCount :: Int
_lhsOstatementCount =
( Int
1
)
_copy :: MStat
_copy =
( Region -> Stat -> MStat
MStat Region
pos_ Stat
_statIcopy
)
_lhsOcopy :: MStat
_lhsOcopy =
( MStat
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_statIcomments
)
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
_statIpretty
)
_statOcomments :: [MToken]
_statOcomments =
( [MToken]
_lhsIcomments
)
_statOforceMultiline :: Bool
_statOforceMultiline =
( Bool
_lhsIforceMultiline
)
_statOindent :: Int
_statOindent =
( Int
_lhsIindent
)
_statOisLastStatement :: Bool
_statOisLastStatement =
( Bool
_lhsIisLastStatement
)
_statOppconf :: PrettyPrintConfig
_statOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_statIcomments, Stat
_statIcopy, Bool
_statIendsWithPrefixExpression, Bool
_statIisMultiline, Doc
_statIpretty, Bool
_statIstartsWithExprPrefixExpression) =
T_Stat
stat_ [MToken]
_statOcomments Bool
_statOforceMultiline Int
_statOindent Bool
_statOisLastStatement PrettyPrintConfig
_statOppconf Region
_statOstatRegion Bool
_statOwouldBeAmbiguousWithoutSemicolon
in
([MToken]
_lhsOcomments, MStat
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisMultiline, Region
_lhsOpos, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression, Int
_lhsOstatementCount)
)
)
sem_MStatList
:: MStatList
-> T_MStatList
sem_MStatList :: [MStat] -> T_MStatList
sem_MStatList [MStat]
list =
(forall (t :: * -> *) a b.
Foldable t =>
(a -> b -> b) -> b -> t a -> b
Prelude.foldr T_MStat -> T_MStatList -> T_MStatList
sem_MStatList_Cons T_MStatList
sem_MStatList_Nil (forall a b. (a -> b) -> [a] -> [b]
Prelude.map MStat -> T_MStat
sem_MStat [MStat]
list))
type T_MStatList =
([MToken])
-> Bool
-> Int
-> PrettyPrintConfig
-> Region
-> (([MToken]), MStatList, Bool, Bool, Doc, Bool, Int)
data Inh_MStatList = Inh_MStatList { :: ([MToken]), Inh_MStatList -> Bool
forceMultiline_Inh_MStatList :: Bool, Inh_MStatList -> Int
indent_Inh_MStatList :: Int, Inh_MStatList -> PrettyPrintConfig
ppconf_Inh_MStatList :: PrettyPrintConfig, Inh_MStatList -> Region
statRegion_Inh_MStatList :: Region}
data Syn_MStatList = Syn_MStatList { :: ([MToken]), Syn_MStatList -> [MStat]
copy_Syn_MStatList :: MStatList, Syn_MStatList -> Bool
isLast_Syn_MStatList :: Bool, Syn_MStatList -> Bool
isMultiline_Syn_MStatList :: Bool, Syn_MStatList -> Doc
pretty_Syn_MStatList :: Doc, Syn_MStatList -> Bool
startsWithExprPrefixExpression_Syn_MStatList :: Bool, Syn_MStatList -> Int
statementCount_Syn_MStatList :: Int}
wrap_MStatList
:: T_MStatList
-> Inh_MStatList
-> Syn_MStatList
wrap_MStatList :: T_MStatList -> Inh_MStatList -> Syn_MStatList
wrap_MStatList T_MStatList
sem (Inh_MStatList [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf Region
_lhsIstatRegion) =
( let
([MToken]
_lhsOcomments, [MStat]
_lhsOcopy, Bool
_lhsOisLast, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression, Int
_lhsOstatementCount) = T_MStatList
sem [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf Region
_lhsIstatRegion
in
([MToken]
-> [MStat] -> Bool -> Bool -> Doc -> Bool -> Int -> Syn_MStatList
Syn_MStatList [MToken]
_lhsOcomments [MStat]
_lhsOcopy Bool
_lhsOisLast Bool
_lhsOisMultiline Doc
_lhsOpretty Bool
_lhsOstartsWithExprPrefixExpression Int
_lhsOstatementCount)
)
sem_MStatList_Cons
:: T_MStat
-> T_MStatList
-> T_MStatList
sem_MStatList_Cons :: T_MStat -> T_MStatList -> T_MStatList
sem_MStatList_Cons T_MStat
hd_ T_MStatList
tl_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion ->
( let
_lhsOpretty :: Doc
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOisLast :: Bool
_hdOcomments :: ([MToken])
_tlOcomments :: ([MToken])
_lhsOcomments :: ([MToken])
_hdOisLastStatement :: Bool
_hdOwouldBeAmbiguousWithoutSemicolon :: Bool
_hdOforceMultiline :: Bool
_lhsOstatementCount :: Int
_lhsOcopy :: MStatList
_lhsOisMultiline :: Bool
_hdOindent :: Int
_hdOppconf :: PrettyPrintConfig
_tlOforceMultiline :: Bool
_tlOindent :: Int
_tlOppconf :: PrettyPrintConfig
_tlOstatRegion :: Region
_hdIcomments :: ([MToken])
_hdIcopy :: MStat
_hdIendsWithPrefixExpression :: Bool
_hdIisMultiline :: Bool
_hdIpos :: Region
_hdIpretty :: Doc
_hdIstartsWithExprPrefixExpression :: Bool
_hdIstatementCount :: Int
_tlIcomments :: ([MToken])
_tlIcopy :: MStatList
_tlIisLast :: Bool
_tlIisMultiline :: Bool
_tlIpretty :: Doc
_tlIstartsWithExprPrefixExpression :: Bool
_tlIstatementCount :: Int
_lhsOpretty :: Doc
_lhsOpretty =
( PrettyPrintConfig -> Int -> [MToken] -> Doc
renderMLComments PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsBeforeLine)
Doc -> Doc -> Doc
$+$ PrettyPrintConfig -> Int -> Doc -> Doc
indent PrettyPrintConfig
_lhsIppconf Int
_lhsIindent Doc
_hdIpretty
Doc -> Doc -> Doc
<-> PrettyPrintConfig -> Int -> [MToken] -> Doc
renderSLComments PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsAfter)
Doc -> Doc -> Doc
<> Doc
_addNewline
Doc -> Doc -> Doc
$+$ Doc
_tlIpretty
)
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOstartsWithExprPrefixExpression =
( Bool
_hdIstartsWithExprPrefixExpression
)
_lhsOisLast :: Bool
_lhsOisLast =
( Bool
False
)
_isMultiline :: Bool
_isMultiline =
( Bool
_hdIisMultiline
Bool -> Bool -> Bool
|| Bool
_tlIisMultiline
Bool -> Bool -> Bool
|| Bool -> Bool
not (forall (t :: * -> *) a. Foldable t => t a -> Bool
null forall a b. (a -> b) -> a -> b
$ forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsBeforeLine)
Bool -> Bool -> Bool
|| Bool -> Bool
not (forall (t :: * -> *) a. Foldable t => t a -> Bool
null forall a b. (a -> b) -> a -> b
$ forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsAfter)
)
_addNewline :: Doc
_addNewline =
( if Bool -> Bool
not Bool
_tlIisLast Bool -> Bool -> Bool
&& Bool
_hdIisMultiline then Char -> Doc
zchr Char
'\n' else Doc
empty
)
_commentsBeforeLine :: ([MToken], [MToken])
_commentsBeforeLine =
( forall a. (a -> Bool) -> [a] -> ([a], [a])
span (\(MToken Region
pos' Token
_) -> Region
pos' Region -> Region -> Bool
`before` Region
_hdIpos) [MToken]
_lhsIcomments
)
_hdOcomments :: [MToken]
_hdOcomments =
( forall a b. (a, b) -> b
snd ([MToken], [MToken])
_commentsBeforeLine
)
_commentsAfter :: ([MToken], [MToken])
_commentsAfter =
( forall a. (a -> Bool) -> [a] -> ([a], [a])
span (\(MToken Region
pos' Token
_) -> Region
pos' Region -> Region -> Bool
`beforeOrOnLine` Region
_hdIpos) [MToken]
_hdIcomments
)
_tlOcomments :: [MToken]
_tlOcomments =
( forall a b. (a, b) -> b
snd ([MToken], [MToken])
_commentsAfter
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_tlIcomments
)
_hdOisLastStatement :: Bool
_hdOisLastStatement =
( Bool
_tlIisLast
)
_hdOwouldBeAmbiguousWithoutSemicolon :: Bool
_hdOwouldBeAmbiguousWithoutSemicolon =
( Bool
_hdIendsWithPrefixExpression Bool -> Bool -> Bool
&& Bool
_tlIstartsWithExprPrefixExpression
)
_hdOforceMultiline :: Bool
_hdOforceMultiline =
( [MToken] -> Bool
commentsForceMultiline forall a b. (a -> b) -> a -> b
$ forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsBeforeLine
)
_lhsOstatementCount :: Int
_lhsOstatementCount =
( Int
_hdIstatementCount forall a. Num a => a -> a -> a
+ Int
_tlIstatementCount
)
_copy :: [MStat]
_copy =
( (:) MStat
_hdIcopy [MStat]
_tlIcopy
)
_lhsOcopy :: [MStat]
_lhsOcopy =
( [MStat]
_copy
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_isMultiline
)
_hdOindent :: Int
_hdOindent =
( Int
_lhsIindent
)
_hdOppconf :: PrettyPrintConfig
_hdOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_tlOforceMultiline :: Bool
_tlOforceMultiline =
( Bool
_lhsIforceMultiline
)
_tlOindent :: Int
_tlOindent =
( Int
_lhsIindent
)
_tlOppconf :: PrettyPrintConfig
_tlOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_tlOstatRegion :: Region
_tlOstatRegion =
( Region
_lhsIstatRegion
)
([MToken]
_hdIcomments, MStat
_hdIcopy, Bool
_hdIendsWithPrefixExpression, Bool
_hdIisMultiline, Region
_hdIpos, Doc
_hdIpretty, Bool
_hdIstartsWithExprPrefixExpression, Int
_hdIstatementCount) =
T_MStat
hd_ [MToken]
_hdOcomments Bool
_hdOforceMultiline Int
_hdOindent Bool
_hdOisLastStatement PrettyPrintConfig
_hdOppconf Bool
_hdOwouldBeAmbiguousWithoutSemicolon
([MToken]
_tlIcomments, [MStat]
_tlIcopy, Bool
_tlIisLast, Bool
_tlIisMultiline, Doc
_tlIpretty, Bool
_tlIstartsWithExprPrefixExpression, Int
_tlIstatementCount) =
T_MStatList
tl_ [MToken]
_tlOcomments Bool
_tlOforceMultiline Int
_tlOindent PrettyPrintConfig
_tlOppconf Region
_tlOstatRegion
in
([MToken]
_lhsOcomments, [MStat]
_lhsOcopy, Bool
_lhsOisLast, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression, Int
_lhsOstatementCount)
)
)
sem_MStatList_Nil :: T_MStatList
sem_MStatList_Nil :: T_MStatList
sem_MStatList_Nil =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion ->
( let
_lhsOpretty :: Doc
_lhsOstatementCount :: Int
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_lhsOisLast :: Bool
_lhsOcopy :: MStatList
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
empty
)
_lhsOstatementCount :: Int
_lhsOstatementCount =
( Int
0
)
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOstartsWithExprPrefixExpression =
( Bool
False
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOisLast :: Bool
_lhsOisLast =
( Bool
True
)
_copy :: [a]
_copy =
( []
)
_lhsOcopy :: [MStat]
_lhsOcopy =
( forall a. [a]
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, [MStat]
_lhsOcopy, Bool
_lhsOisLast, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression, Int
_lhsOstatementCount)
)
)
sem_MaybeMExpr
:: MaybeMExpr
-> T_MaybeMExpr
sem_MaybeMExpr :: Maybe MExpr -> T_MaybeMExpr
sem_MaybeMExpr (Prelude.Just MExpr
x) =
(T_MExpr -> T_MaybeMExpr
sem_MaybeMExpr_Just (MExpr -> T_MExpr
sem_MExpr MExpr
x))
sem_MaybeMExpr Maybe MExpr
Prelude.Nothing =
T_MaybeMExpr
sem_MaybeMExpr_Nothing
type T_MaybeMExpr =
([MToken])
-> Bool
-> Int
-> PrettyPrintConfig
-> (([MToken]), MaybeMExpr, Bool, Bool, Bool, Bool, OperatorLevel, Doc)
data Inh_MaybeMExpr = Inh_MaybeMExpr { :: ([MToken]), Inh_MaybeMExpr -> Bool
forceMultiline_Inh_MaybeMExpr :: Bool, Inh_MaybeMExpr -> Int
indent_Inh_MaybeMExpr :: Int, Inh_MaybeMExpr -> PrettyPrintConfig
ppconf_Inh_MaybeMExpr :: PrettyPrintConfig}
data Syn_MaybeMExpr = Syn_MaybeMExpr { :: ([MToken]), Syn_MaybeMExpr -> Maybe MExpr
copy_Syn_MaybeMExpr :: MaybeMExpr, Syn_MaybeMExpr -> Bool
endsWithPrefixExpression_Syn_MaybeMExpr :: Bool, Syn_MaybeMExpr -> Bool
isAssociative_Syn_MaybeMExpr :: Bool, Syn_MaybeMExpr -> Bool
isDefined_Syn_MaybeMExpr :: Bool, Syn_MaybeMExpr -> Bool
isMultiline_Syn_MaybeMExpr :: Bool, Syn_MaybeMExpr -> OperatorLevel
precedence_Syn_MaybeMExpr :: OperatorLevel, Syn_MaybeMExpr -> Doc
pretty_Syn_MaybeMExpr :: Doc}
wrap_MaybeMExpr
:: T_MaybeMExpr
-> Inh_MaybeMExpr
-> Syn_MaybeMExpr
wrap_MaybeMExpr :: T_MaybeMExpr -> Inh_MaybeMExpr -> Syn_MaybeMExpr
wrap_MaybeMExpr T_MaybeMExpr
sem (Inh_MaybeMExpr [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf) =
( let
([MToken]
_lhsOcomments, Maybe MExpr
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisAssociative, Bool
_lhsOisDefined, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty) = T_MaybeMExpr
sem [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf
in
([MToken]
-> Maybe MExpr
-> Bool
-> Bool
-> Bool
-> Bool
-> OperatorLevel
-> Doc
-> Syn_MaybeMExpr
Syn_MaybeMExpr [MToken]
_lhsOcomments Maybe MExpr
_lhsOcopy Bool
_lhsOendsWithPrefixExpression Bool
_lhsOisAssociative Bool
_lhsOisDefined Bool
_lhsOisMultiline OperatorLevel
_lhsOprecedence Doc
_lhsOpretty)
)
sem_MaybeMExpr_Just
:: T_MExpr
-> T_MaybeMExpr
sem_MaybeMExpr_Just :: T_MExpr -> T_MaybeMExpr
sem_MaybeMExpr_Just T_MExpr
just_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisDefined :: Bool
_lhsOendsWithPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_justOparentOperatorPrecedence :: OperatorLevel
_justOparentOperatorAssociative :: Bool
_lhsOisAssociative :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOcopy :: MaybeMExpr
_lhsOcomments :: ([MToken])
_justOcomments :: ([MToken])
_justOforceMultiline :: Bool
_justOindent :: Int
_justOppconf :: PrettyPrintConfig
_justIcomments :: ([MToken])
_justIcopy :: MExpr
_justIendsWithPrefixExpression :: Bool
_justIisAssociative :: Bool
_justIisLiteral :: Bool
_justIisMultiline :: Bool
_justIpos :: Region
_justIprecedence :: OperatorLevel
_justIpretty :: Doc
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
_justIpretty
)
_lhsOisDefined :: Bool
_lhsOisDefined =
( Bool
True
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
_justIendsWithPrefixExpression
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_justIisMultiline
)
_justOparentOperatorPrecedence :: OperatorLevel
_justOparentOperatorPrecedence =
( OperatorLevel
TopLevelExpression
)
_justOparentOperatorAssociative :: Bool
_justOparentOperatorAssociative =
( Bool
True
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
_justIisAssociative
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
_justIprecedence
)
_copy :: Maybe MExpr
_copy =
( forall a. a -> Maybe a
Just MExpr
_justIcopy
)
_lhsOcopy :: Maybe MExpr
_lhsOcopy =
( Maybe MExpr
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_justIcomments
)
_justOcomments :: [MToken]
_justOcomments =
( [MToken]
_lhsIcomments
)
_justOforceMultiline :: Bool
_justOforceMultiline =
( Bool
_lhsIforceMultiline
)
_justOindent :: Int
_justOindent =
( Int
_lhsIindent
)
_justOppconf :: PrettyPrintConfig
_justOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_justIcomments, MExpr
_justIcopy, Bool
_justIendsWithPrefixExpression, Bool
_justIisAssociative, Bool
_justIisLiteral, Bool
_justIisMultiline, Region
_justIpos, OperatorLevel
_justIprecedence, Doc
_justIpretty) =
T_MExpr
just_ [MToken]
_justOcomments Bool
_justOforceMultiline Int
_justOindent Bool
_justOparentOperatorAssociative OperatorLevel
_justOparentOperatorPrecedence PrettyPrintConfig
_justOppconf
in
([MToken]
_lhsOcomments, Maybe MExpr
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisAssociative, Bool
_lhsOisDefined, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_MaybeMExpr_Nothing :: T_MaybeMExpr
sem_MaybeMExpr_Nothing :: T_MaybeMExpr
sem_MaybeMExpr_Nothing =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisDefined :: Bool
_lhsOendsWithPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_lhsOisAssociative :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOcopy :: MaybeMExpr
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
empty
)
_lhsOisDefined :: Bool
_lhsOisDefined =
( Bool
False
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
False
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel8
)
_copy :: Maybe a
_copy =
( forall a. Maybe a
Nothing
)
_lhsOcopy :: Maybe MExpr
_lhsOcopy =
( forall a. Maybe a
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, Maybe MExpr
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisAssociative, Bool
_lhsOisDefined, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_PFExprSuffix
:: PFExprSuffix
-> T_PFExprSuffix
sem_PFExprSuffix :: PFExprSuffix -> T_PFExprSuffix
sem_PFExprSuffix (Call Args
_args) =
(T_Args -> T_PFExprSuffix
sem_PFExprSuffix_Call (Args -> T_Args
sem_Args Args
_args))
sem_PFExprSuffix (MetaCall MToken
_fn Args
_args) =
(MToken -> T_Args -> T_PFExprSuffix
sem_PFExprSuffix_MetaCall MToken
_fn (Args -> T_Args
sem_Args Args
_args))
sem_PFExprSuffix (ExprIndex MExpr
_index) =
(T_MExpr -> T_PFExprSuffix
sem_PFExprSuffix_ExprIndex (MExpr -> T_MExpr
sem_MExpr MExpr
_index))
sem_PFExprSuffix (DotIndex MToken
_index) =
(MToken -> T_PFExprSuffix
sem_PFExprSuffix_DotIndex MToken
_index)
type T_PFExprSuffix =
([MToken])
-> Bool
-> Int
-> PrettyPrintConfig
-> (([MToken]), PFExprSuffix, Bool, Bool, OperatorLevel, Doc)
data Inh_PFExprSuffix = Inh_PFExprSuffix { :: ([MToken]), Inh_PFExprSuffix -> Bool
forceMultiline_Inh_PFExprSuffix :: Bool, Inh_PFExprSuffix -> Int
indent_Inh_PFExprSuffix :: Int, Inh_PFExprSuffix -> PrettyPrintConfig
ppconf_Inh_PFExprSuffix :: PrettyPrintConfig}
data Syn_PFExprSuffix = Syn_PFExprSuffix { :: ([MToken]), Syn_PFExprSuffix -> PFExprSuffix
copy_Syn_PFExprSuffix :: PFExprSuffix, Syn_PFExprSuffix -> Bool
isAssociative_Syn_PFExprSuffix :: Bool, Syn_PFExprSuffix -> Bool
isMultiline_Syn_PFExprSuffix :: Bool, Syn_PFExprSuffix -> OperatorLevel
precedence_Syn_PFExprSuffix :: OperatorLevel, Syn_PFExprSuffix -> Doc
pretty_Syn_PFExprSuffix :: Doc}
wrap_PFExprSuffix
:: T_PFExprSuffix
-> Inh_PFExprSuffix
-> Syn_PFExprSuffix
wrap_PFExprSuffix :: T_PFExprSuffix -> Inh_PFExprSuffix -> Syn_PFExprSuffix
wrap_PFExprSuffix T_PFExprSuffix
sem (Inh_PFExprSuffix [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf) =
( let
([MToken]
_lhsOcomments, PFExprSuffix
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty) = T_PFExprSuffix
sem [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf
in
([MToken]
-> PFExprSuffix
-> Bool
-> Bool
-> OperatorLevel
-> Doc
-> Syn_PFExprSuffix
Syn_PFExprSuffix [MToken]
_lhsOcomments PFExprSuffix
_lhsOcopy Bool
_lhsOisAssociative Bool
_lhsOisMultiline OperatorLevel
_lhsOprecedence Doc
_lhsOpretty)
)
sem_PFExprSuffix_Call
:: T_Args
-> T_PFExprSuffix
sem_PFExprSuffix_Call :: T_Args -> T_PFExprSuffix
sem_PFExprSuffix_Call T_Args
args_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOisAssociative :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOcopy :: PFExprSuffix
_lhsOcomments :: ([MToken])
_argsOcomments :: ([MToken])
_argsOforceMultiline :: Bool
_argsOindent :: Int
_argsOppconf :: PrettyPrintConfig
_argsIcomments :: ([MToken])
_argsIcopy :: Args
_argsIisMultiline :: Bool
_argsIpretty :: Doc
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
_argsIpretty
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_argsIisMultiline
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel8
)
_copy :: PFExprSuffix
_copy =
( Args -> PFExprSuffix
Call Args
_argsIcopy
)
_lhsOcopy :: PFExprSuffix
_lhsOcopy =
( PFExprSuffix
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_argsIcomments
)
_argsOcomments :: [MToken]
_argsOcomments =
( [MToken]
_lhsIcomments
)
_argsOforceMultiline :: Bool
_argsOforceMultiline =
( Bool
_lhsIforceMultiline
)
_argsOindent :: Int
_argsOindent =
( Int
_lhsIindent
)
_argsOppconf :: PrettyPrintConfig
_argsOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_argsIcomments, Args
_argsIcopy, Bool
_argsIisMultiline, Doc
_argsIpretty) =
T_Args
args_ [MToken]
_argsOcomments Bool
_argsOforceMultiline Int
_argsOindent PrettyPrintConfig
_argsOppconf
in
([MToken]
_lhsOcomments, PFExprSuffix
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_PFExprSuffix_MetaCall
:: MToken
-> T_Args
-> T_PFExprSuffix
sem_PFExprSuffix_MetaCall :: MToken -> T_Args -> T_PFExprSuffix
sem_PFExprSuffix_MetaCall MToken
fn_ T_Args
args_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOisAssociative :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOcopy :: PFExprSuffix
_lhsOcomments :: ([MToken])
_argsOcomments :: ([MToken])
_argsOforceMultiline :: Bool
_argsOindent :: Int
_argsOppconf :: PrettyPrintConfig
_argsIcomments :: ([MToken])
_argsIcopy :: Args
_argsIisMultiline :: Bool
_argsIpretty :: Doc
_lhsOpretty :: Doc
_lhsOpretty =
( Char -> Doc
zchr Char
':' Doc -> Doc -> Doc
<> MToken -> Doc
tok MToken
fn_ Doc -> Doc -> Doc
<> Doc
_argsIpretty
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_argsIisMultiline
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel8
)
_copy :: PFExprSuffix
_copy =
( MToken -> Args -> PFExprSuffix
MetaCall MToken
fn_ Args
_argsIcopy
)
_lhsOcopy :: PFExprSuffix
_lhsOcopy =
( PFExprSuffix
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_argsIcomments
)
_argsOcomments :: [MToken]
_argsOcomments =
( [MToken]
_lhsIcomments
)
_argsOforceMultiline :: Bool
_argsOforceMultiline =
( Bool
_lhsIforceMultiline
)
_argsOindent :: Int
_argsOindent =
( Int
_lhsIindent
)
_argsOppconf :: PrettyPrintConfig
_argsOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_argsIcomments, Args
_argsIcopy, Bool
_argsIisMultiline, Doc
_argsIpretty) =
T_Args
args_ [MToken]
_argsOcomments Bool
_argsOforceMultiline Int
_argsOindent PrettyPrintConfig
_argsOppconf
in
([MToken]
_lhsOcomments, PFExprSuffix
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_PFExprSuffix_ExprIndex
:: T_MExpr
-> T_PFExprSuffix
sem_PFExprSuffix_ExprIndex :: T_MExpr -> T_PFExprSuffix
sem_PFExprSuffix_ExprIndex T_MExpr
index_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_indexOparentOperatorPrecedence :: OperatorLevel
_indexOparentOperatorAssociative :: Bool
_lhsOisAssociative :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOcopy :: PFExprSuffix
_lhsOcomments :: ([MToken])
_indexOcomments :: ([MToken])
_indexOforceMultiline :: Bool
_indexOindent :: Int
_indexOppconf :: PrettyPrintConfig
_indexIcomments :: ([MToken])
_indexIcopy :: MExpr
_indexIendsWithPrefixExpression :: Bool
_indexIisAssociative :: Bool
_indexIisLiteral :: Bool
_indexIisMultiline :: Bool
_indexIpos :: Region
_indexIprecedence :: OperatorLevel
_indexIpretty :: Doc
_lhsOpretty :: Doc
_lhsOpretty =
( PrettyPrintConfig -> Doc -> Doc
brackets PrettyPrintConfig
_lhsIppconf Doc
_indexIpretty
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_indexIisMultiline
)
_indexOparentOperatorPrecedence :: OperatorLevel
_indexOparentOperatorPrecedence =
( OperatorLevel
TopLevelExpression
)
_indexOparentOperatorAssociative :: Bool
_indexOparentOperatorAssociative =
( Bool
True
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
_indexIisAssociative
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
_indexIprecedence
)
_copy :: PFExprSuffix
_copy =
( MExpr -> PFExprSuffix
ExprIndex MExpr
_indexIcopy
)
_lhsOcopy :: PFExprSuffix
_lhsOcopy =
( PFExprSuffix
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_indexIcomments
)
_indexOcomments :: [MToken]
_indexOcomments =
( [MToken]
_lhsIcomments
)
_indexOforceMultiline :: Bool
_indexOforceMultiline =
( Bool
_lhsIforceMultiline
)
_indexOindent :: Int
_indexOindent =
( Int
_lhsIindent
)
_indexOppconf :: PrettyPrintConfig
_indexOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_indexIcomments, MExpr
_indexIcopy, Bool
_indexIendsWithPrefixExpression, Bool
_indexIisAssociative, Bool
_indexIisLiteral, Bool
_indexIisMultiline, Region
_indexIpos, OperatorLevel
_indexIprecedence, Doc
_indexIpretty) =
T_MExpr
index_ [MToken]
_indexOcomments Bool
_indexOforceMultiline Int
_indexOindent Bool
_indexOparentOperatorAssociative OperatorLevel
_indexOparentOperatorPrecedence PrettyPrintConfig
_indexOppconf
in
([MToken]
_lhsOcomments, PFExprSuffix
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_PFExprSuffix_DotIndex
:: MToken
-> T_PFExprSuffix
sem_PFExprSuffix_DotIndex :: MToken -> T_PFExprSuffix
sem_PFExprSuffix_DotIndex MToken
index_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOisAssociative :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOcopy :: PFExprSuffix
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( Char -> Doc
zchr Char
'.' Doc -> Doc -> Doc
<> MToken -> Doc
tok MToken
index_
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
False
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
OperatorLevel8
)
_copy :: PFExprSuffix
_copy =
( MToken -> PFExprSuffix
DotIndex MToken
index_
)
_lhsOcopy :: PFExprSuffix
_lhsOcopy =
( PFExprSuffix
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, PFExprSuffix
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty)
)
)
sem_PrefixExp
:: PrefixExp
-> T_PrefixExp
sem_PrefixExp :: PrefixExp -> T_PrefixExp
sem_PrefixExp (PFVar MToken
_name ExprSuffixList
_suffixes) =
(MToken -> T_ExprSuffixList -> T_PrefixExp
sem_PrefixExp_PFVar MToken
_name (ExprSuffixList -> T_ExprSuffixList
sem_ExprSuffixList ExprSuffixList
_suffixes))
sem_PrefixExp (ExprVar MExpr
_expr ExprSuffixList
_suffixes) =
(T_MExpr -> T_ExprSuffixList -> T_PrefixExp
sem_PrefixExp_ExprVar (MExpr -> T_MExpr
sem_MExpr MExpr
_expr) (ExprSuffixList -> T_ExprSuffixList
sem_ExprSuffixList ExprSuffixList
_suffixes))
type T_PrefixExp =
([MToken])
-> Bool
-> Int
-> Bool
-> OperatorLevel
-> PrettyPrintConfig
-> (([MToken]), PrefixExp, Bool, Bool, Bool, OperatorLevel, Doc, Bool)
data Inh_PrefixExp = Inh_PrefixExp { :: ([MToken]), Inh_PrefixExp -> Bool
forceMultiline_Inh_PrefixExp :: Bool, Inh_PrefixExp -> Int
indent_Inh_PrefixExp :: Int, Inh_PrefixExp -> Bool
parentOperatorAssociative_Inh_PrefixExp :: Bool, Inh_PrefixExp -> OperatorLevel
parentOperatorPrecedence_Inh_PrefixExp :: OperatorLevel, Inh_PrefixExp -> PrettyPrintConfig
ppconf_Inh_PrefixExp :: PrettyPrintConfig}
data Syn_PrefixExp = Syn_PrefixExp { :: ([MToken]), Syn_PrefixExp -> PrefixExp
copy_Syn_PrefixExp :: PrefixExp, Syn_PrefixExp -> Bool
isAssociative_Syn_PrefixExp :: Bool, Syn_PrefixExp -> Bool
isLiteral_Syn_PrefixExp :: Bool, Syn_PrefixExp -> Bool
isMultiline_Syn_PrefixExp :: Bool, Syn_PrefixExp -> OperatorLevel
precedence_Syn_PrefixExp :: OperatorLevel, Syn_PrefixExp -> Doc
pretty_Syn_PrefixExp :: Doc, Syn_PrefixExp -> Bool
startsWithExprPrefixExpression_Syn_PrefixExp :: Bool}
wrap_PrefixExp
:: T_PrefixExp
-> Inh_PrefixExp
-> Syn_PrefixExp
wrap_PrefixExp :: T_PrefixExp -> Inh_PrefixExp -> Syn_PrefixExp
wrap_PrefixExp T_PrefixExp
sem (Inh_PrefixExp [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent Bool
_lhsIparentOperatorAssociative OperatorLevel
_lhsIparentOperatorPrecedence PrettyPrintConfig
_lhsIppconf) =
( let
([MToken]
_lhsOcomments, PrefixExp
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisLiteral, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression) = T_PrefixExp
sem [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent Bool
_lhsIparentOperatorAssociative OperatorLevel
_lhsIparentOperatorPrecedence PrettyPrintConfig
_lhsIppconf
in
([MToken]
-> PrefixExp
-> Bool
-> Bool
-> Bool
-> OperatorLevel
-> Doc
-> Bool
-> Syn_PrefixExp
Syn_PrefixExp [MToken]
_lhsOcomments PrefixExp
_lhsOcopy Bool
_lhsOisAssociative Bool
_lhsOisLiteral Bool
_lhsOisMultiline OperatorLevel
_lhsOprecedence Doc
_lhsOpretty Bool
_lhsOstartsWithExprPrefixExpression)
)
sem_PrefixExp_PFVar
:: MToken
-> T_ExprSuffixList
-> T_PrefixExp
sem_PrefixExp_PFVar :: MToken -> T_ExprSuffixList -> T_PrefixExp
sem_PrefixExp_PFVar MToken
name_ T_ExprSuffixList
suffixes_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIparentOperatorAssociative
OperatorLevel
_lhsIparentOperatorPrecedence
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisLiteral :: Bool
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_lhsOisAssociative :: Bool
_lhsOprecedence :: OperatorLevel
_lhsOcopy :: PrefixExp
_lhsOcomments :: ([MToken])
_suffixesOcomments :: ([MToken])
_suffixesOforceMultiline :: Bool
_suffixesOindent :: Int
_suffixesOppconf :: PrettyPrintConfig
_suffixesIcomments :: ([MToken])
_suffixesIcopy :: ExprSuffixList
_suffixesIisAssociative :: Bool
_suffixesIisMultiline :: Bool
_suffixesIprecedence :: OperatorLevel
_suffixesIpretty :: Doc
_lhsOpretty :: Doc
_lhsOpretty =
( MToken -> Doc
tok MToken
name_ Doc -> Doc -> Doc
<> Doc
_suffixesIpretty
)
_lhsOisLiteral :: Bool
_lhsOisLiteral =
( Bool
False
)
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOstartsWithExprPrefixExpression =
( Bool
False
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_suffixesIisMultiline
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
_suffixesIisAssociative
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( OperatorLevel
_suffixesIprecedence
)
_copy :: PrefixExp
_copy =
( MToken -> ExprSuffixList -> PrefixExp
PFVar MToken
name_ ExprSuffixList
_suffixesIcopy
)
_lhsOcopy :: PrefixExp
_lhsOcopy =
( PrefixExp
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_suffixesIcomments
)
_suffixesOcomments :: [MToken]
_suffixesOcomments =
( [MToken]
_lhsIcomments
)
_suffixesOforceMultiline :: Bool
_suffixesOforceMultiline =
( Bool
_lhsIforceMultiline
)
_suffixesOindent :: Int
_suffixesOindent =
( Int
_lhsIindent
)
_suffixesOppconf :: PrettyPrintConfig
_suffixesOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_suffixesIcomments, ExprSuffixList
_suffixesIcopy, Bool
_suffixesIisAssociative, Bool
_suffixesIisMultiline, OperatorLevel
_suffixesIprecedence, Doc
_suffixesIpretty) =
T_ExprSuffixList
suffixes_ [MToken]
_suffixesOcomments Bool
_suffixesOforceMultiline Int
_suffixesOindent PrettyPrintConfig
_suffixesOppconf
in
([MToken]
_lhsOcomments, PrefixExp
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisLiteral, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression)
)
)
sem_PrefixExp_ExprVar
:: T_MExpr
-> T_ExprSuffixList
-> T_PrefixExp
sem_PrefixExp_ExprVar :: T_MExpr -> T_ExprSuffixList -> T_PrefixExp
sem_PrefixExp_ExprVar T_MExpr
expr_ T_ExprSuffixList
suffixes_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIparentOperatorAssociative
OperatorLevel
_lhsIparentOperatorPrecedence
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOprecedence :: OperatorLevel
_lhsOisLiteral :: Bool
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_lhsOisAssociative :: Bool
_lhsOcopy :: PrefixExp
_lhsOcomments :: ([MToken])
_exprOcomments :: ([MToken])
_exprOforceMultiline :: Bool
_exprOindent :: Int
_exprOparentOperatorAssociative :: Bool
_exprOparentOperatorPrecedence :: OperatorLevel
_exprOppconf :: PrettyPrintConfig
_suffixesOcomments :: ([MToken])
_suffixesOforceMultiline :: Bool
_suffixesOindent :: Int
_suffixesOppconf :: PrettyPrintConfig
_exprIcomments :: ([MToken])
_exprIcopy :: MExpr
_exprIendsWithPrefixExpression :: Bool
_exprIisAssociative :: Bool
_exprIisLiteral :: Bool
_exprIisMultiline :: Bool
_exprIpos :: Region
_exprIprecedence :: OperatorLevel
_exprIpretty :: Doc
_suffixesIcomments :: ([MToken])
_suffixesIcopy :: ExprSuffixList
_suffixesIisAssociative :: Bool
_suffixesIisMultiline :: Bool
_suffixesIprecedence :: OperatorLevel
_suffixesIpretty :: Doc
_lhsOpretty :: Doc
_lhsOpretty =
( (if Bool
_noparens then Doc
_exprIpretty else PrettyPrintConfig -> IsEmpty -> Doc -> Doc
parens PrettyPrintConfig
_lhsIppconf IsEmpty
NonEmpty Doc
_exprIpretty)
Doc -> Doc -> Doc
<> Doc
_suffixesIpretty
)
_lhsOprecedence :: OperatorLevel
_lhsOprecedence =
( if Bool
_noparens then OperatorLevel
_exprIprecedence else OperatorLevel
OperatorLevel8
)
_lhsOisLiteral :: Bool
_lhsOisLiteral =
( Bool
False
)
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOstartsWithExprPrefixExpression =
( Bool
True
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_exprIisMultiline Bool -> Bool -> Bool
|| Bool
_suffixesIisMultiline
)
_containsParenthesizedExpr :: Bool
_containsParenthesizedExpr =
( case MExpr
_exprIcopy of
MExpr Region
_ (APrefixExpr (ExprVar (MExpr Region
_ Expr
AVarArg) ExprSuffixList
_)) -> Bool
False
MExpr Region
_ (APrefixExpr PrefixExp
_) -> Bool
True
MExpr
_ -> Bool
False
)
_noparens :: Bool
_noparens =
( (PrettyPrintConfig -> Bool
removeRedundantParens PrettyPrintConfig
_lhsIppconf Bool -> Bool -> Bool
|| PrettyPrintConfig -> Bool
minimizeParens PrettyPrintConfig
_lhsIppconf)
Bool -> Bool -> Bool
&& ( Bool
_containsParenthesizedExpr
Bool -> Bool -> Bool
|| (OperatorLevel
_lhsIparentOperatorPrecedence forall a. Eq a => a -> a -> Bool
== OperatorLevel
TopLevelExpression Bool -> Bool -> Bool
|| Bool
_exprIisLiteral)
Bool -> Bool -> Bool
&& forall (t :: * -> *) a. Foldable t => t a -> Int
length ExprSuffixList
_suffixesIcopy forall a. Eq a => a -> a -> Bool
== Int
0
)
Bool -> Bool -> Bool
|| ( PrettyPrintConfig -> Bool
minimizeParens PrettyPrintConfig
_lhsIppconf
Bool -> Bool -> Bool
&& forall (t :: * -> *) a. Foldable t => t a -> Int
length ExprSuffixList
_suffixesIcopy forall a. Eq a => a -> a -> Bool
== Int
0
Bool -> Bool -> Bool
&& ( OperatorLevel
_lhsIparentOperatorPrecedence forall a. Ord a => a -> a -> Bool
< OperatorLevel
_exprIprecedence
Bool -> Bool -> Bool
|| PrettyPrintConfig -> Bool
assumeOperatorAssociativity PrettyPrintConfig
_lhsIppconf
Bool -> Bool -> Bool
&& OperatorLevel
_lhsIparentOperatorPrecedence forall a. Eq a => a -> a -> Bool
== OperatorLevel
_exprIprecedence
Bool -> Bool -> Bool
&& Bool
_lhsIparentOperatorAssociative
)
)
)
_lhsOisAssociative :: Bool
_lhsOisAssociative =
( Bool
_exprIisAssociative Bool -> Bool -> Bool
&& Bool
_suffixesIisAssociative
)
_copy :: PrefixExp
_copy =
( MExpr -> ExprSuffixList -> PrefixExp
ExprVar MExpr
_exprIcopy ExprSuffixList
_suffixesIcopy
)
_lhsOcopy :: PrefixExp
_lhsOcopy =
( PrefixExp
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_suffixesIcomments
)
_exprOcomments :: [MToken]
_exprOcomments =
( [MToken]
_lhsIcomments
)
_exprOforceMultiline :: Bool
_exprOforceMultiline =
( Bool
_lhsIforceMultiline
)
_exprOindent :: Int
_exprOindent =
( Int
_lhsIindent
)
_exprOparentOperatorAssociative :: Bool
_exprOparentOperatorAssociative =
( Bool
_lhsIparentOperatorAssociative
)
_exprOparentOperatorPrecedence :: OperatorLevel
_exprOparentOperatorPrecedence =
( OperatorLevel
_lhsIparentOperatorPrecedence
)
_exprOppconf :: PrettyPrintConfig
_exprOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_suffixesOcomments :: [MToken]
_suffixesOcomments =
( [MToken]
_exprIcomments
)
_suffixesOforceMultiline :: Bool
_suffixesOforceMultiline =
( Bool
_lhsIforceMultiline
)
_suffixesOindent :: Int
_suffixesOindent =
( Int
_lhsIindent
)
_suffixesOppconf :: PrettyPrintConfig
_suffixesOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_exprIcomments, MExpr
_exprIcopy, Bool
_exprIendsWithPrefixExpression, Bool
_exprIisAssociative, Bool
_exprIisLiteral, Bool
_exprIisMultiline, Region
_exprIpos, OperatorLevel
_exprIprecedence, Doc
_exprIpretty) =
T_MExpr
expr_ [MToken]
_exprOcomments Bool
_exprOforceMultiline Int
_exprOindent Bool
_exprOparentOperatorAssociative OperatorLevel
_exprOparentOperatorPrecedence PrettyPrintConfig
_exprOppconf
([MToken]
_suffixesIcomments, ExprSuffixList
_suffixesIcopy, Bool
_suffixesIisAssociative, Bool
_suffixesIisMultiline, OperatorLevel
_suffixesIprecedence, Doc
_suffixesIpretty) =
T_ExprSuffixList
suffixes_ [MToken]
_suffixesOcomments Bool
_suffixesOforceMultiline Int
_suffixesOindent PrettyPrintConfig
_suffixesOppconf
in
([MToken]
_lhsOcomments, PrefixExp
_lhsOcopy, Bool
_lhsOisAssociative, Bool
_lhsOisLiteral, Bool
_lhsOisMultiline, OperatorLevel
_lhsOprecedence, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression)
)
)
sem_Stat
:: Stat
-> T_Stat
sem_Stat :: Stat -> T_Stat
sem_Stat (Def [(PrefixExp, Maybe MExpr)]
_vars) =
(T_VarsList -> T_Stat
sem_Stat_Def ([(PrefixExp, Maybe MExpr)] -> T_VarsList
sem_VarsList [(PrefixExp, Maybe MExpr)]
_vars))
sem_Stat (LocDef [(PrefixExp, Maybe MExpr)]
_vars) =
(T_VarsList -> T_Stat
sem_Stat_LocDef ([(PrefixExp, Maybe MExpr)] -> T_VarsList
sem_VarsList [(PrefixExp, Maybe MExpr)]
_vars))
sem_Stat (AFuncCall PrefixExp
_fn) =
(T_PrefixExp -> T_Stat
sem_Stat_AFuncCall (PrefixExp -> T_PrefixExp
sem_PrefixExp PrefixExp
_fn))
sem_Stat (ALabel MToken
_lbl) =
(MToken -> T_Stat
sem_Stat_ALabel MToken
_lbl)
sem_Stat (Stat
ABreak) =
(T_Stat
sem_Stat_ABreak)
sem_Stat (Stat
AContinue) =
(T_Stat
sem_Stat_AContinue)
sem_Stat (AGoto MToken
_lbl) =
(MToken -> T_Stat
sem_Stat_AGoto MToken
_lbl)
sem_Stat (ADo Block
_body) =
(T_Block -> T_Stat
sem_Stat_ADo (Block -> T_Block
sem_Block Block
_body))
sem_Stat (AWhile MExpr
_cond Block
_body) =
(T_MExpr -> T_Block -> T_Stat
sem_Stat_AWhile (MExpr -> T_MExpr
sem_MExpr MExpr
_cond) (Block -> T_Block
sem_Block Block
_body))
sem_Stat (ARepeat Block
_body MExpr
_cond) =
(T_Block -> T_MExpr -> T_Stat
sem_Stat_ARepeat (Block -> T_Block
sem_Block Block
_body) (MExpr -> T_MExpr
sem_MExpr MExpr
_cond))
sem_Stat (AIf MExpr
_cond Block
_body ElseIfList
_elifs Else
_els) =
(T_MExpr -> T_Block -> T_ElseIfList -> T_Else -> T_Stat
sem_Stat_AIf (MExpr -> T_MExpr
sem_MExpr MExpr
_cond) (Block -> T_Block
sem_Block Block
_body) (ElseIfList -> T_ElseIfList
sem_ElseIfList ElseIfList
_elifs) (Else -> T_Else
sem_Else Else
_els))
sem_Stat (ANFor MToken
_var MExpr
_val MExpr
_to MExpr
_step Block
_body) =
(MToken -> T_MExpr -> T_MExpr -> T_MExpr -> T_Block -> T_Stat
sem_Stat_ANFor MToken
_var (MExpr -> T_MExpr
sem_MExpr MExpr
_val) (MExpr -> T_MExpr
sem_MExpr MExpr
_to) (MExpr -> T_MExpr
sem_MExpr MExpr
_step) (Block -> T_Block
sem_Block Block
_body))
sem_Stat (AGFor [MToken]
_vars [MExpr]
_vals Block
_body) =
([MToken] -> T_MExprList -> T_Block -> T_Stat
sem_Stat_AGFor [MToken]
_vars ([MExpr] -> T_MExprList
sem_MExprList [MExpr]
_vals) (Block -> T_Block
sem_Block Block
_body))
sem_Stat (AFunc FuncName
_name [MToken]
_args Block
_body) =
(T_FuncName -> [MToken] -> T_Block -> T_Stat
sem_Stat_AFunc (FuncName -> T_FuncName
sem_FuncName FuncName
_name) [MToken]
_args (Block -> T_Block
sem_Block Block
_body))
sem_Stat (ALocFunc FuncName
_name [MToken]
_args Block
_body) =
(T_FuncName -> [MToken] -> T_Block -> T_Stat
sem_Stat_ALocFunc (FuncName -> T_FuncName
sem_FuncName FuncName
_name) [MToken]
_args (Block -> T_Block
sem_Block Block
_body))
type T_Stat =
([MToken])
-> Bool
-> Int
-> Bool
-> PrettyPrintConfig
-> Region
-> Bool
-> (([MToken]), Stat, Bool, Bool, Doc, Bool)
data Inh_Stat = Inh_Stat { :: ([MToken]), Inh_Stat -> Bool
forceMultiline_Inh_Stat :: Bool, Inh_Stat -> Int
indent_Inh_Stat :: Int, Inh_Stat -> Bool
isLastStatement_Inh_Stat :: Bool, Inh_Stat -> PrettyPrintConfig
ppconf_Inh_Stat :: PrettyPrintConfig, Inh_Stat -> Region
statRegion_Inh_Stat :: Region, Inh_Stat -> Bool
wouldBeAmbiguousWithoutSemicolon_Inh_Stat :: Bool}
data Syn_Stat = Syn_Stat { :: ([MToken]), Syn_Stat -> Stat
copy_Syn_Stat :: Stat, Syn_Stat -> Bool
endsWithPrefixExpression_Syn_Stat :: Bool, Syn_Stat -> Bool
isMultiline_Syn_Stat :: Bool, Syn_Stat -> Doc
pretty_Syn_Stat :: Doc, Syn_Stat -> Bool
startsWithExprPrefixExpression_Syn_Stat :: Bool}
wrap_Stat
:: T_Stat
-> Inh_Stat
-> Syn_Stat
wrap_Stat :: T_Stat -> Inh_Stat -> Syn_Stat
wrap_Stat T_Stat
sem (Inh_Stat [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent Bool
_lhsIisLastStatement PrettyPrintConfig
_lhsIppconf Region
_lhsIstatRegion Bool
_lhsIwouldBeAmbiguousWithoutSemicolon) =
( let
([MToken]
_lhsOcomments, Stat
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression) = T_Stat
sem [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent Bool
_lhsIisLastStatement PrettyPrintConfig
_lhsIppconf Region
_lhsIstatRegion Bool
_lhsIwouldBeAmbiguousWithoutSemicolon
in
([MToken] -> Stat -> Bool -> Bool -> Doc -> Bool -> Syn_Stat
Syn_Stat [MToken]
_lhsOcomments Stat
_lhsOcopy Bool
_lhsOendsWithPrefixExpression Bool
_lhsOisMultiline Doc
_lhsOpretty Bool
_lhsOstartsWithExprPrefixExpression)
)
sem_Stat_Def
:: T_VarsList
-> T_Stat
sem_Stat_Def :: T_VarsList -> T_Stat
sem_Stat_Def T_VarsList
vars_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIisLastStatement
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion
Bool
_lhsIwouldBeAmbiguousWithoutSemicolon ->
( let
_lhsOpretty :: Doc
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOendsWithPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_lhsOcopy :: Stat
_lhsOcomments :: ([MToken])
_varsOcomments :: ([MToken])
_varsOforceMultiline :: Bool
_varsOindent :: Int
_varsOppconf :: PrettyPrintConfig
_varsIcomments :: ([MToken])
_varsIcopy :: VarsList
_varsIendsWithPrefixExpression :: Bool
_varsIexprPretty :: Doc
_varsIisDefined :: Bool
_varsIisLast :: Bool
_varsIisMultiline :: Bool
_varsIpretty :: Doc
_varsIstartsWithExprPrefixExpression :: Bool
_varsIvarPretty :: Doc
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
_varsIpretty Doc -> Doc -> Doc
<> Doc
_semicolon
)
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOstartsWithExprPrefixExpression =
( Bool
_varsIstartsWithExprPrefixExpression
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
_varsIendsWithPrefixExpression
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_varsIisMultiline
)
_semicolon :: Doc
_semicolon =
( if PrettyPrintConfig -> Bool
semicolons PrettyPrintConfig
_lhsIppconf Bool -> Bool -> Bool
|| Bool
_lhsIwouldBeAmbiguousWithoutSemicolon
then Char -> Doc
zchr Char
';'
else Doc
empty
)
_copy :: Stat
_copy =
( [(PrefixExp, Maybe MExpr)] -> Stat
Def [(PrefixExp, Maybe MExpr)]
_varsIcopy
)
_lhsOcopy :: Stat
_lhsOcopy =
( Stat
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_varsIcomments
)
_varsOcomments :: [MToken]
_varsOcomments =
( [MToken]
_lhsIcomments
)
_varsOforceMultiline :: Bool
_varsOforceMultiline =
( Bool
_lhsIforceMultiline
)
_varsOindent :: Int
_varsOindent =
( Int
_lhsIindent
)
_varsOppconf :: PrettyPrintConfig
_varsOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_varsIcomments, [(PrefixExp, Maybe MExpr)]
_varsIcopy, Bool
_varsIendsWithPrefixExpression, Doc
_varsIexprPretty, Bool
_varsIisDefined, Bool
_varsIisLast, Bool
_varsIisMultiline, Doc
_varsIpretty, Bool
_varsIstartsWithExprPrefixExpression, Doc
_varsIvarPretty) =
T_VarsList
vars_ [MToken]
_varsOcomments Bool
_varsOforceMultiline Int
_varsOindent PrettyPrintConfig
_varsOppconf
in
([MToken]
_lhsOcomments, Stat
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression)
)
)
sem_Stat_LocDef
:: T_VarsList
-> T_Stat
sem_Stat_LocDef :: T_VarsList -> T_Stat
sem_Stat_LocDef T_VarsList
vars_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIisLastStatement
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion
Bool
_lhsIwouldBeAmbiguousWithoutSemicolon ->
( let
_lhsOpretty :: Doc
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOendsWithPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_lhsOcopy :: Stat
_lhsOcomments :: ([MToken])
_varsOcomments :: ([MToken])
_varsOforceMultiline :: Bool
_varsOindent :: Int
_varsOppconf :: PrettyPrintConfig
_varsIcomments :: ([MToken])
_varsIcopy :: VarsList
_varsIendsWithPrefixExpression :: Bool
_varsIexprPretty :: Doc
_varsIisDefined :: Bool
_varsIisLast :: Bool
_varsIisMultiline :: Bool
_varsIpretty :: Doc
_varsIstartsWithExprPrefixExpression :: Bool
_varsIvarPretty :: Doc
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"local" Doc -> Doc -> Doc
<-> Doc
_varsIpretty Doc -> Doc -> Doc
<> Doc
_semicolon
)
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOstartsWithExprPrefixExpression =
( Bool
_varsIstartsWithExprPrefixExpression
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
_varsIendsWithPrefixExpression
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_varsIisMultiline
)
_semicolon :: Doc
_semicolon =
( if PrettyPrintConfig -> Bool
semicolons PrettyPrintConfig
_lhsIppconf Bool -> Bool -> Bool
|| Bool
_lhsIwouldBeAmbiguousWithoutSemicolon
then Char -> Doc
zchr Char
';'
else Doc
empty
)
_copy :: Stat
_copy =
( [(PrefixExp, Maybe MExpr)] -> Stat
LocDef [(PrefixExp, Maybe MExpr)]
_varsIcopy
)
_lhsOcopy :: Stat
_lhsOcopy =
( Stat
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_varsIcomments
)
_varsOcomments :: [MToken]
_varsOcomments =
( [MToken]
_lhsIcomments
)
_varsOforceMultiline :: Bool
_varsOforceMultiline =
( Bool
_lhsIforceMultiline
)
_varsOindent :: Int
_varsOindent =
( Int
_lhsIindent
)
_varsOppconf :: PrettyPrintConfig
_varsOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_varsIcomments, [(PrefixExp, Maybe MExpr)]
_varsIcopy, Bool
_varsIendsWithPrefixExpression, Doc
_varsIexprPretty, Bool
_varsIisDefined, Bool
_varsIisLast, Bool
_varsIisMultiline, Doc
_varsIpretty, Bool
_varsIstartsWithExprPrefixExpression, Doc
_varsIvarPretty) =
T_VarsList
vars_ [MToken]
_varsOcomments Bool
_varsOforceMultiline Int
_varsOindent PrettyPrintConfig
_varsOppconf
in
([MToken]
_lhsOcomments, Stat
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression)
)
)
sem_Stat_AFuncCall
:: T_PrefixExp
-> T_Stat
sem_Stat_AFuncCall :: T_PrefixExp -> T_Stat
sem_Stat_AFuncCall T_PrefixExp
fn_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIisLastStatement
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion
Bool
_lhsIwouldBeAmbiguousWithoutSemicolon ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOendsWithPrefixExpression :: Bool
_fnOparentOperatorPrecedence :: OperatorLevel
_fnOparentOperatorAssociative :: Bool
_lhsOcopy :: Stat
_lhsOcomments :: ([MToken])
_fnOcomments :: ([MToken])
_fnOforceMultiline :: Bool
_fnOindent :: Int
_fnOppconf :: PrettyPrintConfig
_fnIcomments :: ([MToken])
_fnIcopy :: PrefixExp
_fnIisAssociative :: Bool
_fnIisLiteral :: Bool
_fnIisMultiline :: Bool
_fnIprecedence :: OperatorLevel
_fnIpretty :: Doc
_fnIstartsWithExprPrefixExpression :: Bool
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
_fnIpretty Doc -> Doc -> Doc
<> Doc
_semicolon
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_fnIisMultiline
)
_semicolon :: Doc
_semicolon =
( if PrettyPrintConfig -> Bool
semicolons PrettyPrintConfig
_lhsIppconf then Char -> Doc
zchr Char
';' else Doc
empty
)
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOstartsWithExprPrefixExpression =
( Bool
_fnIstartsWithExprPrefixExpression
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
True
)
_fnOparentOperatorPrecedence :: OperatorLevel
_fnOparentOperatorPrecedence =
( OperatorLevel
TopLevelExpression
)
_fnOparentOperatorAssociative :: Bool
_fnOparentOperatorAssociative =
( Bool
True
)
_copy :: Stat
_copy =
( PrefixExp -> Stat
AFuncCall PrefixExp
_fnIcopy
)
_lhsOcopy :: Stat
_lhsOcopy =
( Stat
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_fnIcomments
)
_fnOcomments :: [MToken]
_fnOcomments =
( [MToken]
_lhsIcomments
)
_fnOforceMultiline :: Bool
_fnOforceMultiline =
( Bool
_lhsIforceMultiline
)
_fnOindent :: Int
_fnOindent =
( Int
_lhsIindent
)
_fnOppconf :: PrettyPrintConfig
_fnOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_fnIcomments, PrefixExp
_fnIcopy, Bool
_fnIisAssociative, Bool
_fnIisLiteral, Bool
_fnIisMultiline, OperatorLevel
_fnIprecedence, Doc
_fnIpretty, Bool
_fnIstartsWithExprPrefixExpression) =
T_PrefixExp
fn_ [MToken]
_fnOcomments Bool
_fnOforceMultiline Int
_fnOindent Bool
_fnOparentOperatorAssociative OperatorLevel
_fnOparentOperatorPrecedence PrettyPrintConfig
_fnOppconf
in
([MToken]
_lhsOcomments, Stat
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression)
)
)
sem_Stat_ALabel
:: MToken
-> T_Stat
sem_Stat_ALabel :: MToken -> T_Stat
sem_Stat_ALabel MToken
lbl_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIisLastStatement
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion
Bool
_lhsIwouldBeAmbiguousWithoutSemicolon ->
( let
_lhsOpretty :: Doc
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOendsWithPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_lhsOcopy :: Stat
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"::"
Doc -> Doc -> Doc
<> Doc
_whitespace
Doc -> Doc -> Doc
<> MToken -> Doc
tok MToken
lbl_
Doc -> Doc -> Doc
<> Doc
_whitespace
Doc -> Doc -> Doc
<> String -> Doc
zeroWidthText String
"::"
)
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOstartsWithExprPrefixExpression =
( Bool
False
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
False
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_whitespace :: Doc
_whitespace =
( if PrettyPrintConfig -> Bool
spaceAfterLabel PrettyPrintConfig
_lhsIppconf then String -> Doc
zeroWidthText String
" " else Doc
empty
)
_copy :: Stat
_copy =
( MToken -> Stat
ALabel MToken
lbl_
)
_lhsOcopy :: Stat
_lhsOcopy =
( Stat
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, Stat
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression)
)
)
sem_Stat_ABreak :: T_Stat
sem_Stat_ABreak :: T_Stat
sem_Stat_ABreak =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIisLastStatement
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion
Bool
_lhsIwouldBeAmbiguousWithoutSemicolon ->
( let
_lhsOpretty :: Doc
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOendsWithPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_lhsOcopy :: Stat
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"break" Doc -> Doc -> Doc
<> Doc
_semicolon
)
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOstartsWithExprPrefixExpression =
( Bool
False
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
False
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_semicolon :: Doc
_semicolon =
( if PrettyPrintConfig -> Bool
semicolons PrettyPrintConfig
_lhsIppconf then Char -> Doc
zchr Char
';' else Doc
empty
)
_copy :: Stat
_copy =
( Stat
ABreak
)
_lhsOcopy :: Stat
_lhsOcopy =
( Stat
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, Stat
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression)
)
)
sem_Stat_AContinue :: T_Stat
sem_Stat_AContinue :: T_Stat
sem_Stat_AContinue =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIisLastStatement
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion
Bool
_lhsIwouldBeAmbiguousWithoutSemicolon ->
( let
_lhsOpretty :: Doc
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOendsWithPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_lhsOcopy :: Stat
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"continue" Doc -> Doc -> Doc
<> Doc
_semicolon
)
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOstartsWithExprPrefixExpression =
( Bool
False
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
False
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_semicolon :: Doc
_semicolon =
( if PrettyPrintConfig -> Bool
semicolons PrettyPrintConfig
_lhsIppconf then Char -> Doc
zchr Char
';' else Doc
empty
)
_copy :: Stat
_copy =
( Stat
AContinue
)
_lhsOcopy :: Stat
_lhsOcopy =
( Stat
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, Stat
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression)
)
)
sem_Stat_AGoto
:: MToken
-> T_Stat
sem_Stat_AGoto :: MToken -> T_Stat
sem_Stat_AGoto MToken
lbl_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIisLastStatement
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion
Bool
_lhsIwouldBeAmbiguousWithoutSemicolon ->
( let
_lhsOpretty :: Doc
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOendsWithPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_lhsOcopy :: Stat
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"goto" Doc -> Doc -> Doc
<-> MToken -> Doc
tok MToken
lbl_ Doc -> Doc -> Doc
<> Doc
_semicolon
)
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOstartsWithExprPrefixExpression =
( Bool
False
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
False
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_semicolon :: Doc
_semicolon =
( if PrettyPrintConfig -> Bool
semicolons PrettyPrintConfig
_lhsIppconf then Char -> Doc
zchr Char
';' else Doc
empty
)
_copy :: Stat
_copy =
( MToken -> Stat
AGoto MToken
lbl_
)
_lhsOcopy :: Stat
_lhsOcopy =
( Stat
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, Stat
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression)
)
)
sem_Stat_ADo
:: T_Block
-> T_Stat
sem_Stat_ADo :: T_Block -> T_Stat
sem_Stat_ADo T_Block
body_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIisLastStatement
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion
Bool
_lhsIwouldBeAmbiguousWithoutSemicolon ->
( let
_lhsOisMultiline :: Bool
_lhsOpretty :: Doc
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOendsWithPrefixExpression :: Bool
_bodyOindent :: Int
_lhsOcopy :: Stat
_lhsOcomments :: ([MToken])
_bodyOcomments :: ([MToken])
_bodyOforceMultiline :: Bool
_bodyOppconf :: PrettyPrintConfig
_bodyOstatRegion :: Region
_bodyIcomments :: ([MToken])
_bodyIcopy :: Block
_bodyIisMultiline :: Bool
_bodyIpretty :: Doc
_bodyIstatementCount :: Int
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
True
)
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"do"
Doc -> Doc -> Doc
$+$ Doc
_bodyIpretty
Doc -> Doc -> Doc
$+$ PrettyPrintConfig -> Int -> Doc -> Doc
indent PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (String -> Doc
zeroWidthText String
"end")
)
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOstartsWithExprPrefixExpression =
( Bool
False
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
False
)
_bodyOindent :: Int
_bodyOindent =
( Int
_lhsIindent forall a. Num a => a -> a -> a
+ Int
1
)
_copy :: Stat
_copy =
( Block -> Stat
ADo Block
_bodyIcopy
)
_lhsOcopy :: Stat
_lhsOcopy =
( Stat
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_bodyIcomments
)
_bodyOcomments :: [MToken]
_bodyOcomments =
( [MToken]
_lhsIcomments
)
_bodyOforceMultiline :: Bool
_bodyOforceMultiline =
( Bool
_lhsIforceMultiline
)
_bodyOppconf :: PrettyPrintConfig
_bodyOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_bodyOstatRegion :: Region
_bodyOstatRegion =
( Region
_lhsIstatRegion
)
([MToken]
_bodyIcomments, Block
_bodyIcopy, Bool
_bodyIisMultiline, Doc
_bodyIpretty, Int
_bodyIstatementCount) =
T_Block
body_ [MToken]
_bodyOcomments Bool
_bodyOforceMultiline Int
_bodyOindent PrettyPrintConfig
_bodyOppconf Region
_bodyOstatRegion
in
([MToken]
_lhsOcomments, Stat
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression)
)
)
sem_Stat_AWhile
:: T_MExpr
-> T_Block
-> T_Stat
sem_Stat_AWhile :: T_MExpr -> T_Block -> T_Stat
sem_Stat_AWhile T_MExpr
cond_ T_Block
body_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIisLastStatement
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion
Bool
_lhsIwouldBeAmbiguousWithoutSemicolon ->
( let
_lhsOisMultiline :: Bool
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOendsWithPrefixExpression :: Bool
_condOparentOperatorPrecedence :: OperatorLevel
_condOparentOperatorAssociative :: Bool
_lhsOpretty :: Doc
_bodyOindent :: Int
_lhsOcopy :: Stat
_lhsOcomments :: ([MToken])
_condOcomments :: ([MToken])
_condOforceMultiline :: Bool
_condOindent :: Int
_condOppconf :: PrettyPrintConfig
_bodyOcomments :: ([MToken])
_bodyOforceMultiline :: Bool
_bodyOppconf :: PrettyPrintConfig
_bodyOstatRegion :: Region
_condIcomments :: ([MToken])
_condIcopy :: MExpr
_condIendsWithPrefixExpression :: Bool
_condIisAssociative :: Bool
_condIisLiteral :: Bool
_condIisMultiline :: Bool
_condIpos :: Region
_condIprecedence :: OperatorLevel
_condIpretty :: Doc
_bodyIcomments :: ([MToken])
_bodyIcopy :: Block
_bodyIisMultiline :: Bool
_bodyIpretty :: Doc
_bodyIstatementCount :: Int
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
True
)
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOstartsWithExprPrefixExpression =
( Bool
False
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
False
)
_condOparentOperatorPrecedence :: OperatorLevel
_condOparentOperatorPrecedence =
( OperatorLevel
TopLevelExpression
)
_condOparentOperatorAssociative :: Bool
_condOparentOperatorAssociative =
( Bool
True
)
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"while"
Doc -> Doc -> Doc
<-> Doc
_condIpretty
Doc -> Doc -> Doc
<-> String -> Doc
zeroWidthText String
"do"
Doc -> Doc -> Doc
$+$ Doc
_bodyIpretty
Doc -> Doc -> Doc
$+$ PrettyPrintConfig -> Int -> Doc -> Doc
indent PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (String -> Doc
zeroWidthText String
"end")
)
_bodyOindent :: Int
_bodyOindent =
( Int
_lhsIindent forall a. Num a => a -> a -> a
+ Int
1
)
_copy :: Stat
_copy =
( MExpr -> Block -> Stat
AWhile MExpr
_condIcopy Block
_bodyIcopy
)
_lhsOcopy :: Stat
_lhsOcopy =
( Stat
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_bodyIcomments
)
_condOcomments :: [MToken]
_condOcomments =
( [MToken]
_lhsIcomments
)
_condOforceMultiline :: Bool
_condOforceMultiline =
( Bool
_lhsIforceMultiline
)
_condOindent :: Int
_condOindent =
( Int
_lhsIindent
)
_condOppconf :: PrettyPrintConfig
_condOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_bodyOcomments :: [MToken]
_bodyOcomments =
( [MToken]
_condIcomments
)
_bodyOforceMultiline :: Bool
_bodyOforceMultiline =
( Bool
_lhsIforceMultiline
)
_bodyOppconf :: PrettyPrintConfig
_bodyOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_bodyOstatRegion :: Region
_bodyOstatRegion =
( Region
_lhsIstatRegion
)
([MToken]
_condIcomments, MExpr
_condIcopy, Bool
_condIendsWithPrefixExpression, Bool
_condIisAssociative, Bool
_condIisLiteral, Bool
_condIisMultiline, Region
_condIpos, OperatorLevel
_condIprecedence, Doc
_condIpretty) =
T_MExpr
cond_ [MToken]
_condOcomments Bool
_condOforceMultiline Int
_condOindent Bool
_condOparentOperatorAssociative OperatorLevel
_condOparentOperatorPrecedence PrettyPrintConfig
_condOppconf
([MToken]
_bodyIcomments, Block
_bodyIcopy, Bool
_bodyIisMultiline, Doc
_bodyIpretty, Int
_bodyIstatementCount) =
T_Block
body_ [MToken]
_bodyOcomments Bool
_bodyOforceMultiline Int
_bodyOindent PrettyPrintConfig
_bodyOppconf Region
_bodyOstatRegion
in
([MToken]
_lhsOcomments, Stat
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression)
)
)
sem_Stat_ARepeat
:: T_Block
-> T_MExpr
-> T_Stat
sem_Stat_ARepeat :: T_Block -> T_MExpr -> T_Stat
sem_Stat_ARepeat T_Block
body_ T_MExpr
cond_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIisLastStatement
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion
Bool
_lhsIwouldBeAmbiguousWithoutSemicolon ->
( let
_lhsOpretty :: Doc
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOendsWithPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_bodyOindent :: Int
_condOparentOperatorPrecedence :: OperatorLevel
_condOparentOperatorAssociative :: Bool
_lhsOcopy :: Stat
_lhsOcomments :: ([MToken])
_bodyOcomments :: ([MToken])
_bodyOforceMultiline :: Bool
_bodyOppconf :: PrettyPrintConfig
_bodyOstatRegion :: Region
_condOcomments :: ([MToken])
_condOforceMultiline :: Bool
_condOindent :: Int
_condOppconf :: PrettyPrintConfig
_bodyIcomments :: ([MToken])
_bodyIcopy :: Block
_bodyIisMultiline :: Bool
_bodyIpretty :: Doc
_bodyIstatementCount :: Int
_condIcomments :: ([MToken])
_condIcopy :: MExpr
_condIendsWithPrefixExpression :: Bool
_condIisAssociative :: Bool
_condIisLiteral :: Bool
_condIisMultiline :: Bool
_condIpos :: Region
_condIprecedence :: OperatorLevel
_condIpretty :: Doc
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"repeat"
Doc -> Doc -> Doc
$+$ Doc
_bodyIpretty
Doc -> Doc -> Doc
$+$ PrettyPrintConfig -> Int -> Doc -> Doc
indent PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (String -> Doc
zeroWidthText String
"until" Doc -> Doc -> Doc
<-> Doc
_condIpretty)
)
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOstartsWithExprPrefixExpression =
( Bool
False
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
False
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
True
)
_bodyOindent :: Int
_bodyOindent =
( Int
_lhsIindent forall a. Num a => a -> a -> a
+ Int
1
)
_condOparentOperatorPrecedence :: OperatorLevel
_condOparentOperatorPrecedence =
( OperatorLevel
TopLevelExpression
)
_condOparentOperatorAssociative :: Bool
_condOparentOperatorAssociative =
( Bool
True
)
_copy :: Stat
_copy =
( Block -> MExpr -> Stat
ARepeat Block
_bodyIcopy MExpr
_condIcopy
)
_lhsOcopy :: Stat
_lhsOcopy =
( Stat
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_condIcomments
)
_bodyOcomments :: [MToken]
_bodyOcomments =
( [MToken]
_lhsIcomments
)
_bodyOforceMultiline :: Bool
_bodyOforceMultiline =
( Bool
_lhsIforceMultiline
)
_bodyOppconf :: PrettyPrintConfig
_bodyOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_bodyOstatRegion :: Region
_bodyOstatRegion =
( Region
_lhsIstatRegion
)
_condOcomments :: [MToken]
_condOcomments =
( [MToken]
_bodyIcomments
)
_condOforceMultiline :: Bool
_condOforceMultiline =
( Bool
_lhsIforceMultiline
)
_condOindent :: Int
_condOindent =
( Int
_lhsIindent
)
_condOppconf :: PrettyPrintConfig
_condOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_bodyIcomments, Block
_bodyIcopy, Bool
_bodyIisMultiline, Doc
_bodyIpretty, Int
_bodyIstatementCount) =
T_Block
body_ [MToken]
_bodyOcomments Bool
_bodyOforceMultiline Int
_bodyOindent PrettyPrintConfig
_bodyOppconf Region
_bodyOstatRegion
([MToken]
_condIcomments, MExpr
_condIcopy, Bool
_condIendsWithPrefixExpression, Bool
_condIisAssociative, Bool
_condIisLiteral, Bool
_condIisMultiline, Region
_condIpos, OperatorLevel
_condIprecedence, Doc
_condIpretty) =
T_MExpr
cond_ [MToken]
_condOcomments Bool
_condOforceMultiline Int
_condOindent Bool
_condOparentOperatorAssociative OperatorLevel
_condOparentOperatorPrecedence PrettyPrintConfig
_condOppconf
in
([MToken]
_lhsOcomments, Stat
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression)
)
)
sem_Stat_AIf
:: T_MExpr
-> T_Block
-> T_ElseIfList
-> T_Else
-> T_Stat
sem_Stat_AIf :: T_MExpr -> T_Block -> T_ElseIfList -> T_Else -> T_Stat
sem_Stat_AIf T_MExpr
cond_ T_Block
body_ T_ElseIfList
elifs_ T_Else
els_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIisLastStatement
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion
Bool
_lhsIwouldBeAmbiguousWithoutSemicolon ->
( let
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOendsWithPrefixExpression :: Bool
_condOcomments :: ([MToken])
_condOparentOperatorPrecedence :: OperatorLevel
_condOparentOperatorAssociative :: Bool
_bodyOindent :: Int
_bodyOstatRegion :: Region
_lhsOpretty :: Doc
_lhsOcopy :: Stat
_lhsOcomments :: ([MToken])
_lhsOisMultiline :: Bool
_condOforceMultiline :: Bool
_condOindent :: Int
_condOppconf :: PrettyPrintConfig
_bodyOcomments :: ([MToken])
_bodyOforceMultiline :: Bool
_bodyOppconf :: PrettyPrintConfig
_elifsOcomments :: ([MToken])
_elifsOforceMultiline :: Bool
_elifsOindent :: Int
_elifsOppconf :: PrettyPrintConfig
_elsOcomments :: ([MToken])
_elsOforceMultiline :: Bool
_elsOindent :: Int
_elsOppconf :: PrettyPrintConfig
_elsOstatRegion :: Region
_condIcomments :: ([MToken])
_condIcopy :: MExpr
_condIendsWithPrefixExpression :: Bool
_condIisAssociative :: Bool
_condIisLiteral :: Bool
_condIisMultiline :: Bool
_condIpos :: Region
_condIprecedence :: OperatorLevel
_condIpretty :: Doc
_bodyIcomments :: ([MToken])
_bodyIcopy :: Block
_bodyIisMultiline :: Bool
_bodyIpretty :: Doc
_bodyIstatementCount :: Int
_elifsIcomments :: ([MToken])
_elifsIcopy :: ElseIfList
_elifsIelsesExist :: Bool
_elifsIisMultiline :: Bool
_elifsIpos :: Region
_elifsIpretty :: Doc
_elsIcomments :: ([MToken])
_elsIcopy :: Else
_elsIelsesExist :: Bool
_elsIisMultiline :: Bool
_elsIpos :: Region
_elsIpretty :: Doc
_isMultiline :: Bool
_isMultiline =
( Bool
_lhsIforceMultiline
Bool -> Bool -> Bool
|| Bool
_condIisMultiline
Bool -> Bool -> Bool
|| Bool
_bodyIisMultiline
Bool -> Bool -> Bool
|| Bool
_elifsIelsesExist
Bool -> Bool -> Bool
|| Bool
_elsIelsesExist
)
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOstartsWithExprPrefixExpression =
( Bool
False
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
False
)
_singleLinePretty :: Doc
_singleLinePretty =
( String -> Doc
zeroWidthText String
"if"
Doc -> Doc -> Doc
<-> Doc
_condIpretty
Doc -> Doc -> Doc
<-> String -> Doc
zeroWidthText String
"then"
Doc -> Doc -> Doc
<-> Doc
_bodyIpretty
Doc -> Doc -> Doc
<-> String -> Doc
zeroWidthText String
"end"
Doc -> Doc -> Doc
<-> PrettyPrintConfig -> Int -> [MToken] -> Doc
renderSLComments PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsAfterThen)
)
_multilinePretty :: Doc
_multilinePretty =
( String -> Doc
zeroWidthText String
"if"
Doc -> Doc -> Doc
<-> Doc
_condIpretty
Doc -> Doc -> Doc
<-> String -> Doc
zeroWidthText String
"then"
Doc -> Doc -> Doc
<-> PrettyPrintConfig -> Int -> [MToken] -> Doc
renderSLComments PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsAfterThen)
Doc -> Doc -> Doc
$+$ Doc
_bodyIpretty
Doc -> Doc -> Doc
$+$ Doc
_elifsIpretty
Doc -> Doc -> Doc
$+$ Doc
_elsIpretty
Doc -> Doc -> Doc
$+$ PrettyPrintConfig -> Int -> Doc -> Doc
indent PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (String -> Doc
zeroWidthText String
"end")
)
_commentsAfterThen :: ([MToken], [MToken])
_commentsAfterThen =
( forall a. (a -> Bool) -> [a] -> ([a], [a])
span (\(MToken Region
pos Token
_) -> Region
pos Region -> Region -> Bool
`beforeOrOnLine` Region
_condIpos) [MToken]
_lhsIcomments
)
_condOcomments :: [MToken]
_condOcomments =
( forall a b. (a, b) -> b
snd ([MToken], [MToken])
_commentsAfterThen
)
_condOparentOperatorPrecedence :: OperatorLevel
_condOparentOperatorPrecedence =
( OperatorLevel
TopLevelExpression
)
_condOparentOperatorAssociative :: Bool
_condOparentOperatorAssociative =
( Bool
True
)
_bodyOindent :: Int
_bodyOindent =
( if Bool
_isMultiline then Int
_lhsIindent forall a. Num a => a -> a -> a
+ Int
1 else Int
0
)
_bodyOstatRegion :: Region
_bodyOstatRegion =
( Region
_lhsIstatRegion Region -> Region -> Region
`upto` Region
_elifsIpos Region -> Region -> Region
`upto` Region
_elsIpos
)
_lhsOpretty :: Doc
_lhsOpretty =
( if Bool
_isMultiline then Doc
_multilinePretty else Doc
_singleLinePretty
)
_copy :: Stat
_copy =
( MExpr -> Block -> ElseIfList -> Else -> Stat
AIf MExpr
_condIcopy Block
_bodyIcopy ElseIfList
_elifsIcopy Else
_elsIcopy
)
_lhsOcopy :: Stat
_lhsOcopy =
( Stat
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_elsIcomments
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_isMultiline
)
_condOforceMultiline :: Bool
_condOforceMultiline =
( Bool
_lhsIforceMultiline
)
_condOindent :: Int
_condOindent =
( Int
_lhsIindent
)
_condOppconf :: PrettyPrintConfig
_condOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_bodyOcomments :: [MToken]
_bodyOcomments =
( [MToken]
_condIcomments
)
_bodyOforceMultiline :: Bool
_bodyOforceMultiline =
( Bool
_lhsIforceMultiline
)
_bodyOppconf :: PrettyPrintConfig
_bodyOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_elifsOcomments :: [MToken]
_elifsOcomments =
( [MToken]
_bodyIcomments
)
_elifsOforceMultiline :: Bool
_elifsOforceMultiline =
( Bool
_lhsIforceMultiline
)
_elifsOindent :: Int
_elifsOindent =
( Int
_lhsIindent
)
_elifsOppconf :: PrettyPrintConfig
_elifsOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_elsOcomments :: [MToken]
_elsOcomments =
( [MToken]
_elifsIcomments
)
_elsOforceMultiline :: Bool
_elsOforceMultiline =
( Bool
_lhsIforceMultiline
)
_elsOindent :: Int
_elsOindent =
( Int
_lhsIindent
)
_elsOppconf :: PrettyPrintConfig
_elsOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_elsOstatRegion :: Region
_elsOstatRegion =
( Region
_lhsIstatRegion
)
([MToken]
_condIcomments, MExpr
_condIcopy, Bool
_condIendsWithPrefixExpression, Bool
_condIisAssociative, Bool
_condIisLiteral, Bool
_condIisMultiline, Region
_condIpos, OperatorLevel
_condIprecedence, Doc
_condIpretty) =
T_MExpr
cond_ [MToken]
_condOcomments Bool
_condOforceMultiline Int
_condOindent Bool
_condOparentOperatorAssociative OperatorLevel
_condOparentOperatorPrecedence PrettyPrintConfig
_condOppconf
([MToken]
_bodyIcomments, Block
_bodyIcopy, Bool
_bodyIisMultiline, Doc
_bodyIpretty, Int
_bodyIstatementCount) =
T_Block
body_ [MToken]
_bodyOcomments Bool
_bodyOforceMultiline Int
_bodyOindent PrettyPrintConfig
_bodyOppconf Region
_bodyOstatRegion
([MToken]
_elifsIcomments, ElseIfList
_elifsIcopy, Bool
_elifsIelsesExist, Bool
_elifsIisMultiline, Region
_elifsIpos, Doc
_elifsIpretty) =
T_ElseIfList
elifs_ [MToken]
_elifsOcomments Bool
_elifsOforceMultiline Int
_elifsOindent PrettyPrintConfig
_elifsOppconf
([MToken]
_elsIcomments, Else
_elsIcopy, Bool
_elsIelsesExist, Bool
_elsIisMultiline, Region
_elsIpos, Doc
_elsIpretty) =
T_Else
els_ [MToken]
_elsOcomments Bool
_elsOforceMultiline Int
_elsOindent PrettyPrintConfig
_elsOppconf Region
_elsOstatRegion
in
([MToken]
_lhsOcomments, Stat
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression)
)
)
sem_Stat_ANFor
:: MToken
-> T_MExpr
-> T_MExpr
-> T_MExpr
-> T_Block
-> T_Stat
sem_Stat_ANFor :: MToken -> T_MExpr -> T_MExpr -> T_MExpr -> T_Block -> T_Stat
sem_Stat_ANFor MToken
var_ T_MExpr
val_ T_MExpr
to_ T_MExpr
step_ T_Block
body_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIisLastStatement
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion
Bool
_lhsIwouldBeAmbiguousWithoutSemicolon ->
( let
_lhsOisMultiline :: Bool
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOendsWithPrefixExpression :: Bool
_lhsOpretty :: Doc
_valOcomments :: ([MToken])
_valOparentOperatorPrecedence :: OperatorLevel
_valOparentOperatorAssociative :: Bool
_toOparentOperatorPrecedence :: OperatorLevel
_toOparentOperatorAssociative :: Bool
_stepOparentOperatorPrecedence :: OperatorLevel
_stepOparentOperatorAssociative :: Bool
_bodyOindent :: Int
_lhsOcopy :: Stat
_lhsOcomments :: ([MToken])
_valOforceMultiline :: Bool
_valOindent :: Int
_valOppconf :: PrettyPrintConfig
_toOcomments :: ([MToken])
_toOforceMultiline :: Bool
_toOindent :: Int
_toOppconf :: PrettyPrintConfig
_stepOcomments :: ([MToken])
_stepOforceMultiline :: Bool
_stepOindent :: Int
_stepOppconf :: PrettyPrintConfig
_bodyOcomments :: ([MToken])
_bodyOforceMultiline :: Bool
_bodyOppconf :: PrettyPrintConfig
_bodyOstatRegion :: Region
_valIcomments :: ([MToken])
_valIcopy :: MExpr
_valIendsWithPrefixExpression :: Bool
_valIisAssociative :: Bool
_valIisLiteral :: Bool
_valIisMultiline :: Bool
_valIpos :: Region
_valIprecedence :: OperatorLevel
_valIpretty :: Doc
_toIcomments :: ([MToken])
_toIcopy :: MExpr
_toIendsWithPrefixExpression :: Bool
_toIisAssociative :: Bool
_toIisLiteral :: Bool
_toIisMultiline :: Bool
_toIpos :: Region
_toIprecedence :: OperatorLevel
_toIpretty :: Doc
_stepIcomments :: ([MToken])
_stepIcopy :: MExpr
_stepIendsWithPrefixExpression :: Bool
_stepIisAssociative :: Bool
_stepIisLiteral :: Bool
_stepIisMultiline :: Bool
_stepIpos :: Region
_stepIprecedence :: OperatorLevel
_stepIpretty :: Doc
_bodyIcomments :: ([MToken])
_bodyIcopy :: Block
_bodyIisMultiline :: Bool
_bodyIpretty :: Doc
_bodyIstatementCount :: Int
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
True
)
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOstartsWithExprPrefixExpression =
( Bool
False
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
False
)
_step :: Doc
_step =
( case MExpr
_stepIcopy of
MExpr Region
_ (ANumber String
"1") -> Doc
empty
MExpr
_ -> Doc
_comma Doc -> Doc -> Doc
<> Doc
_stepIpretty
)
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"for"
Doc -> Doc -> Doc
<-> MToken -> Doc
tok MToken
var_
Doc -> Doc -> Doc
<-> Char -> Doc
zchr Char
'='
Doc -> Doc -> Doc
<-> Doc
_valIpretty
Doc -> Doc -> Doc
<> Doc
_comma
Doc -> Doc -> Doc
<> Doc
_toIpretty
Doc -> Doc -> Doc
<> Doc
_step
Doc -> Doc -> Doc
<-> String -> Doc
zeroWidthText String
"do"
Doc -> Doc -> Doc
<-> PrettyPrintConfig -> Int -> [MToken] -> Doc
renderSLComments PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsAfterFor)
Doc -> Doc -> Doc
$+$ Doc
_bodyIpretty
Doc -> Doc -> Doc
$+$ PrettyPrintConfig -> Int -> Doc -> Doc
indent PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (String -> Doc
zeroWidthText String
"end")
)
_comma :: Doc
_comma =
( (if PrettyPrintConfig -> Bool
spaceBeforeComma PrettyPrintConfig
_lhsIppconf then Char -> Doc
zchr Char
' ' else Doc
empty)
Doc -> Doc -> Doc
<> Char -> Doc
zchr Char
','
Doc -> Doc -> Doc
<> (if PrettyPrintConfig -> Bool
spaceAfterComma PrettyPrintConfig
_lhsIppconf then Char -> Doc
zchr Char
' ' else Doc
empty)
)
_commentsAfterFor :: ([MToken], [MToken])
_commentsAfterFor =
( forall a. (a -> Bool) -> [a] -> ([a], [a])
span (\(MToken Region
pos Token
_) -> Region
pos Region -> Region -> Bool
`beforeOrOnLine` MToken -> Region
mpos MToken
var_) [MToken]
_lhsIcomments
)
_valOcomments :: [MToken]
_valOcomments =
( forall a b. (a, b) -> b
snd ([MToken], [MToken])
_commentsAfterFor
)
_valOparentOperatorPrecedence :: OperatorLevel
_valOparentOperatorPrecedence =
( OperatorLevel
TopLevelExpression
)
_valOparentOperatorAssociative :: Bool
_valOparentOperatorAssociative =
( Bool
True
)
_toOparentOperatorPrecedence :: OperatorLevel
_toOparentOperatorPrecedence =
( OperatorLevel
TopLevelExpression
)
_toOparentOperatorAssociative :: Bool
_toOparentOperatorAssociative =
( Bool
True
)
_stepOparentOperatorPrecedence :: OperatorLevel
_stepOparentOperatorPrecedence =
( OperatorLevel
TopLevelExpression
)
_stepOparentOperatorAssociative :: Bool
_stepOparentOperatorAssociative =
( Bool
True
)
_bodyOindent :: Int
_bodyOindent =
( Int
_lhsIindent forall a. Num a => a -> a -> a
+ Int
1
)
_copy :: Stat
_copy =
( MToken -> MExpr -> MExpr -> MExpr -> Block -> Stat
ANFor MToken
var_ MExpr
_valIcopy MExpr
_toIcopy MExpr
_stepIcopy Block
_bodyIcopy
)
_lhsOcopy :: Stat
_lhsOcopy =
( Stat
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_bodyIcomments
)
_valOforceMultiline :: Bool
_valOforceMultiline =
( Bool
_lhsIforceMultiline
)
_valOindent :: Int
_valOindent =
( Int
_lhsIindent
)
_valOppconf :: PrettyPrintConfig
_valOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_toOcomments :: [MToken]
_toOcomments =
( [MToken]
_valIcomments
)
_toOforceMultiline :: Bool
_toOforceMultiline =
( Bool
_lhsIforceMultiline
)
_toOindent :: Int
_toOindent =
( Int
_lhsIindent
)
_toOppconf :: PrettyPrintConfig
_toOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_stepOcomments :: [MToken]
_stepOcomments =
( [MToken]
_toIcomments
)
_stepOforceMultiline :: Bool
_stepOforceMultiline =
( Bool
_lhsIforceMultiline
)
_stepOindent :: Int
_stepOindent =
( Int
_lhsIindent
)
_stepOppconf :: PrettyPrintConfig
_stepOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_bodyOcomments :: [MToken]
_bodyOcomments =
( [MToken]
_stepIcomments
)
_bodyOforceMultiline :: Bool
_bodyOforceMultiline =
( Bool
_lhsIforceMultiline
)
_bodyOppconf :: PrettyPrintConfig
_bodyOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_bodyOstatRegion :: Region
_bodyOstatRegion =
( Region
_lhsIstatRegion
)
([MToken]
_valIcomments, MExpr
_valIcopy, Bool
_valIendsWithPrefixExpression, Bool
_valIisAssociative, Bool
_valIisLiteral, Bool
_valIisMultiline, Region
_valIpos, OperatorLevel
_valIprecedence, Doc
_valIpretty) =
T_MExpr
val_ [MToken]
_valOcomments Bool
_valOforceMultiline Int
_valOindent Bool
_valOparentOperatorAssociative OperatorLevel
_valOparentOperatorPrecedence PrettyPrintConfig
_valOppconf
([MToken]
_toIcomments, MExpr
_toIcopy, Bool
_toIendsWithPrefixExpression, Bool
_toIisAssociative, Bool
_toIisLiteral, Bool
_toIisMultiline, Region
_toIpos, OperatorLevel
_toIprecedence, Doc
_toIpretty) =
T_MExpr
to_ [MToken]
_toOcomments Bool
_toOforceMultiline Int
_toOindent Bool
_toOparentOperatorAssociative OperatorLevel
_toOparentOperatorPrecedence PrettyPrintConfig
_toOppconf
([MToken]
_stepIcomments, MExpr
_stepIcopy, Bool
_stepIendsWithPrefixExpression, Bool
_stepIisAssociative, Bool
_stepIisLiteral, Bool
_stepIisMultiline, Region
_stepIpos, OperatorLevel
_stepIprecedence, Doc
_stepIpretty) =
T_MExpr
step_ [MToken]
_stepOcomments Bool
_stepOforceMultiline Int
_stepOindent Bool
_stepOparentOperatorAssociative OperatorLevel
_stepOparentOperatorPrecedence PrettyPrintConfig
_stepOppconf
([MToken]
_bodyIcomments, Block
_bodyIcopy, Bool
_bodyIisMultiline, Doc
_bodyIpretty, Int
_bodyIstatementCount) =
T_Block
body_ [MToken]
_bodyOcomments Bool
_bodyOforceMultiline Int
_bodyOindent PrettyPrintConfig
_bodyOppconf Region
_bodyOstatRegion
in
([MToken]
_lhsOcomments, Stat
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression)
)
)
sem_Stat_AGFor
:: ([MToken])
-> T_MExprList
-> T_Block
-> T_Stat
sem_Stat_AGFor :: [MToken] -> T_MExprList -> T_Block -> T_Stat
sem_Stat_AGFor [MToken]
vars_ T_MExprList
vals_ T_Block
body_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIisLastStatement
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion
Bool
_lhsIwouldBeAmbiguousWithoutSemicolon ->
( let
_lhsOisMultiline :: Bool
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOendsWithPrefixExpression :: Bool
_lhsOpretty :: Doc
_bodyOindent :: Int
_valsOcomments :: ([MToken])
_valsOforceMultiline :: Bool
_valsOsomeElementsInListAreMultiline :: Bool
_lhsOcopy :: Stat
_lhsOcomments :: ([MToken])
_valsOindent :: Int
_valsOppconf :: PrettyPrintConfig
_bodyOcomments :: ([MToken])
_bodyOforceMultiline :: Bool
_bodyOppconf :: PrettyPrintConfig
_bodyOstatRegion :: Region
_valsIcomments :: ([MToken])
_valsIcopy :: MExprList
_valsIisAssociative :: Bool
_valsIisLast :: Bool
_valsIisMultiline :: Bool
_valsIpos :: Region
_valsIprecedence :: OperatorLevel
_valsIpretty :: Doc
_bodyIcomments :: ([MToken])
_bodyIcopy :: Block
_bodyIisMultiline :: Bool
_bodyIpretty :: Doc
_bodyIstatementCount :: Int
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
True
)
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOstartsWithExprPrefixExpression =
( Bool
False
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
False
)
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"for"
Doc -> Doc -> Doc
<-> forall a. (a -> Doc) -> String -> [a] -> Doc
printList MToken -> Doc
tok (Doc -> String
render Doc
_comma) [MToken]
vars_
Doc -> Doc -> Doc
<-> String -> Doc
zeroWidthText String
"in"
Doc -> Doc -> Doc
<-> Doc
_valsIpretty
Doc -> Doc -> Doc
<-> String -> Doc
zeroWidthText String
"do"
Doc -> Doc -> Doc
<-> PrettyPrintConfig -> Int -> [MToken] -> Doc
renderSLComments PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsAfterFor)
Doc -> Doc -> Doc
$+$ Doc
_bodyIpretty
Doc -> Doc -> Doc
$+$ PrettyPrintConfig -> Int -> Doc -> Doc
indent PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (String -> Doc
zeroWidthText String
"end")
)
_bodyOindent :: Int
_bodyOindent =
( Int
_lhsIindent forall a. Num a => a -> a -> a
+ Int
1
)
_comma :: Doc
_comma =
( (if PrettyPrintConfig -> Bool
spaceBeforeComma PrettyPrintConfig
_lhsIppconf then Char -> Doc
zchr Char
' ' else Doc
empty)
Doc -> Doc -> Doc
<> Char -> Doc
zchr Char
','
Doc -> Doc -> Doc
<> (if PrettyPrintConfig -> Bool
spaceAfterComma PrettyPrintConfig
_lhsIppconf then Char -> Doc
zchr Char
' ' else Doc
empty)
)
_commentsAfterFor :: ([MToken], [MToken])
_commentsAfterFor =
( forall a. (a -> Bool) -> [a] -> ([a], [a])
span (\(MToken Region
pos Token
_) -> Region
pos Region -> Region -> Bool
`beforeOrOnLine` MToken -> Region
mpos (forall a. [a] -> a
head [MToken]
vars_)) [MToken]
_lhsIcomments
)
_valsOcomments :: [MToken]
_valsOcomments =
( forall a b. (a, b) -> b
snd ([MToken], [MToken])
_commentsAfterFor
)
_valsOforceMultiline :: Bool
_valsOforceMultiline =
( Bool
False
)
_valsOsomeElementsInListAreMultiline :: Bool
_valsOsomeElementsInListAreMultiline =
( Bool
False
)
_copy :: Stat
_copy =
( [MToken] -> [MExpr] -> Block -> Stat
AGFor [MToken]
vars_ [MExpr]
_valsIcopy Block
_bodyIcopy
)
_lhsOcopy :: Stat
_lhsOcopy =
( Stat
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_bodyIcomments
)
_valsOindent :: Int
_valsOindent =
( Int
_lhsIindent
)
_valsOppconf :: PrettyPrintConfig
_valsOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_bodyOcomments :: [MToken]
_bodyOcomments =
( [MToken]
_valsIcomments
)
_bodyOforceMultiline :: Bool
_bodyOforceMultiline =
( Bool
_lhsIforceMultiline
)
_bodyOppconf :: PrettyPrintConfig
_bodyOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_bodyOstatRegion :: Region
_bodyOstatRegion =
( Region
_lhsIstatRegion
)
([MToken]
_valsIcomments, [MExpr]
_valsIcopy, Bool
_valsIisAssociative, Bool
_valsIisLast, Bool
_valsIisMultiline, Region
_valsIpos, OperatorLevel
_valsIprecedence, Doc
_valsIpretty) =
T_MExprList
vals_ [MToken]
_valsOcomments Bool
_valsOforceMultiline Int
_valsOindent PrettyPrintConfig
_valsOppconf Bool
_valsOsomeElementsInListAreMultiline
([MToken]
_bodyIcomments, Block
_bodyIcopy, Bool
_bodyIisMultiline, Doc
_bodyIpretty, Int
_bodyIstatementCount) =
T_Block
body_ [MToken]
_bodyOcomments Bool
_bodyOforceMultiline Int
_bodyOindent PrettyPrintConfig
_bodyOppconf Region
_bodyOstatRegion
in
([MToken]
_lhsOcomments, Stat
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression)
)
)
sem_Stat_AFunc
:: T_FuncName
-> ([MToken])
-> T_Block
-> T_Stat
sem_Stat_AFunc :: T_FuncName -> [MToken] -> T_Block -> T_Stat
sem_Stat_AFunc T_FuncName
name_ [MToken]
args_ T_Block
body_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIisLastStatement
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion
Bool
_lhsIwouldBeAmbiguousWithoutSemicolon ->
( let
_lhsOisMultiline :: Bool
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOendsWithPrefixExpression :: Bool
_lhsOpretty :: Doc
_nameOcomments :: ([MToken])
_bodyOindent :: Int
_lhsOcopy :: Stat
_lhsOcomments :: ([MToken])
_nameOindent :: Int
_nameOppconf :: PrettyPrintConfig
_bodyOcomments :: ([MToken])
_bodyOforceMultiline :: Bool
_bodyOppconf :: PrettyPrintConfig
_bodyOstatRegion :: Region
_nameIcomments :: ([MToken])
_nameIcopy :: FuncName
_nameIisMultiline :: Bool
_nameIpos :: Region
_nameIpretty :: Doc
_bodyIcomments :: ([MToken])
_bodyIcopy :: Block
_bodyIisMultiline :: Bool
_bodyIpretty :: Doc
_bodyIstatementCount :: Int
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
True
)
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOstartsWithExprPrefixExpression =
( Bool
False
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
False
)
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"function"
Doc -> Doc -> Doc
<-> Doc
_nameIpretty
Doc -> Doc -> Doc
<> PrettyPrintConfig -> IsEmpty -> Doc -> Doc
parens PrettyPrintConfig
_lhsIppconf IsEmpty
_emptyParams (forall a. (a -> Doc) -> String -> [a] -> Doc
printList MToken -> Doc
tok (Doc -> String
render Doc
_comma) [MToken]
args_)
Doc -> Doc -> Doc
<-> PrettyPrintConfig -> Int -> [MToken] -> Doc
renderSLComments PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsAfterFunc)
Doc -> Doc -> Doc
$+$ Doc
_bodyIpretty
Doc -> Doc -> Doc
$+$ PrettyPrintConfig -> Int -> Doc -> Doc
indent PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (String -> Doc
zeroWidthText String
"end")
)
_commentsAfterFunc :: ([MToken], [MToken])
_commentsAfterFunc =
( forall a. (a -> Bool) -> [a] -> ([a], [a])
span (\(MToken Region
pos Token
_) -> Region
pos Region -> Region -> Bool
`beforeOrOnLine` Region
_nameIpos) [MToken]
_lhsIcomments
)
_nameOcomments :: [MToken]
_nameOcomments =
( forall a b. (a, b) -> b
snd ([MToken], [MToken])
_commentsAfterFunc
)
_emptyParams :: IsEmpty
_emptyParams =
( Bool -> IsEmpty
toEmpty forall a b. (a -> b) -> a -> b
$ forall (t :: * -> *) a. Foldable t => t a -> Bool
null [MToken]
args_
)
_comma :: Doc
_comma =
( (if PrettyPrintConfig -> Bool
spaceBeforeComma PrettyPrintConfig
_lhsIppconf then Char -> Doc
zchr Char
' ' else Doc
empty)
Doc -> Doc -> Doc
<> Char -> Doc
zchr Char
','
Doc -> Doc -> Doc
<> (if PrettyPrintConfig -> Bool
spaceAfterComma PrettyPrintConfig
_lhsIppconf then Char -> Doc
zchr Char
' ' else Doc
empty)
)
_bodyOindent :: Int
_bodyOindent =
( Int
_lhsIindent forall a. Num a => a -> a -> a
+ Int
1
)
_copy :: Stat
_copy =
( FuncName -> [MToken] -> Block -> Stat
AFunc FuncName
_nameIcopy [MToken]
args_ Block
_bodyIcopy
)
_lhsOcopy :: Stat
_lhsOcopy =
( Stat
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_bodyIcomments
)
_nameOindent :: Int
_nameOindent =
( Int
_lhsIindent
)
_nameOppconf :: PrettyPrintConfig
_nameOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_bodyOcomments :: [MToken]
_bodyOcomments =
( [MToken]
_nameIcomments
)
_bodyOforceMultiline :: Bool
_bodyOforceMultiline =
( Bool
_lhsIforceMultiline
)
_bodyOppconf :: PrettyPrintConfig
_bodyOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_bodyOstatRegion :: Region
_bodyOstatRegion =
( Region
_lhsIstatRegion
)
([MToken]
_nameIcomments, FuncName
_nameIcopy, Bool
_nameIisMultiline, Region
_nameIpos, Doc
_nameIpretty) =
T_FuncName
name_ [MToken]
_nameOcomments Int
_nameOindent PrettyPrintConfig
_nameOppconf
([MToken]
_bodyIcomments, Block
_bodyIcopy, Bool
_bodyIisMultiline, Doc
_bodyIpretty, Int
_bodyIstatementCount) =
T_Block
body_ [MToken]
_bodyOcomments Bool
_bodyOforceMultiline Int
_bodyOindent PrettyPrintConfig
_bodyOppconf Region
_bodyOstatRegion
in
([MToken]
_lhsOcomments, Stat
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression)
)
)
sem_Stat_ALocFunc
:: T_FuncName
-> ([MToken])
-> T_Block
-> T_Stat
sem_Stat_ALocFunc :: T_FuncName -> [MToken] -> T_Block -> T_Stat
sem_Stat_ALocFunc T_FuncName
name_ [MToken]
args_ T_Block
body_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
Bool
_lhsIisLastStatement
PrettyPrintConfig
_lhsIppconf
Region
_lhsIstatRegion
Bool
_lhsIwouldBeAmbiguousWithoutSemicolon ->
( let
_lhsOisMultiline :: Bool
_lhsOpretty :: Doc
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOendsWithPrefixExpression :: Bool
_nameOcomments :: ([MToken])
_bodyOindent :: Int
_lhsOcopy :: Stat
_lhsOcomments :: ([MToken])
_nameOindent :: Int
_nameOppconf :: PrettyPrintConfig
_bodyOcomments :: ([MToken])
_bodyOforceMultiline :: Bool
_bodyOppconf :: PrettyPrintConfig
_bodyOstatRegion :: Region
_nameIcomments :: ([MToken])
_nameIcopy :: FuncName
_nameIisMultiline :: Bool
_nameIpos :: Region
_nameIpretty :: Doc
_bodyIcomments :: ([MToken])
_bodyIcopy :: Block
_bodyIisMultiline :: Bool
_bodyIpretty :: Doc
_bodyIstatementCount :: Int
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
True
)
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"local function"
Doc -> Doc -> Doc
<-> Doc
_nameIpretty
Doc -> Doc -> Doc
<> PrettyPrintConfig -> IsEmpty -> Doc -> Doc
parens PrettyPrintConfig
_lhsIppconf IsEmpty
_emptyParams (forall a. (a -> Doc) -> String -> [a] -> Doc
printList MToken -> Doc
tok (Doc -> String
render Doc
_comma) [MToken]
args_)
Doc -> Doc -> Doc
<-> PrettyPrintConfig -> Int -> [MToken] -> Doc
renderSLComments PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (forall a b. (a, b) -> a
fst ([MToken], [MToken])
_commentsAfterFunc)
Doc -> Doc -> Doc
$+$ Doc
_bodyIpretty
Doc -> Doc -> Doc
$+$ PrettyPrintConfig -> Int -> Doc -> Doc
indent PrettyPrintConfig
_lhsIppconf Int
_lhsIindent (String -> Doc
zeroWidthText String
"end")
)
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOstartsWithExprPrefixExpression =
( Bool
False
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
False
)
_commentsAfterFunc :: ([MToken], [MToken])
_commentsAfterFunc =
( forall a. (a -> Bool) -> [a] -> ([a], [a])
span (\(MToken Region
pos Token
_) -> Region
pos Region -> Region -> Bool
`beforeOrOnLine` Region
_nameIpos) [MToken]
_lhsIcomments
)
_nameOcomments :: [MToken]
_nameOcomments =
( forall a b. (a, b) -> b
snd ([MToken], [MToken])
_commentsAfterFunc
)
_emptyParams :: IsEmpty
_emptyParams =
( Bool -> IsEmpty
toEmpty forall a b. (a -> b) -> a -> b
$ forall (t :: * -> *) a. Foldable t => t a -> Bool
null [MToken]
args_
)
_comma :: Doc
_comma =
( (if PrettyPrintConfig -> Bool
spaceBeforeComma PrettyPrintConfig
_lhsIppconf then Char -> Doc
zchr Char
' ' else Doc
empty)
Doc -> Doc -> Doc
<> Char -> Doc
zchr Char
','
Doc -> Doc -> Doc
<> (if PrettyPrintConfig -> Bool
spaceAfterComma PrettyPrintConfig
_lhsIppconf then Char -> Doc
zchr Char
' ' else Doc
empty)
)
_bodyOindent :: Int
_bodyOindent =
( Int
_lhsIindent forall a. Num a => a -> a -> a
+ Int
1
)
_copy :: Stat
_copy =
( FuncName -> [MToken] -> Block -> Stat
ALocFunc FuncName
_nameIcopy [MToken]
args_ Block
_bodyIcopy
)
_lhsOcopy :: Stat
_lhsOcopy =
( Stat
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_bodyIcomments
)
_nameOindent :: Int
_nameOindent =
( Int
_lhsIindent
)
_nameOppconf :: PrettyPrintConfig
_nameOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_bodyOcomments :: [MToken]
_bodyOcomments =
( [MToken]
_nameIcomments
)
_bodyOforceMultiline :: Bool
_bodyOforceMultiline =
( Bool
_lhsIforceMultiline
)
_bodyOppconf :: PrettyPrintConfig
_bodyOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_bodyOstatRegion :: Region
_bodyOstatRegion =
( Region
_lhsIstatRegion
)
([MToken]
_nameIcomments, FuncName
_nameIcopy, Bool
_nameIisMultiline, Region
_nameIpos, Doc
_nameIpretty) =
T_FuncName
name_ [MToken]
_nameOcomments Int
_nameOindent PrettyPrintConfig
_nameOppconf
([MToken]
_bodyIcomments, Block
_bodyIcopy, Bool
_bodyIisMultiline, Doc
_bodyIpretty, Int
_bodyIstatementCount) =
T_Block
body_ [MToken]
_bodyOcomments Bool
_bodyOforceMultiline Int
_bodyOindent PrettyPrintConfig
_bodyOppconf Region
_bodyOstatRegion
in
([MToken]
_lhsOcomments, Stat
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression)
)
)
sem_UnOp
:: UnOp
-> T_UnOp
sem_UnOp :: UnOp -> T_UnOp
sem_UnOp (UnOp
UnMinus) =
(T_UnOp
sem_UnOp_UnMinus)
sem_UnOp (UnOp
ANot) =
(T_UnOp
sem_UnOp_ANot)
sem_UnOp (UnOp
AHash) =
(T_UnOp
sem_UnOp_AHash)
type T_UnOp =
([MToken])
-> Int
-> PrettyPrintConfig
-> (([MToken]), UnOp, Bool, Doc)
data Inh_UnOp = Inh_UnOp { :: ([MToken]), Inh_UnOp -> Int
indent_Inh_UnOp :: Int, Inh_UnOp -> PrettyPrintConfig
ppconf_Inh_UnOp :: PrettyPrintConfig}
data Syn_UnOp = Syn_UnOp { :: ([MToken]), Syn_UnOp -> UnOp
copy_Syn_UnOp :: UnOp, Syn_UnOp -> Bool
isMultiline_Syn_UnOp :: Bool, Syn_UnOp -> Doc
pretty_Syn_UnOp :: Doc}
wrap_UnOp
:: T_UnOp
-> Inh_UnOp
-> Syn_UnOp
wrap_UnOp :: T_UnOp -> Inh_UnOp -> Syn_UnOp
wrap_UnOp T_UnOp
sem (Inh_UnOp [MToken]
_lhsIcomments Int
_lhsIindent PrettyPrintConfig
_lhsIppconf) =
( let
([MToken]
_lhsOcomments, UnOp
_lhsOcopy, Bool
_lhsOisMultiline, Doc
_lhsOpretty) = T_UnOp
sem [MToken]
_lhsIcomments Int
_lhsIindent PrettyPrintConfig
_lhsIppconf
in
([MToken] -> UnOp -> Bool -> Doc -> Syn_UnOp
Syn_UnOp [MToken]
_lhsOcomments UnOp
_lhsOcopy Bool
_lhsOisMultiline Doc
_lhsOpretty)
)
sem_UnOp_UnMinus :: T_UnOp
sem_UnOp_UnMinus :: T_UnOp
sem_UnOp_UnMinus =
( \[MToken]
_lhsIcomments
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOcopy :: UnOp
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"-"
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_copy :: UnOp
_copy =
( UnOp
UnMinus
)
_lhsOcopy :: UnOp
_lhsOcopy =
( UnOp
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, UnOp
_lhsOcopy, Bool
_lhsOisMultiline, Doc
_lhsOpretty)
)
)
sem_UnOp_ANot :: T_UnOp
sem_UnOp_ANot :: T_UnOp
sem_UnOp_ANot =
( \[MToken]
_lhsIcomments
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOcopy :: UnOp
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText (if PrettyPrintConfig -> Bool
cStyle PrettyPrintConfig
_lhsIppconf then String
"!" else String
"not ")
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_copy :: UnOp
_copy =
( UnOp
ANot
)
_lhsOcopy :: UnOp
_lhsOcopy =
( UnOp
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, UnOp
_lhsOcopy, Bool
_lhsOisMultiline, Doc
_lhsOpretty)
)
)
sem_UnOp_AHash :: T_UnOp
sem_UnOp_AHash :: T_UnOp
sem_UnOp_AHash =
( \[MToken]
_lhsIcomments
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOisMultiline :: Bool
_lhsOcopy :: UnOp
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( String -> Doc
zeroWidthText String
"#"
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_copy :: UnOp
_copy =
( UnOp
AHash
)
_lhsOcopy :: UnOp
_lhsOcopy =
( UnOp
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, UnOp
_lhsOcopy, Bool
_lhsOisMultiline, Doc
_lhsOpretty)
)
)
sem_VarsList
:: VarsList
-> T_VarsList
sem_VarsList :: [(PrefixExp, Maybe MExpr)] -> T_VarsList
sem_VarsList [(PrefixExp, Maybe MExpr)]
list =
(forall (t :: * -> *) a b.
Foldable t =>
(a -> b -> b) -> b -> t a -> b
Prelude.foldr T_Declaration -> T_VarsList -> T_VarsList
sem_VarsList_Cons T_VarsList
sem_VarsList_Nil (forall a b. (a -> b) -> [a] -> [b]
Prelude.map (PrefixExp, Maybe MExpr) -> T_Declaration
sem_Declaration [(PrefixExp, Maybe MExpr)]
list))
type T_VarsList =
([MToken])
-> Bool
-> Int
-> PrettyPrintConfig
-> (([MToken]), VarsList, Bool, Doc, Bool, Bool, Bool, Doc, Bool, Doc)
data Inh_VarsList = Inh_VarsList { :: ([MToken]), Inh_VarsList -> Bool
forceMultiline_Inh_VarsList :: Bool, Inh_VarsList -> Int
indent_Inh_VarsList :: Int, Inh_VarsList -> PrettyPrintConfig
ppconf_Inh_VarsList :: PrettyPrintConfig}
data Syn_VarsList = Syn_VarsList { :: ([MToken]), Syn_VarsList -> [(PrefixExp, Maybe MExpr)]
copy_Syn_VarsList :: VarsList, Syn_VarsList -> Bool
endsWithPrefixExpression_Syn_VarsList :: Bool, Syn_VarsList -> Doc
exprPretty_Syn_VarsList :: Doc, Syn_VarsList -> Bool
isDefined_Syn_VarsList :: Bool, Syn_VarsList -> Bool
isLast_Syn_VarsList :: Bool, Syn_VarsList -> Bool
isMultiline_Syn_VarsList :: Bool, Syn_VarsList -> Doc
pretty_Syn_VarsList :: Doc, Syn_VarsList -> Bool
startsWithExprPrefixExpression_Syn_VarsList :: Bool, Syn_VarsList -> Doc
varPretty_Syn_VarsList :: Doc}
wrap_VarsList
:: T_VarsList
-> Inh_VarsList
-> Syn_VarsList
wrap_VarsList :: T_VarsList -> Inh_VarsList -> Syn_VarsList
wrap_VarsList T_VarsList
sem (Inh_VarsList [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf) =
( let
([MToken]
_lhsOcomments, [(PrefixExp, Maybe MExpr)]
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Doc
_lhsOexprPretty, Bool
_lhsOisDefined, Bool
_lhsOisLast, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression, Doc
_lhsOvarPretty) = T_VarsList
sem [MToken]
_lhsIcomments Bool
_lhsIforceMultiline Int
_lhsIindent PrettyPrintConfig
_lhsIppconf
in
([MToken]
-> [(PrefixExp, Maybe MExpr)]
-> Bool
-> Doc
-> Bool
-> Bool
-> Bool
-> Doc
-> Bool
-> Doc
-> Syn_VarsList
Syn_VarsList [MToken]
_lhsOcomments [(PrefixExp, Maybe MExpr)]
_lhsOcopy Bool
_lhsOendsWithPrefixExpression Doc
_lhsOexprPretty Bool
_lhsOisDefined Bool
_lhsOisLast Bool
_lhsOisMultiline Doc
_lhsOpretty Bool
_lhsOstartsWithExprPrefixExpression Doc
_lhsOvarPretty)
)
sem_VarsList_Cons
:: T_Declaration
-> T_VarsList
-> T_VarsList
sem_VarsList_Cons :: T_Declaration -> T_VarsList -> T_VarsList
sem_VarsList_Cons T_Declaration
hd_ T_VarsList
tl_ =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOendsWithPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_lhsOisLast :: Bool
_lhsOexprPretty :: Doc
_lhsOisDefined :: Bool
_lhsOvarPretty :: Doc
_lhsOcopy :: VarsList
_lhsOcomments :: ([MToken])
_hdOcomments :: ([MToken])
_hdOforceMultiline :: Bool
_hdOindent :: Int
_hdOppconf :: PrettyPrintConfig
_tlOcomments :: ([MToken])
_tlOforceMultiline :: Bool
_tlOindent :: Int
_tlOppconf :: PrettyPrintConfig
_hdIcomments :: ([MToken])
_hdIcopy :: Declaration
_hdIendsWithPrefixExpression :: Bool
_hdIexprPretty :: Doc
_hdIisDefined :: Bool
_hdIisMultiline :: Bool
_hdIpretty :: Doc
_hdIstartsWithExprPrefixExpression :: Bool
_hdIvarPretty :: Doc
_tlIcomments :: ([MToken])
_tlIcopy :: VarsList
_tlIendsWithPrefixExpression :: Bool
_tlIexprPretty :: Doc
_tlIisDefined :: Bool
_tlIisLast :: Bool
_tlIisMultiline :: Bool
_tlIpretty :: Doc
_tlIstartsWithExprPrefixExpression :: Bool
_tlIvarPretty :: Doc
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
_varPretty
Doc -> Doc -> Doc
<-> if Bool
_isDefined then Char -> Doc
zchr Char
'=' Doc -> Doc -> Doc
<-> Doc
_exprPretty else Doc
empty
)
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOstartsWithExprPrefixExpression =
( Bool
_hdIstartsWithExprPrefixExpression
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( if Bool
_tlIisDefined then Bool
_tlIendsWithPrefixExpression else Bool
_hdIendsWithPrefixExpression
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
_hdIisMultiline Bool -> Bool -> Bool
|| Bool
_tlIisMultiline
)
_isDefined :: Bool
_isDefined =
( Bool
_hdIisDefined Bool -> Bool -> Bool
|| Bool
_tlIisDefined
)
_varPretty :: Doc
_varPretty =
( Doc
_hdIvarPretty
Doc -> Doc -> Doc
<> (if Bool
_tlIisLast then Doc
empty else Doc
_comma)
Doc -> Doc -> Doc
<> Doc
_tlIvarPretty
)
_exprPretty :: Doc
_exprPretty =
( Doc
_hdIexprPretty
Doc -> Doc -> Doc
<> (if Bool -> Bool
not Bool
_tlIisLast Bool -> Bool -> Bool
&& Bool
_tlIisDefined then Doc
_comma else Doc
empty)
Doc -> Doc -> Doc
<> Doc
_tlIexprPretty
)
_comma :: Doc
_comma =
( (if PrettyPrintConfig -> Bool
spaceBeforeComma PrettyPrintConfig
_lhsIppconf then Char -> Doc
zchr Char
' ' else Doc
empty)
Doc -> Doc -> Doc
<> Char -> Doc
zchr Char
','
Doc -> Doc -> Doc
<> (if PrettyPrintConfig -> Bool
spaceAfterComma PrettyPrintConfig
_lhsIppconf then Char -> Doc
zchr Char
' ' else Doc
empty)
)
_lhsOisLast :: Bool
_lhsOisLast =
( Bool
False
)
_lhsOexprPretty :: Doc
_lhsOexprPretty =
( Doc
_exprPretty
)
_lhsOisDefined :: Bool
_lhsOisDefined =
( Bool
_isDefined
)
_lhsOvarPretty :: Doc
_lhsOvarPretty =
( Doc
_varPretty
)
_copy :: [(PrefixExp, Maybe MExpr)]
_copy =
( (:) (PrefixExp, Maybe MExpr)
_hdIcopy [(PrefixExp, Maybe MExpr)]
_tlIcopy
)
_lhsOcopy :: [(PrefixExp, Maybe MExpr)]
_lhsOcopy =
( [(PrefixExp, Maybe MExpr)]
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_tlIcomments
)
_hdOcomments :: [MToken]
_hdOcomments =
( [MToken]
_lhsIcomments
)
_hdOforceMultiline :: Bool
_hdOforceMultiline =
( Bool
_lhsIforceMultiline
)
_hdOindent :: Int
_hdOindent =
( Int
_lhsIindent
)
_hdOppconf :: PrettyPrintConfig
_hdOppconf =
( PrettyPrintConfig
_lhsIppconf
)
_tlOcomments :: [MToken]
_tlOcomments =
( [MToken]
_hdIcomments
)
_tlOforceMultiline :: Bool
_tlOforceMultiline =
( Bool
_lhsIforceMultiline
)
_tlOindent :: Int
_tlOindent =
( Int
_lhsIindent
)
_tlOppconf :: PrettyPrintConfig
_tlOppconf =
( PrettyPrintConfig
_lhsIppconf
)
([MToken]
_hdIcomments, (PrefixExp, Maybe MExpr)
_hdIcopy, Bool
_hdIendsWithPrefixExpression, Doc
_hdIexprPretty, Bool
_hdIisDefined, Bool
_hdIisMultiline, Doc
_hdIpretty, Bool
_hdIstartsWithExprPrefixExpression, Doc
_hdIvarPretty) =
T_Declaration
hd_ [MToken]
_hdOcomments Bool
_hdOforceMultiline Int
_hdOindent PrettyPrintConfig
_hdOppconf
([MToken]
_tlIcomments, [(PrefixExp, Maybe MExpr)]
_tlIcopy, Bool
_tlIendsWithPrefixExpression, Doc
_tlIexprPretty, Bool
_tlIisDefined, Bool
_tlIisLast, Bool
_tlIisMultiline, Doc
_tlIpretty, Bool
_tlIstartsWithExprPrefixExpression, Doc
_tlIvarPretty) =
T_VarsList
tl_ [MToken]
_tlOcomments Bool
_tlOforceMultiline Int
_tlOindent PrettyPrintConfig
_tlOppconf
in
([MToken]
_lhsOcomments, [(PrefixExp, Maybe MExpr)]
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Doc
_lhsOexprPretty, Bool
_lhsOisDefined, Bool
_lhsOisLast, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression, Doc
_lhsOvarPretty)
)
)
sem_VarsList_Nil :: T_VarsList
sem_VarsList_Nil :: T_VarsList
sem_VarsList_Nil =
( \[MToken]
_lhsIcomments
Bool
_lhsIforceMultiline
Int
_lhsIindent
PrettyPrintConfig
_lhsIppconf ->
( let
_lhsOpretty :: Doc
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOendsWithPrefixExpression :: Bool
_lhsOisMultiline :: Bool
_lhsOisLast :: Bool
_lhsOexprPretty :: Doc
_lhsOisDefined :: Bool
_lhsOvarPretty :: Doc
_lhsOcopy :: VarsList
_lhsOcomments :: ([MToken])
_lhsOpretty :: Doc
_lhsOpretty =
( Doc
empty
)
_lhsOstartsWithExprPrefixExpression :: Bool
_lhsOstartsWithExprPrefixExpression =
( Bool
False
)
_lhsOendsWithPrefixExpression :: Bool
_lhsOendsWithPrefixExpression =
( Bool
False
)
_lhsOisMultiline :: Bool
_lhsOisMultiline =
( Bool
False
)
_lhsOisLast :: Bool
_lhsOisLast =
( Bool
True
)
_lhsOexprPretty :: Doc
_lhsOexprPretty =
( Doc
empty
)
_lhsOisDefined :: Bool
_lhsOisDefined =
( Bool
False
)
_lhsOvarPretty :: Doc
_lhsOvarPretty =
( Doc
empty
)
_copy :: [a]
_copy =
( []
)
_lhsOcopy :: [(PrefixExp, Maybe MExpr)]
_lhsOcopy =
( forall a. [a]
_copy
)
_lhsOcomments :: [MToken]
_lhsOcomments =
( [MToken]
_lhsIcomments
)
in
([MToken]
_lhsOcomments, [(PrefixExp, Maybe MExpr)]
_lhsOcopy, Bool
_lhsOendsWithPrefixExpression, Doc
_lhsOexprPretty, Bool
_lhsOisDefined, Bool
_lhsOisLast, Bool
_lhsOisMultiline, Doc
_lhsOpretty, Bool
_lhsOstartsWithExprPrefixExpression, Doc
_lhsOvarPretty)
)
)