glualint-1.26.0: src/GLuaFixer/AG/ASTLint.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE LambdaCase #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- UUAGC 0.9.55 (src/GLuaFixer/AG/ASTLint.ag)
module GLuaFixer.AG.ASTLint where
{-# LINE 9 "src/GLuaFixer/AG/../../GLua/AG/Token.ag" #-}
import GHC.Generics
import Text.ParserCombinators.UU.BasicInstances hiding (pos)
{-# LINE 19 "src/GLuaFixer/AG/ASTLint.hs" #-}
{-# LINE 10 "src/GLuaFixer/AG/../../GLua/AG/AST.ag" #-}
import Data.Aeson
import GHC.Generics
import GLua.AG.Token
import GLua.TokenTypes ()
{-# LINE 27 "src/GLuaFixer/AG/ASTLint.hs" #-}
{-# LINE 10 "src/GLuaFixer/AG/ASTLint.ag" #-}
import Data.Char (isLower, isUpper)
import qualified Data.Map.Strict as M
import Data.Maybe
import qualified Data.Set as S
import GLua.AG.AST
import qualified GLua.AG.PrettyPrint as PP
import qualified GLua.AG.Token as T
import GLua.TokenTypes
import GLuaFixer.LintMessage
import GLuaFixer.LintSettings
{-# LINE 41 "src/GLuaFixer/AG/ASTLint.hs" #-}
{-# LINE 28 "src/GLuaFixer/AG/ASTLint.ag" #-}
warn :: Region -> Issue -> FilePath -> LintMessage
warn pos issue = LintMessage LintWarning pos issue
-- Used in detecting "not (a == b)" kind of things
oppositeBinOp :: BinOp -> Maybe String
oppositeBinOp ALT = Just ">="
oppositeBinOp AGT = Just "<="
oppositeBinOp ALEQ = Just ">"
oppositeBinOp AGEQ = Just "<"
oppositeBinOp ANEq = Just "=="
oppositeBinOp AEq = Just "~="
oppositeBinOp _ = Nothing
-- Checks whether a variable shadows existing variables
checkShadows :: [M.Map String (Bool, Region)] -> MToken -> Maybe (FilePath -> LintMessage)
checkShadows [] _ = Nothing
checkShadows _ (MToken _ (Identifier "_")) = Nothing -- Exception for vars named '_'
checkShadows (scope : scs) mtok' =
if M.member lbl scope
then Just $ warn (mpos mtok') $ VariableShadows lbl location
else checkShadows scs mtok'
where
lbl = tokenLabel mtok'
location = snd $ fromMaybe (error "checkShadows fromMaybe") $ M.lookup lbl scope
-- Determines whether a variable is local
-- It is local if it does not exist in any but the topmost (global) scope
-- it may or may not exist in the topmost scope.
isVariableLocal :: [M.Map String (Bool, Region)] -> String -> Bool
isVariableLocal [] _ = False
isVariableLocal [_] _ = False
isVariableLocal (scope : scs) var =
case M.lookup var scope of
Just _ -> True
Nothing -> isVariableLocal scs var
-- Registers a variable as global variable when it hasn't been
-- introduced in any of the visible scopes
registerVariable :: [M.Map String (Bool, Region)] -> Region -> String -> Bool -> [M.Map String (Bool, Region)]
registerVariable [] _ _ _ = error "cannot register top level variable"
registerVariable (scope : []) pos var used =
[ case M.lookup var scope of
Just (used', pos') -> M.insert var (used || used', pos') scope
Nothing -> M.insert var (used, pos) scope
] -- global scope
registerVariable (scope : scs) pos var used = case M.lookup var scope of
Just (True, _) -> scope : scs
Just (False, pos') -> M.insert var (used, pos') scope : scs
Nothing -> scope : registerVariable scs pos var used
findSelf :: [MToken] -> Bool
findSelf ((MToken _ (Identifier "self")) : _) = True
findSelf _ = False
data VariableStyle
= StartsLowerCase
| StartsUpperCase
| VariableStyleNeither
deriving (Eq)
data DeterminedVariableStyle
= VarStyleNotDetermined
| VarStyleDetermined !VariableStyle
combineDeterminedVarStyle :: DeterminedVariableStyle -> VariableStyle -> DeterminedVariableStyle
combineDeterminedVarStyle old new = case old of
VarStyleNotDetermined -> VarStyleDetermined new
VarStyleDetermined VariableStyleNeither -> VarStyleDetermined new
_ -> old
determineVariableStyle :: String -> VariableStyle
determineVariableStyle = \case
[] -> VariableStyleNeither
(c : _)
| isLower c -> StartsLowerCase
| isUpper c -> StartsUpperCase
| otherwise -> VariableStyleNeither
variableStyleInconsistent :: DeterminedVariableStyle -> VariableStyle -> Bool
variableStyleInconsistent determinedStyle varStyle = case determinedStyle of
VarStyleNotDetermined -> False
VarStyleDetermined VariableStyleNeither -> False
VarStyleDetermined existing -> case varStyle of
VariableStyleNeither -> False
_ -> existing /= varStyle
unknownIdentifier :: String
unknownIdentifier = "Unknown identifier"
{-# LINE 135 "src/GLuaFixer/AG/ASTLint.hs" #-}
{-# LINE 647 "src/GLuaFixer/AG/ASTLint.ag" #-}
inh_AST :: LintSettings -> Inh_AST
inh_AST conf =
Inh_AST
{ config_Inh_AST = conf
, isMeta_Inh_AST = False
, loopLevel_Inh_AST = 0
, globalDefinitions_Inh_AST = M.empty
, mtokenPos_Inh_AST = emptyRg
, scopeLevel_Inh_AST = 0
, scopes_Inh_AST = [M.empty]
, funcName_Inh_AST = ""
, isInModule_Inh_AST = False
, variableStyle_Inh_AST = VarStyleNotDetermined
}
allAttributes :: LintSettings -> AST -> Syn_AST
allAttributes conf p = wrap_AST (sem_AST p) (inh_AST conf)
astWarnings :: LintSettings -> AST -> [String -> LintMessage]
astWarnings conf p = warnings_Syn_AST $ allAttributes conf p
globalDefinitions :: LintSettings -> AST -> M.Map String [Region]
globalDefinitions conf p = globalDefinitions_Syn_AST $ allAttributes conf p
{-# LINE 161 "src/GLuaFixer/AG/ASTLint.hs" #-}
-- AReturn -----------------------------------------------------
-- cata
sem_AReturn
:: AReturn
-> T_AReturn
sem_AReturn (AReturn _pos _values) =
(sem_AReturn_AReturn (sem_Region _pos) (sem_MExprList _values))
sem_AReturn (NoReturn) =
(sem_AReturn_NoReturn)
-- semantic domain
type T_AReturn = (AReturn, T_AReturn_1)
type T_AReturn_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> DeterminedVariableStyle
-> ((M.Map String [Region]), String, Bool, Region, ([M.Map String (Bool, Region)]), Int, DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_AReturn = Inh_AReturn {config_Inh_AReturn :: LintSettings, funcName_Inh_AReturn :: String, globalDefinitions_Inh_AReturn :: (M.Map String [Region]), isInModule_Inh_AReturn :: Bool, isMeta_Inh_AReturn :: Bool, loopLevel_Inh_AReturn :: Int, mtokenPos_Inh_AReturn :: Region, scopeLevel_Inh_AReturn :: Int, scopes_Inh_AReturn :: ([M.Map String (Bool, Region)]), variableStyle_Inh_AReturn :: DeterminedVariableStyle}
data Syn_AReturn = Syn_AReturn {copy_Syn_AReturn :: AReturn, globalDefinitions_Syn_AReturn :: (M.Map String [Region]), identifier_Syn_AReturn :: String, isInModule_Syn_AReturn :: Bool, mtokenPos_Syn_AReturn :: Region, scopes_Syn_AReturn :: ([M.Map String (Bool, Region)]), statementCount_Syn_AReturn :: Int, variableStyle_Syn_AReturn :: DeterminedVariableStyle, warnings_Syn_AReturn :: ([String -> LintMessage])}
wrap_AReturn
:: T_AReturn
-> Inh_AReturn
-> Syn_AReturn
wrap_AReturn sem (Inh_AReturn _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle) =
( let
(_lhsOcopy, sem_1) = sem
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOstatementCount, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle
in
(Syn_AReturn _lhsOcopy _lhsOglobalDefinitions _lhsOidentifier _lhsOisInModule _lhsOmtokenPos _lhsOscopes _lhsOstatementCount _lhsOvariableStyle _lhsOwarnings)
)
sem_AReturn_AReturn
:: T_Region
-> T_MExprList
-> T_AReturn
sem_AReturn_AReturn pos_ values_ =
( case (values_) of
(_valuesIcopy, values_1) ->
( case (pos_) of
(_posIcopy, _posIidentifier, _posIwarnings) ->
( case ( ( AReturn _posIcopy _valuesIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_AReturn_AReturn_1 :: T_AReturn_1
sem_AReturn_AReturn_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_valuesOscopes ->
( case ( ( _lhsIisMeta
)
) of
_valuesOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_valuesOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_valuesOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_valuesOconfig ->
( case ( ( _lhsIvariableStyle
)
) of
_valuesOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_valuesOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_valuesOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_valuesOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_valuesOfuncName ->
( case ( ( True
)
) of
_valuesOtopLevel ->
( case ( ( True
)
) of
_valuesOinParentheses ->
( case (values_1 _valuesOconfig _valuesOfuncName _valuesOglobalDefinitions _valuesOinParentheses _valuesOisInModule _valuesOisMeta _valuesOloopLevel _valuesOmtokenPos _valuesOscopeLevel _valuesOscopes _valuesOtopLevel _valuesOvariableStyle) of
(_valuesIglobalDefinitions, _valuesIidentifier, _valuesIisInModule, _valuesImtokenPos, _valuesIscopes, _valuesIvariableStyle, _valuesIwarnings) ->
( case ( ( _valuesIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _posIidentifier _valuesIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( _valuesIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _posIcopy
)
) of
_lhsOmtokenPos ->
( case ( ( _valuesIscopes
)
) of
_lhsOscopes ->
( case ( ( 1
)
) of
_lhsOstatementCount ->
( case ( ( _valuesIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _posIwarnings ++ _valuesIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOstatementCount, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_AReturn_AReturn_1
)
) of
(sem_AReturn_1) ->
(_lhsOcopy, sem_AReturn_1)
)
)
)
)
)
sem_AReturn_NoReturn :: T_AReturn
sem_AReturn_NoReturn =
( case ( ( NoReturn
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_AReturn_NoReturn_1 :: T_AReturn_1
sem_AReturn_NoReturn_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( 0
)
) of
_lhsOstatementCount ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOstatementCount, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
in
sem_AReturn_NoReturn_1
)
) of
(sem_AReturn_1) ->
(_lhsOcopy, sem_AReturn_1)
)
)
)
-- AST ---------------------------------------------------------
-- cata
sem_AST
:: AST
-> T_AST
sem_AST (AST _comments _chunk) =
(sem_AST_AST _comments (sem_Block _chunk))
-- semantic domain
type T_AST =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> DeterminedVariableStyle
-> (AST, (M.Map String [Region]), String, Bool, Region, ([M.Map String (Bool, Region)]), DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_AST = Inh_AST {config_Inh_AST :: LintSettings, funcName_Inh_AST :: String, globalDefinitions_Inh_AST :: (M.Map String [Region]), isInModule_Inh_AST :: Bool, isMeta_Inh_AST :: Bool, loopLevel_Inh_AST :: Int, mtokenPos_Inh_AST :: Region, scopeLevel_Inh_AST :: Int, scopes_Inh_AST :: ([M.Map String (Bool, Region)]), variableStyle_Inh_AST :: DeterminedVariableStyle}
data Syn_AST = Syn_AST {copy_Syn_AST :: AST, globalDefinitions_Syn_AST :: (M.Map String [Region]), identifier_Syn_AST :: String, isInModule_Syn_AST :: Bool, mtokenPos_Syn_AST :: Region, scopes_Syn_AST :: ([M.Map String (Bool, Region)]), variableStyle_Syn_AST :: DeterminedVariableStyle, warnings_Syn_AST :: ([String -> LintMessage])}
wrap_AST
:: T_AST
-> Inh_AST
-> Syn_AST
wrap_AST sem (Inh_AST _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle) =
( let
(_lhsOcopy, _lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings) = sem _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle
in
(Syn_AST _lhsOcopy _lhsOglobalDefinitions _lhsOidentifier _lhsOisInModule _lhsOmtokenPos _lhsOscopes _lhsOvariableStyle _lhsOwarnings)
)
sem_AST_AST
:: ([MToken])
-> T_Block
-> T_AST
sem_AST_AST comments_ chunk_ =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case (chunk_) of
(_chunkIcopy, chunk_1) ->
( case ( ( AST comments_ _chunkIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( _lhsIisMeta
)
) of
_chunkOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_chunkOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_chunkOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_chunkOconfig ->
( case ( ( M.empty : _lhsIscopes
)
) of
_chunkOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_chunkOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_chunkOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_chunkOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_chunkOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_chunkOfuncName ->
( case ( ( False
)
) of
_chunkOisRepeat ->
( case (chunk_1 _chunkOconfig _chunkOfuncName _chunkOglobalDefinitions _chunkOisInModule _chunkOisMeta _chunkOisRepeat _chunkOloopLevel _chunkOmtokenPos _chunkOscopeLevel _chunkOscopes _chunkOvariableStyle) of
(_chunkIglobalDefinitions, _chunkIidentifier, _chunkIisIfStatement, _chunkIisInModule, _chunkImtokenPos, _chunkIscopes, _chunkIstatementCount, _chunkIvariableStyle, _chunkIwarnings) ->
( case ( ( _chunkIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( _chunkIidentifier
)
) of
_lhsOidentifier ->
( case ( ( _chunkIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _chunkImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _chunkIscopes
)
) of
_lhsOscopes ->
( case ( ( _chunkIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _chunkIwarnings
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
-- Args --------------------------------------------------------
-- cata
sem_Args
:: Args
-> T_Args
sem_Args (ListArgs _args) =
(sem_Args_ListArgs (sem_MExprList _args))
sem_Args (TableArg _arg) =
(sem_Args_TableArg (sem_FieldList _arg))
sem_Args (StringArg _arg) =
(sem_Args_StringArg (sem_MToken _arg))
-- semantic domain
type T_Args = (Args, T_Args_1)
type T_Args_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> DeterminedVariableStyle
-> ((M.Map String [Region]), String, Bool, Region, ([M.Map String (Bool, Region)]), DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_Args = Inh_Args {config_Inh_Args :: LintSettings, funcName_Inh_Args :: String, globalDefinitions_Inh_Args :: (M.Map String [Region]), isInModule_Inh_Args :: Bool, isMeta_Inh_Args :: Bool, loopLevel_Inh_Args :: Int, mtokenPos_Inh_Args :: Region, scopeLevel_Inh_Args :: Int, scopes_Inh_Args :: ([M.Map String (Bool, Region)]), variableStyle_Inh_Args :: DeterminedVariableStyle}
data Syn_Args = Syn_Args {copy_Syn_Args :: Args, globalDefinitions_Syn_Args :: (M.Map String [Region]), identifier_Syn_Args :: String, isInModule_Syn_Args :: Bool, mtokenPos_Syn_Args :: Region, scopes_Syn_Args :: ([M.Map String (Bool, Region)]), variableStyle_Syn_Args :: DeterminedVariableStyle, warnings_Syn_Args :: ([String -> LintMessage])}
wrap_Args
:: T_Args
-> Inh_Args
-> Syn_Args
wrap_Args sem (Inh_Args _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle) =
( let
(_lhsOcopy, sem_1) = sem
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle
in
(Syn_Args _lhsOcopy _lhsOglobalDefinitions _lhsOidentifier _lhsOisInModule _lhsOmtokenPos _lhsOscopes _lhsOvariableStyle _lhsOwarnings)
)
sem_Args_ListArgs
:: T_MExprList
-> T_Args
sem_Args_ListArgs args_ =
( case (args_) of
(_argsIcopy, args_1) ->
( case ( ( ListArgs _argsIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Args_ListArgs_1 :: T_Args_1
sem_Args_ListArgs_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_argsOscopes ->
( case ( ( _lhsIisMeta
)
) of
_argsOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_argsOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_argsOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_argsOconfig ->
( case ( ( _lhsIvariableStyle
)
) of
_argsOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_argsOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_argsOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_argsOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_argsOfuncName ->
( case ( ( True
)
) of
_argsOtopLevel ->
( case ( ( True
)
) of
_argsOinParentheses ->
( case (args_1 _argsOconfig _argsOfuncName _argsOglobalDefinitions _argsOinParentheses _argsOisInModule _argsOisMeta _argsOloopLevel _argsOmtokenPos _argsOscopeLevel _argsOscopes _argsOtopLevel _argsOvariableStyle) of
(_argsIglobalDefinitions, _argsIidentifier, _argsIisInModule, _argsImtokenPos, _argsIscopes, _argsIvariableStyle, _argsIwarnings) ->
( case ( ( _argsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( _argsIidentifier
)
) of
_lhsOidentifier ->
( case ( ( _argsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _argsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _argsIscopes
)
) of
_lhsOscopes ->
( case ( ( _argsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _argsIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Args_ListArgs_1
)
) of
(sem_Args_1) ->
(_lhsOcopy, sem_Args_1)
)
)
)
)
sem_Args_TableArg
:: T_FieldList
-> T_Args
sem_Args_TableArg arg_ =
( case (arg_) of
(_argIcopy, arg_1) ->
( case ( ( TableArg _argIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Args_TableArg_1 :: T_Args_1
sem_Args_TableArg_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_argOscopes ->
( case ( ( _lhsIisMeta
)
) of
_argOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_argOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_argOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_argOconfig ->
( case ( ( _lhsIvariableStyle
)
) of
_argOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_argOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_argOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_argOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_argOfuncName ->
( case ( ( S.empty
)
) of
_argOfieldNames ->
( case (arg_1 _argOconfig _argOfieldNames _argOfuncName _argOglobalDefinitions _argOisInModule _argOisMeta _argOloopLevel _argOmtokenPos _argOscopeLevel _argOscopes _argOvariableStyle) of
(_argIfieldNames, _argIglobalDefinitions, _argIidentifier, _argIisInModule, _argImtokenPos, _argIscopes, _argIvariableStyle, _argIwarnings) ->
( case ( ( _argIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( _argIidentifier
)
) of
_lhsOidentifier ->
( case ( ( _argIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _argImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _argIscopes
)
) of
_lhsOscopes ->
( case ( ( _argIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _argIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Args_TableArg_1
)
) of
(sem_Args_1) ->
(_lhsOcopy, sem_Args_1)
)
)
)
)
sem_Args_StringArg
:: T_MToken
-> T_Args
sem_Args_StringArg arg_ =
( case (arg_) of
(_argIcopy, _argImtok, _argImtokenPos, arg_1) ->
( case ( ( StringArg _argIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Args_StringArg_1 :: T_Args_1
sem_Args_StringArg_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_argOglobalDefinitions ->
( case ( ( _lhsIscopes
)
) of
_argOscopes ->
( case ( ( _lhsImtokenPos
)
) of
_argOmtokenPos ->
( case ( ( _lhsIisMeta
)
) of
_argOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_argOisInModule ->
( case ( ( _lhsIfuncName
)
) of
_argOfuncName ->
( case ( ( _lhsIconfig
)
) of
_argOconfig ->
( case (arg_1 _argOconfig _argOfuncName _argOglobalDefinitions _argOisInModule _argOisMeta _argOmtokenPos _argOscopes) of
(_argIglobalDefinitions, _argIidentifier, _argIisInModule, _argIscopes, _argIwarnings) ->
( case ( ( _argIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( _argIidentifier
)
) of
_lhsOidentifier ->
( case ( ( _argIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _argImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _argIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _argIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Args_StringArg_1
)
) of
(sem_Args_1) ->
(_lhsOcopy, sem_Args_1)
)
)
)
)
-- BinOp -------------------------------------------------------
-- cata
sem_BinOp
:: BinOp
-> T_BinOp
sem_BinOp (AOr) =
(sem_BinOp_AOr)
sem_BinOp (AAnd) =
(sem_BinOp_AAnd)
sem_BinOp (ALT) =
(sem_BinOp_ALT)
sem_BinOp (AGT) =
(sem_BinOp_AGT)
sem_BinOp (ALEQ) =
(sem_BinOp_ALEQ)
sem_BinOp (AGEQ) =
(sem_BinOp_AGEQ)
sem_BinOp (ANEq) =
(sem_BinOp_ANEq)
sem_BinOp (AEq) =
(sem_BinOp_AEq)
sem_BinOp (AConcatenate) =
(sem_BinOp_AConcatenate)
sem_BinOp (APlus) =
(sem_BinOp_APlus)
sem_BinOp (BinMinus) =
(sem_BinOp_BinMinus)
sem_BinOp (AMultiply) =
(sem_BinOp_AMultiply)
sem_BinOp (ADivide) =
(sem_BinOp_ADivide)
sem_BinOp (AModulus) =
(sem_BinOp_AModulus)
sem_BinOp (APower) =
(sem_BinOp_APower)
-- semantic domain
type T_BinOp = (BinOp, T_BinOp_1)
type T_BinOp_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> DeterminedVariableStyle
-> ((M.Map String [Region]), String, Bool, Region, ([M.Map String (Bool, Region)]), DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_BinOp = Inh_BinOp {config_Inh_BinOp :: LintSettings, funcName_Inh_BinOp :: String, globalDefinitions_Inh_BinOp :: (M.Map String [Region]), isInModule_Inh_BinOp :: Bool, isMeta_Inh_BinOp :: Bool, loopLevel_Inh_BinOp :: Int, mtokenPos_Inh_BinOp :: Region, scopeLevel_Inh_BinOp :: Int, scopes_Inh_BinOp :: ([M.Map String (Bool, Region)]), variableStyle_Inh_BinOp :: DeterminedVariableStyle}
data Syn_BinOp = Syn_BinOp {copy_Syn_BinOp :: BinOp, globalDefinitions_Syn_BinOp :: (M.Map String [Region]), identifier_Syn_BinOp :: String, isInModule_Syn_BinOp :: Bool, mtokenPos_Syn_BinOp :: Region, scopes_Syn_BinOp :: ([M.Map String (Bool, Region)]), variableStyle_Syn_BinOp :: DeterminedVariableStyle, warnings_Syn_BinOp :: ([String -> LintMessage])}
wrap_BinOp
:: T_BinOp
-> Inh_BinOp
-> Syn_BinOp
wrap_BinOp sem (Inh_BinOp _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle) =
( let
(_lhsOcopy, sem_1) = sem
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle
in
(Syn_BinOp _lhsOcopy _lhsOglobalDefinitions _lhsOidentifier _lhsOisInModule _lhsOmtokenPos _lhsOscopes _lhsOvariableStyle _lhsOwarnings)
)
sem_BinOp_AOr :: T_BinOp
sem_BinOp_AOr =
( case ( ( AOr
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_BinOp_AOr_1 :: T_BinOp_1
sem_BinOp_AOr_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
in
sem_BinOp_AOr_1
)
) of
(sem_BinOp_1) ->
(_lhsOcopy, sem_BinOp_1)
)
)
)
sem_BinOp_AAnd :: T_BinOp
sem_BinOp_AAnd =
( case ( ( AAnd
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_BinOp_AAnd_1 :: T_BinOp_1
sem_BinOp_AAnd_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
in
sem_BinOp_AAnd_1
)
) of
(sem_BinOp_1) ->
(_lhsOcopy, sem_BinOp_1)
)
)
)
sem_BinOp_ALT :: T_BinOp
sem_BinOp_ALT =
( case ( ( ALT
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_BinOp_ALT_1 :: T_BinOp_1
sem_BinOp_ALT_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
in
sem_BinOp_ALT_1
)
) of
(sem_BinOp_1) ->
(_lhsOcopy, sem_BinOp_1)
)
)
)
sem_BinOp_AGT :: T_BinOp
sem_BinOp_AGT =
( case ( ( AGT
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_BinOp_AGT_1 :: T_BinOp_1
sem_BinOp_AGT_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
in
sem_BinOp_AGT_1
)
) of
(sem_BinOp_1) ->
(_lhsOcopy, sem_BinOp_1)
)
)
)
sem_BinOp_ALEQ :: T_BinOp
sem_BinOp_ALEQ =
( case ( ( ALEQ
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_BinOp_ALEQ_1 :: T_BinOp_1
sem_BinOp_ALEQ_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
in
sem_BinOp_ALEQ_1
)
) of
(sem_BinOp_1) ->
(_lhsOcopy, sem_BinOp_1)
)
)
)
sem_BinOp_AGEQ :: T_BinOp
sem_BinOp_AGEQ =
( case ( ( AGEQ
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_BinOp_AGEQ_1 :: T_BinOp_1
sem_BinOp_AGEQ_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
in
sem_BinOp_AGEQ_1
)
) of
(sem_BinOp_1) ->
(_lhsOcopy, sem_BinOp_1)
)
)
)
sem_BinOp_ANEq :: T_BinOp
sem_BinOp_ANEq =
( case ( ( ANEq
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_BinOp_ANEq_1 :: T_BinOp_1
sem_BinOp_ANEq_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
in
sem_BinOp_ANEq_1
)
) of
(sem_BinOp_1) ->
(_lhsOcopy, sem_BinOp_1)
)
)
)
sem_BinOp_AEq :: T_BinOp
sem_BinOp_AEq =
( case ( ( AEq
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_BinOp_AEq_1 :: T_BinOp_1
sem_BinOp_AEq_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
in
sem_BinOp_AEq_1
)
) of
(sem_BinOp_1) ->
(_lhsOcopy, sem_BinOp_1)
)
)
)
sem_BinOp_AConcatenate :: T_BinOp
sem_BinOp_AConcatenate =
( case ( ( AConcatenate
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_BinOp_AConcatenate_1 :: T_BinOp_1
sem_BinOp_AConcatenate_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
in
sem_BinOp_AConcatenate_1
)
) of
(sem_BinOp_1) ->
(_lhsOcopy, sem_BinOp_1)
)
)
)
sem_BinOp_APlus :: T_BinOp
sem_BinOp_APlus =
( case ( ( APlus
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_BinOp_APlus_1 :: T_BinOp_1
sem_BinOp_APlus_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
in
sem_BinOp_APlus_1
)
) of
(sem_BinOp_1) ->
(_lhsOcopy, sem_BinOp_1)
)
)
)
sem_BinOp_BinMinus :: T_BinOp
sem_BinOp_BinMinus =
( case ( ( BinMinus
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_BinOp_BinMinus_1 :: T_BinOp_1
sem_BinOp_BinMinus_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
in
sem_BinOp_BinMinus_1
)
) of
(sem_BinOp_1) ->
(_lhsOcopy, sem_BinOp_1)
)
)
)
sem_BinOp_AMultiply :: T_BinOp
sem_BinOp_AMultiply =
( case ( ( AMultiply
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_BinOp_AMultiply_1 :: T_BinOp_1
sem_BinOp_AMultiply_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
in
sem_BinOp_AMultiply_1
)
) of
(sem_BinOp_1) ->
(_lhsOcopy, sem_BinOp_1)
)
)
)
sem_BinOp_ADivide :: T_BinOp
sem_BinOp_ADivide =
( case ( ( ADivide
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_BinOp_ADivide_1 :: T_BinOp_1
sem_BinOp_ADivide_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
in
sem_BinOp_ADivide_1
)
) of
(sem_BinOp_1) ->
(_lhsOcopy, sem_BinOp_1)
)
)
)
sem_BinOp_AModulus :: T_BinOp
sem_BinOp_AModulus =
( case ( ( AModulus
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_BinOp_AModulus_1 :: T_BinOp_1
sem_BinOp_AModulus_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
in
sem_BinOp_AModulus_1
)
) of
(sem_BinOp_1) ->
(_lhsOcopy, sem_BinOp_1)
)
)
)
sem_BinOp_APower :: T_BinOp
sem_BinOp_APower =
( case ( ( APower
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_BinOp_APower_1 :: T_BinOp_1
sem_BinOp_APower_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
in
sem_BinOp_APower_1
)
) of
(sem_BinOp_1) ->
(_lhsOcopy, sem_BinOp_1)
)
)
)
-- Block -------------------------------------------------------
-- cata
sem_Block
:: Block
-> T_Block
sem_Block (Block _stats _ret) =
(sem_Block_Block (sem_MStatList _stats) (sem_AReturn _ret))
-- semantic domain
type T_Block = (Block, T_Block_1)
type T_Block_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> DeterminedVariableStyle
-> ((M.Map String [Region]), String, Bool, Bool, Region, ([M.Map String (Bool, Region)]), Int, DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_Block = Inh_Block {config_Inh_Block :: LintSettings, funcName_Inh_Block :: String, globalDefinitions_Inh_Block :: (M.Map String [Region]), isInModule_Inh_Block :: Bool, isMeta_Inh_Block :: Bool, isRepeat_Inh_Block :: Bool, loopLevel_Inh_Block :: Int, mtokenPos_Inh_Block :: Region, scopeLevel_Inh_Block :: Int, scopes_Inh_Block :: ([M.Map String (Bool, Region)]), variableStyle_Inh_Block :: DeterminedVariableStyle}
data Syn_Block = Syn_Block {copy_Syn_Block :: Block, globalDefinitions_Syn_Block :: (M.Map String [Region]), identifier_Syn_Block :: String, isIfStatement_Syn_Block :: Bool, isInModule_Syn_Block :: Bool, mtokenPos_Syn_Block :: Region, scopes_Syn_Block :: ([M.Map String (Bool, Region)]), statementCount_Syn_Block :: Int, variableStyle_Syn_Block :: DeterminedVariableStyle, warnings_Syn_Block :: ([String -> LintMessage])}
wrap_Block
:: T_Block
-> Inh_Block
-> Syn_Block
wrap_Block sem (Inh_Block _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIisRepeat _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle) =
( let
(_lhsOcopy, sem_1) = sem
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisIfStatement, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOstatementCount, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIisRepeat _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle
in
(Syn_Block _lhsOcopy _lhsOglobalDefinitions _lhsOidentifier _lhsOisIfStatement _lhsOisInModule _lhsOmtokenPos _lhsOscopes _lhsOstatementCount _lhsOvariableStyle _lhsOwarnings)
)
sem_Block_Block
:: T_MStatList
-> T_AReturn
-> T_Block
sem_Block_Block stats_ ret_ =
( case (ret_) of
(_retIcopy, ret_1) ->
( case (stats_) of
(_statsIcopy, stats_1) ->
( case ( ( Block _statsIcopy _retIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Block_Block_1 :: T_Block_1
sem_Block_Block_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIisRepeat
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_statsOscopes ->
( case ( ( _lhsIisMeta
)
) of
_statsOisMeta ->
( case ( ( _lhsIconfig
)
) of
_statsOconfig ->
( case ( ( _lhsIvariableStyle
)
) of
_statsOvariableStyle ->
( case ( ( _lhsImtokenPos
)
) of
_statsOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_statsOloopLevel ->
( case ( ( _lhsIisInModule
)
) of
_statsOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_statsOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_statsOfuncName ->
( case ( ( _lhsIscopeLevel + 1
)
) of
_statsOscopeLevel ->
( case (stats_1 _statsOconfig _statsOfuncName _statsOglobalDefinitions _statsOisInModule _statsOisMeta _statsOloopLevel _statsOmtokenPos _statsOscopeLevel _statsOscopes _statsOvariableStyle) of
(_statsIglobalDefinitions, _statsIidentifier, _statsIisIfStatement, _statsIisInModule, _statsImtokenPos, _statsIscopes, _statsIstatementCount, _statsIvariableStyle, _statsIwarnings) ->
( case ( ( _statsIscopes
)
) of
_retOscopes ->
( case ( ( _lhsIisMeta
)
) of
_retOisMeta ->
( case ( ( _statsIisInModule
)
) of
_retOisInModule ->
( case ( ( _statsIglobalDefinitions
)
) of
_retOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_retOconfig ->
( case ( ( _statsIvariableStyle
)
) of
_retOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_retOscopeLevel ->
( case ( ( _statsImtokenPos
)
) of
_retOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_retOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_retOfuncName ->
( case (ret_1 _retOconfig _retOfuncName _retOglobalDefinitions _retOisInModule _retOisMeta _retOloopLevel _retOmtokenPos _retOscopeLevel _retOscopes _retOvariableStyle) of
(_retIglobalDefinitions, _retIidentifier, _retIisInModule, _retImtokenPos, _retIscopes, _retIstatementCount, _retIvariableStyle, _retIwarnings) ->
( case ( ( _retIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _statsIidentifier _retIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( _statsIisIfStatement
)
) of
_lhsOisIfStatement ->
( case ( ( _retIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _retImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( if _lhsIisRepeat then _retIscopes else tail _retIscopes
)
) of
_lhsOscopes ->
( case ( ( _statsIstatementCount + _retIstatementCount
)
) of
_lhsOstatementCount ->
( case ( ( _retIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _statsIwarnings ++ _retIwarnings
)
) of
_warnings_augmented_syn ->
( case ( ( M.filterWithKey (\k (b, _) -> not (null k) && head k /= '_' && not b) (head _retIscopes)
)
) of
_deadVars ->
( case ( ( lint_maxScopeDepth _lhsIconfig
)
) of
_maxScopeDepth ->
( case ( ( if _maxScopeDepth == 0 || _lhsIscopeLevel /= _maxScopeDepth
then id
else (:) $ warn _statsImtokenPos ScopePyramids
)
) of
_warnings_augmented_f2 ->
( case ( ( if not (lint_unusedVars _lhsIconfig) || _lhsIisRepeat
then id
else (++) $ M.foldrWithKey (\k (_, pos) ls -> warn pos (UnusedVariable k) : ls) [] _deadVars
)
) of
_warnings_augmented_f1 ->
( case ( ( foldr ($) _warnings_augmented_syn [_warnings_augmented_f1, _warnings_augmented_f2]
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisIfStatement, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOstatementCount, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Block_Block_1
)
) of
(sem_Block_1) ->
(_lhsOcopy, sem_Block_1)
)
)
)
)
)
-- Declaration -------------------------------------------------
-- cata
sem_Declaration
:: Declaration
-> T_Declaration
sem_Declaration (x1, x2) =
(sem_Declaration_Tuple (sem_PrefixExp x1) (sem_MaybeMExpr x2))
-- semantic domain
type T_Declaration = (Declaration, T_Declaration_1)
type T_Declaration_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> DeterminedVariableStyle
-> ((M.Map String [Region]), String, Bool, Region, ([M.Map String (Bool, Region)]), DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_Declaration = Inh_Declaration {config_Inh_Declaration :: LintSettings, funcName_Inh_Declaration :: String, globalDefinitions_Inh_Declaration :: (M.Map String [Region]), isInModule_Inh_Declaration :: Bool, isMeta_Inh_Declaration :: Bool, localDefinition_Inh_Declaration :: Bool, loopLevel_Inh_Declaration :: Int, mtokenPos_Inh_Declaration :: Region, scopeLevel_Inh_Declaration :: Int, scopes_Inh_Declaration :: ([M.Map String (Bool, Region)]), variableStyle_Inh_Declaration :: DeterminedVariableStyle}
data Syn_Declaration = Syn_Declaration {copy_Syn_Declaration :: Declaration, globalDefinitions_Syn_Declaration :: (M.Map String [Region]), identifier_Syn_Declaration :: String, isInModule_Syn_Declaration :: Bool, mtokenPos_Syn_Declaration :: Region, scopes_Syn_Declaration :: ([M.Map String (Bool, Region)]), variableStyle_Syn_Declaration :: DeterminedVariableStyle, warnings_Syn_Declaration :: ([String -> LintMessage])}
wrap_Declaration
:: T_Declaration
-> Inh_Declaration
-> Syn_Declaration
wrap_Declaration sem (Inh_Declaration _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIlocalDefinition _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle) =
( let
(_lhsOcopy, sem_1) = sem
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIlocalDefinition _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle
in
(Syn_Declaration _lhsOcopy _lhsOglobalDefinitions _lhsOidentifier _lhsOisInModule _lhsOmtokenPos _lhsOscopes _lhsOvariableStyle _lhsOwarnings)
)
sem_Declaration_Tuple
:: T_PrefixExp
-> T_MaybeMExpr
-> T_Declaration
sem_Declaration_Tuple x1_ x2_ =
( case (x2_) of
(_x2Icopy, x2_1) ->
( case (x1_) of
(_x1Icopy, _x1IhasSuffixes, _x1ImtokenPos, _x1IvarName, x1_1) ->
( case ( ( (_x1Icopy, _x2Icopy)
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Declaration_Tuple_1 :: T_Declaration_1
sem_Declaration_Tuple_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIlocalDefinition
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIisMeta
)
) of
_x1OisMeta ->
( case ( ( _lhsIconfig
)
) of
_x1Oconfig ->
( case ( ( tokenLabel . fromMaybe (error "fromMaybe sem Declaration loc.var") $ _x1IvarName
)
) of
_var ->
( case ( ( if _lhsIlocalDefinition
then M.insert _var (False, _x1ImtokenPos) (head _lhsIscopes) : tail _lhsIscopes
else
if isJust _x1IvarName
then registerVariable _lhsIscopes _x1ImtokenPos _var _x1IhasSuffixes
else _lhsIscopes
)
) of
_x1Oscopes ->
( case ( ( Nothing
)
) of
_x1OvarBeingDefined ->
( case ( ( False
)
) of
_x1OregisterVarUse ->
( case ( ( _lhsIvariableStyle
)
) of
_x1OvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_x1OscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_x1OmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_x1OloopLevel ->
( case ( ( _lhsIisInModule
)
) of
_x1OisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_x1OglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_x1OfuncName ->
( case ( ( False
)
) of
_x1OtopLevel ->
( case ( ( False
)
) of
_x1OinParentheses ->
( case ( ( False
)
) of
_x1OisNegation ->
( case (x1_1 _x1Oconfig _x1OfuncName _x1OglobalDefinitions _x1OinParentheses _x1OisInModule _x1OisMeta _x1OisNegation _x1OloopLevel _x1OmtokenPos _x1OregisterVarUse _x1OscopeLevel _x1Oscopes _x1OtopLevel _x1OvarBeingDefined _x1OvariableStyle) of
(_x1IglobalDefinitions, _x1Iidentifier, _x1IisInModule, _x1IisSimpleExpression, _x1IisSingleVar, _x1Iscopes, _x1IvariableStyle, _x1Iwarnings) ->
( case ( ( _x1Iscopes
)
) of
_x2Oscopes ->
( case ( ( _lhsIisMeta
)
) of
_x2OisMeta ->
( case ( ( _x1IisInModule
)
) of
_x2OisInModule ->
( case ( ( _x1IglobalDefinitions
)
) of
_x2OglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_x2Oconfig ->
( case ( ( if _x1IhasSuffixes || not _lhsIlocalDefinition then Nothing else _x1IvarName
)
) of
_x2OvarBeingDefined ->
( case ( ( _x1IvariableStyle
)
) of
_x2OvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_x2OscopeLevel ->
( case ( ( _x1ImtokenPos
)
) of
_x2OmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_x2OloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_x2OfuncName ->
( case ( ( False
)
) of
_x2OisNegation ->
( case (x2_1 _x2Oconfig _x2OfuncName _x2OglobalDefinitions _x2OisInModule _x2OisMeta _x2OisNegation _x2OloopLevel _x2OmtokenPos _x2OscopeLevel _x2Oscopes _x2OvarBeingDefined _x2OvariableStyle) of
(_x2IglobalDefinitions, _x2Iidentifier, _x2IisInModule, _x2IisSingleVar, _x2ImtokenPos, _x2Iscopes, _x2IvariableStyle, _x2Iwarnings) ->
( case ( ( _x2IglobalDefinitions
)
) of
_globalDefinitions_augmented_syn ->
( case ( ( if _lhsIisInModule || _lhsIlocalDefinition || isVariableLocal _lhsIscopes _var || _x1IhasSuffixes
then id
else M.insertWith (++) _var [_x1ImtokenPos]
)
) of
_globalDefinitions_augmented_f1 ->
( case ( ( foldr ($) _globalDefinitions_augmented_syn [_globalDefinitions_augmented_f1]
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _x1Iidentifier _x2Iidentifier)
)
) of
_lhsOidentifier ->
( case ( ( _x2IisInModule
)
) of
_lhsOisInModule ->
( case ( ( _x1ImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _x2Iscopes
)
) of
_lhsOscopes ->
( case ( ( determineVariableStyle _var
)
) of
_varStyle ->
( case ( ( if _lhsIlocalDefinition then combineDeterminedVarStyle _lhsIvariableStyle _varStyle else _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _x1Iwarnings ++ _x2Iwarnings
)
) of
_warnings_augmented_syn ->
( case ( ( do
var <- _x1IvarName
if (Just var /= _x2IisSingleVar)
then checkShadows _lhsIscopes var
else Nothing
)
) of
_shadowWarning ->
( case ( ( if not (lint_shadowing _lhsIconfig) || not _lhsIlocalDefinition || isNothing _shadowWarning
then id
else (:) . fromMaybe (error "fromMaybe sem Declaration +warnings") $ _shadowWarning
)
) of
_warnings_augmented_f2 ->
( case ( ( if not (lint_inconsistentVariableStyle _lhsIconfig) || not _lhsIlocalDefinition || not (variableStyleInconsistent _lhsIvariableStyle _varStyle)
then id
else (:) $ warn _x1ImtokenPos InconsistentVariableNaming
)
) of
_warnings_augmented_f1 ->
( case ( ( foldr ($) _warnings_augmented_syn [_warnings_augmented_f1, _warnings_augmented_f2]
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Declaration_Tuple_1
)
) of
(sem_Declaration_1) ->
(_lhsOcopy, sem_Declaration_1)
)
)
)
)
)
-- Else --------------------------------------------------------
-- cata
sem_Else
:: Else
-> T_Else
sem_Else (Prelude.Just x) =
(sem_Else_Just (sem_MElse x))
sem_Else Prelude.Nothing =
sem_Else_Nothing
-- semantic domain
type T_Else = (Else, T_Else_1)
type T_Else_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> DeterminedVariableStyle
-> (Bool, (M.Map String [Region]), String, Bool, Region, ([M.Map String (Bool, Region)]), DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_Else = Inh_Else {config_Inh_Else :: LintSettings, funcName_Inh_Else :: String, globalDefinitions_Inh_Else :: (M.Map String [Region]), isInModule_Inh_Else :: Bool, isMeta_Inh_Else :: Bool, loopLevel_Inh_Else :: Int, mtokenPos_Inh_Else :: Region, scopeLevel_Inh_Else :: Int, scopes_Inh_Else :: ([M.Map String (Bool, Region)]), variableStyle_Inh_Else :: DeterminedVariableStyle}
data Syn_Else = Syn_Else {copy_Syn_Else :: Else, elseExists_Syn_Else :: Bool, globalDefinitions_Syn_Else :: (M.Map String [Region]), identifier_Syn_Else :: String, isInModule_Syn_Else :: Bool, mtokenPos_Syn_Else :: Region, scopes_Syn_Else :: ([M.Map String (Bool, Region)]), variableStyle_Syn_Else :: DeterminedVariableStyle, warnings_Syn_Else :: ([String -> LintMessage])}
wrap_Else
:: T_Else
-> Inh_Else
-> Syn_Else
wrap_Else sem (Inh_Else _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle) =
( let
(_lhsOcopy, sem_1) = sem
(_lhsOelseExists, _lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle
in
(Syn_Else _lhsOcopy _lhsOelseExists _lhsOglobalDefinitions _lhsOidentifier _lhsOisInModule _lhsOmtokenPos _lhsOscopes _lhsOvariableStyle _lhsOwarnings)
)
sem_Else_Just
:: T_MElse
-> T_Else
sem_Else_Just just_ =
( case (just_) of
(_justIcopy, just_1) ->
( case ( ( Just _justIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Else_Just_1 :: T_Else_1
sem_Else_Just_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( True
)
) of
_lhsOelseExists ->
( case ( ( _lhsIisMeta
)
) of
_justOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_justOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_justOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_justOconfig ->
( case ( ( M.empty : _lhsIscopes
)
) of
_justOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_justOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_justOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_justOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_justOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_justOfuncName ->
( case (just_1 _justOconfig _justOfuncName _justOglobalDefinitions _justOisInModule _justOisMeta _justOloopLevel _justOmtokenPos _justOscopeLevel _justOscopes _justOvariableStyle) of
(_justIelseExists, _justIglobalDefinitions, _justIidentifier, _justIisInModule, _justImtokenPos, _justIscopes, _justIstatementCount, _justIvariableStyle, _justIwarnings) ->
( case ( ( _justIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( _justIidentifier
)
) of
_lhsOidentifier ->
( case ( ( _justIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _justImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _justIscopes
)
) of
_lhsOscopes ->
( case ( ( _justIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _justIwarnings
)
) of
_warnings_augmented_syn ->
( case ( ( Region (rgStart _justImtokenPos) (customAdvanceToken (rgStart _justImtokenPos) T.Else)
)
) of
_keywordPos ->
( case ( ( if not (lint_emptyBlocks _lhsIconfig) || _justIstatementCount > 0
then id
else (:) $ warn _keywordPos EmptyElse
)
) of
_warnings_augmented_f1 ->
( case ( ( foldr ($) _warnings_augmented_syn [_warnings_augmented_f1]
)
) of
_lhsOwarnings ->
(_lhsOelseExists, _lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Else_Just_1
)
) of
(sem_Else_1) ->
(_lhsOcopy, sem_Else_1)
)
)
)
)
sem_Else_Nothing :: T_Else
sem_Else_Nothing =
( case ( ( Nothing
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Else_Nothing_1 :: T_Else_1
sem_Else_Nothing_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( False
)
) of
_lhsOelseExists ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOelseExists, _lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
in
sem_Else_Nothing_1
)
) of
(sem_Else_1) ->
(_lhsOcopy, sem_Else_1)
)
)
)
-- ElseIf ------------------------------------------------------
-- cata
sem_ElseIf
:: ElseIf
-> T_ElseIf
sem_ElseIf (x1, x2) =
(sem_ElseIf_Tuple (sem_MExpr x1) (sem_Block x2))
-- semantic domain
type T_ElseIf = (ElseIf, T_ElseIf_1)
type T_ElseIf_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> DeterminedVariableStyle
-> ((M.Map String [Region]), String, Bool, Region, ([M.Map String (Bool, Region)]), DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_ElseIf = Inh_ElseIf {config_Inh_ElseIf :: LintSettings, funcName_Inh_ElseIf :: String, globalDefinitions_Inh_ElseIf :: (M.Map String [Region]), isInModule_Inh_ElseIf :: Bool, isMeta_Inh_ElseIf :: Bool, loopLevel_Inh_ElseIf :: Int, mtokenPos_Inh_ElseIf :: Region, scopeLevel_Inh_ElseIf :: Int, scopes_Inh_ElseIf :: ([M.Map String (Bool, Region)]), variableStyle_Inh_ElseIf :: DeterminedVariableStyle}
data Syn_ElseIf = Syn_ElseIf {copy_Syn_ElseIf :: ElseIf, globalDefinitions_Syn_ElseIf :: (M.Map String [Region]), identifier_Syn_ElseIf :: String, isInModule_Syn_ElseIf :: Bool, mtokenPos_Syn_ElseIf :: Region, scopes_Syn_ElseIf :: ([M.Map String (Bool, Region)]), variableStyle_Syn_ElseIf :: DeterminedVariableStyle, warnings_Syn_ElseIf :: ([String -> LintMessage])}
wrap_ElseIf
:: T_ElseIf
-> Inh_ElseIf
-> Syn_ElseIf
wrap_ElseIf sem (Inh_ElseIf _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle) =
( let
(_lhsOcopy, sem_1) = sem
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle
in
(Syn_ElseIf _lhsOcopy _lhsOglobalDefinitions _lhsOidentifier _lhsOisInModule _lhsOmtokenPos _lhsOscopes _lhsOvariableStyle _lhsOwarnings)
)
sem_ElseIf_Tuple
:: T_MExpr
-> T_Block
-> T_ElseIf
sem_ElseIf_Tuple x1_ x2_ =
( case (x2_) of
(_x2Icopy, x2_1) ->
( case (x1_) of
(_x1Icopy, _x1ImtokenPos, x1_1) ->
( case ( ( (_x1Icopy, _x2Icopy)
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_ElseIf_Tuple_1 :: T_ElseIf_1
sem_ElseIf_Tuple_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIisMeta
)
) of
_x2OisMeta ->
( case ( ( _lhsIisInModule
)
) of
_x1OisInModule ->
( case ( ( _lhsIvariableStyle
)
) of
_x1OvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_x1Oscopes ->
( case ( ( _lhsIscopeLevel
)
) of
_x1OscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_x1OmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_x1OloopLevel ->
( case ( ( _lhsIisMeta
)
) of
_x1OisMeta ->
( case ( ( _lhsIglobalDefinitions
)
) of
_x1OglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_x1OfuncName ->
( case ( ( _lhsIconfig
)
) of
_x1Oconfig ->
( case ( ( Nothing
)
) of
_x1OvarBeingDefined ->
( case ( ( True
)
) of
_x1OtopLevel ->
( case ( ( False
)
) of
_x1OinParentheses ->
( case ( ( False
)
) of
_x1OisNegation ->
( case (x1_1 _x1Oconfig _x1OfuncName _x1OglobalDefinitions _x1OinParentheses _x1OisInModule _x1OisMeta _x1OisNegation _x1OloopLevel _x1OmtokenPos _x1OscopeLevel _x1Oscopes _x1OtopLevel _x1OvarBeingDefined _x1OvariableStyle) of
(_x1IglobalDefinitions, _x1Iidentifier, _x1IisInModule, _x1IisSimpleExpression, _x1IisSingleVar, _x1Iscopes, _x1IvariableStyle, _x1Iwarnings) ->
( case ( ( _x1IisInModule
)
) of
_x2OisInModule ->
( case ( ( _x1IglobalDefinitions
)
) of
_x2OglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_x2Oconfig ->
( case ( ( M.empty : _x1Iscopes
)
) of
_x2Oscopes ->
( case ( ( _x1IvariableStyle
)
) of
_x2OvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_x2OscopeLevel ->
( case ( ( _x1ImtokenPos
)
) of
_x2OmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_x2OloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_x2OfuncName ->
( case ( ( False
)
) of
_x2OisRepeat ->
( case (x2_1 _x2Oconfig _x2OfuncName _x2OglobalDefinitions _x2OisInModule _x2OisMeta _x2OisRepeat _x2OloopLevel _x2OmtokenPos _x2OscopeLevel _x2Oscopes _x2OvariableStyle) of
(_x2IglobalDefinitions, _x2Iidentifier, _x2IisIfStatement, _x2IisInModule, _x2ImtokenPos, _x2Iscopes, _x2IstatementCount, _x2IvariableStyle, _x2Iwarnings) ->
( case ( ( _x2IglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _x1Iidentifier _x2Iidentifier)
)
) of
_lhsOidentifier ->
( case ( ( _x2IisInModule
)
) of
_lhsOisInModule ->
( case ( ( _x2ImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _x2Iscopes
)
) of
_lhsOscopes ->
( case ( ( _x2IvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _x1Iwarnings ++ _x2Iwarnings
)
) of
_warnings_augmented_syn ->
( case ( ( Region (rgStart _lhsImtokenPos) (customAdvanceToken (rgStart _lhsImtokenPos) T.Elseif)
)
) of
_keywordPos ->
( case ( ( if not (lint_emptyBlocks _lhsIconfig) || _x2IstatementCount > 0
then id
else (:) $ warn _keywordPos EmptyElseIf
)
) of
_warnings_augmented_f1 ->
( case ( ( foldr ($) _warnings_augmented_syn [_warnings_augmented_f1]
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_ElseIf_Tuple_1
)
) of
(sem_ElseIf_1) ->
(_lhsOcopy, sem_ElseIf_1)
)
)
)
)
)
-- ElseIfList --------------------------------------------------
-- cata
sem_ElseIfList
:: ElseIfList
-> T_ElseIfList
sem_ElseIfList list =
(Prelude.foldr sem_ElseIfList_Cons sem_ElseIfList_Nil (Prelude.map sem_MElseIf list))
-- semantic domain
type T_ElseIfList = (ElseIfList, T_ElseIfList_1)
type T_ElseIfList_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> DeterminedVariableStyle
-> (Bool, (M.Map String [Region]), String, Bool, Region, ([M.Map String (Bool, Region)]), DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_ElseIfList = Inh_ElseIfList {config_Inh_ElseIfList :: LintSettings, funcName_Inh_ElseIfList :: String, globalDefinitions_Inh_ElseIfList :: (M.Map String [Region]), isInModule_Inh_ElseIfList :: Bool, isMeta_Inh_ElseIfList :: Bool, loopLevel_Inh_ElseIfList :: Int, mtokenPos_Inh_ElseIfList :: Region, scopeLevel_Inh_ElseIfList :: Int, scopes_Inh_ElseIfList :: ([M.Map String (Bool, Region)]), variableStyle_Inh_ElseIfList :: DeterminedVariableStyle}
data Syn_ElseIfList = Syn_ElseIfList {copy_Syn_ElseIfList :: ElseIfList, elseExists_Syn_ElseIfList :: Bool, globalDefinitions_Syn_ElseIfList :: (M.Map String [Region]), identifier_Syn_ElseIfList :: String, isInModule_Syn_ElseIfList :: Bool, mtokenPos_Syn_ElseIfList :: Region, scopes_Syn_ElseIfList :: ([M.Map String (Bool, Region)]), variableStyle_Syn_ElseIfList :: DeterminedVariableStyle, warnings_Syn_ElseIfList :: ([String -> LintMessage])}
wrap_ElseIfList
:: T_ElseIfList
-> Inh_ElseIfList
-> Syn_ElseIfList
wrap_ElseIfList sem (Inh_ElseIfList _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle) =
( let
(_lhsOcopy, sem_1) = sem
(_lhsOelseExists, _lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle
in
(Syn_ElseIfList _lhsOcopy _lhsOelseExists _lhsOglobalDefinitions _lhsOidentifier _lhsOisInModule _lhsOmtokenPos _lhsOscopes _lhsOvariableStyle _lhsOwarnings)
)
sem_ElseIfList_Cons
:: T_MElseIf
-> T_ElseIfList
-> T_ElseIfList
sem_ElseIfList_Cons hd_ tl_ =
( case (tl_) of
(_tlIcopy, tl_1) ->
( case (hd_) of
(_hdIcopy, hd_1) ->
( case ( ( (:) _hdIcopy _tlIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_ElseIfList_Cons_1 :: T_ElseIfList_1
sem_ElseIfList_Cons_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( True
)
) of
_lhsOelseExists ->
( case ( ( _lhsIscopes
)
) of
_hdOscopes ->
( case ( ( _lhsIisMeta
)
) of
_hdOisMeta ->
( case ( ( _lhsIconfig
)
) of
_hdOconfig ->
( case ( ( _lhsIvariableStyle
)
) of
_hdOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_hdOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_hdOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_hdOloopLevel ->
( case ( ( _lhsIisInModule
)
) of
_hdOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_hdOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_hdOfuncName ->
( case (hd_1 _hdOconfig _hdOfuncName _hdOglobalDefinitions _hdOisInModule _hdOisMeta _hdOloopLevel _hdOmtokenPos _hdOscopeLevel _hdOscopes _hdOvariableStyle) of
(_hdIglobalDefinitions, _hdIidentifier, _hdIisInModule, _hdImtokenPos, _hdIscopes, _hdIvariableStyle, _hdIwarnings) ->
( case ( ( _hdIscopes
)
) of
_tlOscopes ->
( case ( ( _lhsIisMeta
)
) of
_tlOisMeta ->
( case ( ( _hdIisInModule
)
) of
_tlOisInModule ->
( case ( ( _hdIglobalDefinitions
)
) of
_tlOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_tlOconfig ->
( case ( ( _hdIvariableStyle
)
) of
_tlOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_tlOscopeLevel ->
( case ( ( _hdImtokenPos
)
) of
_tlOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_tlOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_tlOfuncName ->
( case (tl_1 _tlOconfig _tlOfuncName _tlOglobalDefinitions _tlOisInModule _tlOisMeta _tlOloopLevel _tlOmtokenPos _tlOscopeLevel _tlOscopes _tlOvariableStyle) of
(_tlIelseExists, _tlIglobalDefinitions, _tlIidentifier, _tlIisInModule, _tlImtokenPos, _tlIscopes, _tlIvariableStyle, _tlIwarnings) ->
( case ( ( _tlIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _hdIidentifier _tlIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( _tlIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _tlImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _tlIscopes
)
) of
_lhsOscopes ->
( case ( ( _tlIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _hdIwarnings ++ _tlIwarnings
)
) of
_lhsOwarnings ->
(_lhsOelseExists, _lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_ElseIfList_Cons_1
)
) of
(sem_ElseIfList_1) ->
(_lhsOcopy, sem_ElseIfList_1)
)
)
)
)
)
sem_ElseIfList_Nil :: T_ElseIfList
sem_ElseIfList_Nil =
( case ( ( []
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_ElseIfList_Nil_1 :: T_ElseIfList_1
sem_ElseIfList_Nil_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( False
)
) of
_lhsOelseExists ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOelseExists, _lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
in
sem_ElseIfList_Nil_1
)
) of
(sem_ElseIfList_1) ->
(_lhsOcopy, sem_ElseIfList_1)
)
)
)
-- Expr --------------------------------------------------------
-- cata
sem_Expr
:: Expr
-> T_Expr
sem_Expr (ANil) =
(sem_Expr_ANil)
sem_Expr (AFalse) =
(sem_Expr_AFalse)
sem_Expr (ATrue) =
(sem_Expr_ATrue)
sem_Expr (ANumber _num) =
(sem_Expr_ANumber _num)
sem_Expr (AString _str) =
(sem_Expr_AString (sem_MToken _str))
sem_Expr (AVarArg) =
(sem_Expr_AVarArg)
sem_Expr (AnonymousFunc _pars _body) =
(sem_Expr_AnonymousFunc _pars (sem_Block _body))
sem_Expr (APrefixExpr _pexpr) =
(sem_Expr_APrefixExpr (sem_PrefixExp _pexpr))
sem_Expr (ATableConstructor _fields) =
(sem_Expr_ATableConstructor (sem_FieldList _fields))
sem_Expr (BinOpExpr _op _left _right) =
(sem_Expr_BinOpExpr (sem_BinOp _op) (sem_MExpr _left) (sem_MExpr _right))
sem_Expr (UnOpExpr _op _right) =
(sem_Expr_UnOpExpr (sem_UnOp _op) (sem_MExpr _right))
-- semantic domain
type T_Expr = (Expr, T_Expr_1)
type T_Expr_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> Bool
-> (Maybe MToken)
-> DeterminedVariableStyle
-> ((M.Map String [Region]), String, Bool, Bool, (Maybe MToken), Region, ([M.Map String (Bool, Region)]), DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_Expr = Inh_Expr {config_Inh_Expr :: LintSettings, funcName_Inh_Expr :: String, globalDefinitions_Inh_Expr :: (M.Map String [Region]), inParentheses_Inh_Expr :: Bool, isInModule_Inh_Expr :: Bool, isMeta_Inh_Expr :: Bool, isNegation_Inh_Expr :: Bool, loopLevel_Inh_Expr :: Int, mtokenPos_Inh_Expr :: Region, scopeLevel_Inh_Expr :: Int, scopes_Inh_Expr :: ([M.Map String (Bool, Region)]), topLevel_Inh_Expr :: Bool, varBeingDefined_Inh_Expr :: (Maybe MToken), variableStyle_Inh_Expr :: DeterminedVariableStyle}
data Syn_Expr = Syn_Expr {copy_Syn_Expr :: Expr, globalDefinitions_Syn_Expr :: (M.Map String [Region]), identifier_Syn_Expr :: String, isInModule_Syn_Expr :: Bool, isSimpleExpression_Syn_Expr :: Bool, isSingleVar_Syn_Expr :: (Maybe MToken), mtokenPos_Syn_Expr :: Region, scopes_Syn_Expr :: ([M.Map String (Bool, Region)]), variableStyle_Syn_Expr :: DeterminedVariableStyle, warnings_Syn_Expr :: ([String -> LintMessage])}
wrap_Expr
:: T_Expr
-> Inh_Expr
-> Syn_Expr
wrap_Expr sem (Inh_Expr _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIinParentheses _lhsIisInModule _lhsIisMeta _lhsIisNegation _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsItopLevel _lhsIvarBeingDefined _lhsIvariableStyle) =
( let
(_lhsOcopy, sem_1) = sem
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOisSingleVar, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIinParentheses _lhsIisInModule _lhsIisMeta _lhsIisNegation _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsItopLevel _lhsIvarBeingDefined _lhsIvariableStyle
in
(Syn_Expr _lhsOcopy _lhsOglobalDefinitions _lhsOidentifier _lhsOisInModule _lhsOisSimpleExpression _lhsOisSingleVar _lhsOmtokenPos _lhsOscopes _lhsOvariableStyle _lhsOwarnings)
)
sem_Expr_ANil :: T_Expr
sem_Expr_ANil =
( case ( ( ANil
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Expr_ANil_1 :: T_Expr_1
sem_Expr_ANil_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIinParentheses
_lhsIisInModule
_lhsIisMeta
_lhsIisNegation
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsItopLevel
_lhsIvarBeingDefined
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( True
)
) of
_lhsOisSimpleExpression ->
( case ( ( Nothing
)
) of
_lhsOisSingleVar ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOisSingleVar, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
in
sem_Expr_ANil_1
)
) of
(sem_Expr_1) ->
(_lhsOcopy, sem_Expr_1)
)
)
)
sem_Expr_AFalse :: T_Expr
sem_Expr_AFalse =
( case ( ( AFalse
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Expr_AFalse_1 :: T_Expr_1
sem_Expr_AFalse_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIinParentheses
_lhsIisInModule
_lhsIisMeta
_lhsIisNegation
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsItopLevel
_lhsIvarBeingDefined
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( True
)
) of
_lhsOisSimpleExpression ->
( case ( ( Nothing
)
) of
_lhsOisSingleVar ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOisSingleVar, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
in
sem_Expr_AFalse_1
)
) of
(sem_Expr_1) ->
(_lhsOcopy, sem_Expr_1)
)
)
)
sem_Expr_ATrue :: T_Expr
sem_Expr_ATrue =
( case ( ( ATrue
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Expr_ATrue_1 :: T_Expr_1
sem_Expr_ATrue_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIinParentheses
_lhsIisInModule
_lhsIisMeta
_lhsIisNegation
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsItopLevel
_lhsIvarBeingDefined
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( True
)
) of
_lhsOisSimpleExpression ->
( case ( ( Nothing
)
) of
_lhsOisSingleVar ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOisSingleVar, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
in
sem_Expr_ATrue_1
)
) of
(sem_Expr_1) ->
(_lhsOcopy, sem_Expr_1)
)
)
)
sem_Expr_ANumber
:: String
-> T_Expr
sem_Expr_ANumber num_ =
( case ( ( ANumber num_
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Expr_ANumber_1 :: T_Expr_1
sem_Expr_ANumber_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIinParentheses
_lhsIisInModule
_lhsIisMeta
_lhsIisNegation
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsItopLevel
_lhsIvarBeingDefined
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( True
)
) of
_lhsOisSimpleExpression ->
( case ( ( Nothing
)
) of
_lhsOisSingleVar ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOisSingleVar, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
in
sem_Expr_ANumber_1
)
) of
(sem_Expr_1) ->
(_lhsOcopy, sem_Expr_1)
)
)
)
sem_Expr_AString
:: T_MToken
-> T_Expr
sem_Expr_AString str_ =
( case (str_) of
(_strIcopy, _strImtok, _strImtokenPos, str_1) ->
( case ( ( AString _strIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Expr_AString_1 :: T_Expr_1
sem_Expr_AString_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIinParentheses
_lhsIisInModule
_lhsIisMeta
_lhsIisNegation
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsItopLevel
_lhsIvarBeingDefined
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_strOglobalDefinitions ->
( case ( ( _lhsIscopes
)
) of
_strOscopes ->
( case ( ( _lhsImtokenPos
)
) of
_strOmtokenPos ->
( case ( ( _lhsIisMeta
)
) of
_strOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_strOisInModule ->
( case ( ( _lhsIfuncName
)
) of
_strOfuncName ->
( case ( ( _lhsIconfig
)
) of
_strOconfig ->
( case (str_1 _strOconfig _strOfuncName _strOglobalDefinitions _strOisInModule _strOisMeta _strOmtokenPos _strOscopes) of
(_strIglobalDefinitions, _strIidentifier, _strIisInModule, _strIscopes, _strIwarnings) ->
( case ( ( _strIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( _strIidentifier
)
) of
_lhsOidentifier ->
( case ( ( _strIisInModule
)
) of
_lhsOisInModule ->
( case ( ( True
)
) of
_lhsOisSimpleExpression ->
( case ( ( Nothing
)
) of
_lhsOisSingleVar ->
( case ( ( _strImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _strIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _strIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOisSingleVar, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Expr_AString_1
)
) of
(sem_Expr_1) ->
(_lhsOcopy, sem_Expr_1)
)
)
)
)
sem_Expr_AVarArg :: T_Expr
sem_Expr_AVarArg =
( case ( ( AVarArg
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Expr_AVarArg_1 :: T_Expr_1
sem_Expr_AVarArg_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIinParentheses
_lhsIisInModule
_lhsIisMeta
_lhsIisNegation
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsItopLevel
_lhsIvarBeingDefined
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( False
)
) of
_lhsOisSimpleExpression ->
( case ( ( Nothing
)
) of
_lhsOisSingleVar ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOisSingleVar, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
in
sem_Expr_AVarArg_1
)
) of
(sem_Expr_1) ->
(_lhsOcopy, sem_Expr_1)
)
)
)
sem_Expr_AnonymousFunc
:: ([MToken])
-> T_Block
-> T_Expr
sem_Expr_AnonymousFunc pars_ body_ =
( case (body_) of
(_bodyIcopy, body_1) ->
( case ( ( AnonymousFunc pars_ _bodyIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Expr_AnonymousFunc_1 :: T_Expr_1
sem_Expr_AnonymousFunc_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIinParentheses
_lhsIisInModule
_lhsIisMeta
_lhsIisNegation
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsItopLevel
_lhsIvarBeingDefined
_lhsIvariableStyle ->
( case ( ( _lhsIisInModule
)
) of
_bodyOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_bodyOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_bodyOconfig ->
( case ( ( _lhsIisMeta || findSelf pars_
)
) of
_bodyOisMeta ->
( case ( ( M.fromList $ map (\mt -> (tokenLabel mt, (not . lint_unusedParameters $ _lhsIconfig, mpos mt))) pars_
)
) of
_introduces ->
( case ( ( _introduces : _lhsIscopes
)
) of
_bodyOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_bodyOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_bodyOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_bodyOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_bodyOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_bodyOfuncName ->
( case ( ( False
)
) of
_bodyOisRepeat ->
( case (body_1 _bodyOconfig _bodyOfuncName _bodyOglobalDefinitions _bodyOisInModule _bodyOisMeta _bodyOisRepeat _bodyOloopLevel _bodyOmtokenPos _bodyOscopeLevel _bodyOscopes _bodyOvariableStyle) of
(_bodyIglobalDefinitions, _bodyIidentifier, _bodyIisIfStatement, _bodyIisInModule, _bodyImtokenPos, _bodyIscopes, _bodyIstatementCount, _bodyIvariableStyle, _bodyIwarnings) ->
( case ( ( _bodyIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( _bodyIidentifier
)
) of
_lhsOidentifier ->
( case ( ( _bodyIisInModule
)
) of
_lhsOisInModule ->
( case ( ( True
)
) of
_lhsOisSimpleExpression ->
( case ( ( Nothing
)
) of
_lhsOisSingleVar ->
( case ( ( _bodyImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _bodyIscopes
)
) of
_lhsOscopes ->
( case ( ( _bodyIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _bodyIwarnings
)
) of
_warnings_augmented_syn ->
( case ( ( filter (/= MToken emptyRg VarArg) $ pars_
)
) of
_argIdentifiers ->
( case ( ( if not (lint_shadowing _lhsIconfig)
then id
else (++) . catMaybes . map (checkShadows _lhsIscopes) $ _argIdentifiers
)
) of
_warnings_augmented_f1 ->
( case ( ( foldr ($) _warnings_augmented_syn [_warnings_augmented_f1]
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOisSingleVar, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Expr_AnonymousFunc_1
)
) of
(sem_Expr_1) ->
(_lhsOcopy, sem_Expr_1)
)
)
)
)
sem_Expr_APrefixExpr
:: T_PrefixExp
-> T_Expr
sem_Expr_APrefixExpr pexpr_ =
( case (pexpr_) of
(_pexprIcopy, _pexprIhasSuffixes, _pexprImtokenPos, _pexprIvarName, pexpr_1) ->
( case ( ( APrefixExpr _pexprIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Expr_APrefixExpr_1 :: T_Expr_1
sem_Expr_APrefixExpr_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIinParentheses
_lhsIisInModule
_lhsIisMeta
_lhsIisNegation
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsItopLevel
_lhsIvarBeingDefined
_lhsIvariableStyle ->
( case ( ( _lhsIvarBeingDefined
)
) of
_pexprOvarBeingDefined ->
( case ( ( _lhsIscopes
)
) of
_pexprOscopes ->
( case ( ( _lhsIisMeta
)
) of
_pexprOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_pexprOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_pexprOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_pexprOconfig ->
( case ( ( True
)
) of
_pexprOregisterVarUse ->
( case ( ( _lhsIvariableStyle
)
) of
_pexprOvariableStyle ->
( case ( ( _lhsItopLevel
)
) of
_pexprOtopLevel ->
( case ( ( _lhsIscopeLevel
)
) of
_pexprOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_pexprOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_pexprOloopLevel ->
( case ( ( _lhsIisNegation
)
) of
_pexprOisNegation ->
( case ( ( _lhsIinParentheses
)
) of
_pexprOinParentheses ->
( case ( ( _lhsIfuncName
)
) of
_pexprOfuncName ->
( case (pexpr_1 _pexprOconfig _pexprOfuncName _pexprOglobalDefinitions _pexprOinParentheses _pexprOisInModule _pexprOisMeta _pexprOisNegation _pexprOloopLevel _pexprOmtokenPos _pexprOregisterVarUse _pexprOscopeLevel _pexprOscopes _pexprOtopLevel _pexprOvarBeingDefined _pexprOvariableStyle) of
(_pexprIglobalDefinitions, _pexprIidentifier, _pexprIisInModule, _pexprIisSimpleExpression, _pexprIisSingleVar, _pexprIscopes, _pexprIvariableStyle, _pexprIwarnings) ->
( case ( ( _pexprIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( _pexprIidentifier
)
) of
_lhsOidentifier ->
( case ( ( _pexprIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _pexprIisSimpleExpression
)
) of
_lhsOisSimpleExpression ->
( case ( ( _pexprIisSingleVar
)
) of
_lhsOisSingleVar ->
( case ( ( _pexprImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _pexprIscopes
)
) of
_lhsOscopes ->
( case ( ( _pexprIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _pexprIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOisSingleVar, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Expr_APrefixExpr_1
)
) of
(sem_Expr_1) ->
(_lhsOcopy, sem_Expr_1)
)
)
)
)
sem_Expr_ATableConstructor
:: T_FieldList
-> T_Expr
sem_Expr_ATableConstructor fields_ =
( case (fields_) of
(_fieldsIcopy, fields_1) ->
( case ( ( ATableConstructor _fieldsIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Expr_ATableConstructor_1 :: T_Expr_1
sem_Expr_ATableConstructor_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIinParentheses
_lhsIisInModule
_lhsIisMeta
_lhsIisNegation
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsItopLevel
_lhsIvarBeingDefined
_lhsIvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_fieldsOscopes ->
( case ( ( _lhsIisMeta
)
) of
_fieldsOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_fieldsOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_fieldsOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_fieldsOconfig ->
( case ( ( _lhsIvariableStyle
)
) of
_fieldsOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_fieldsOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_fieldsOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_fieldsOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_fieldsOfuncName ->
( case ( ( S.empty
)
) of
_fieldsOfieldNames ->
( case (fields_1 _fieldsOconfig _fieldsOfieldNames _fieldsOfuncName _fieldsOglobalDefinitions _fieldsOisInModule _fieldsOisMeta _fieldsOloopLevel _fieldsOmtokenPos _fieldsOscopeLevel _fieldsOscopes _fieldsOvariableStyle) of
(_fieldsIfieldNames, _fieldsIglobalDefinitions, _fieldsIidentifier, _fieldsIisInModule, _fieldsImtokenPos, _fieldsIscopes, _fieldsIvariableStyle, _fieldsIwarnings) ->
( case ( ( _fieldsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( _fieldsIidentifier
)
) of
_lhsOidentifier ->
( case ( ( _fieldsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( True
)
) of
_lhsOisSimpleExpression ->
( case ( ( Nothing
)
) of
_lhsOisSingleVar ->
( case ( ( _fieldsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _fieldsIscopes
)
) of
_lhsOscopes ->
( case ( ( _fieldsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _fieldsIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOisSingleVar, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Expr_ATableConstructor_1
)
) of
(sem_Expr_1) ->
(_lhsOcopy, sem_Expr_1)
)
)
)
)
sem_Expr_BinOpExpr
:: T_BinOp
-> T_MExpr
-> T_MExpr
-> T_Expr
sem_Expr_BinOpExpr op_ left_ right_ =
( case (right_) of
(_rightIcopy, _rightImtokenPos, right_1) ->
( case (left_) of
(_leftIcopy, _leftImtokenPos, left_1) ->
( case (op_) of
(_opIcopy, op_1) ->
( case ( ( BinOpExpr _opIcopy _leftIcopy _rightIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Expr_BinOpExpr_1 :: T_Expr_1
sem_Expr_BinOpExpr_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIinParentheses
_lhsIisInModule
_lhsIisMeta
_lhsIisNegation
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsItopLevel
_lhsIvarBeingDefined
_lhsIvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_opOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_opOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_opOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_opOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_opOloopLevel ->
( case ( ( _lhsIisMeta
)
) of
_opOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_opOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_opOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_opOfuncName ->
( case ( ( _lhsIconfig
)
) of
_opOconfig ->
( case (op_1 _opOconfig _opOfuncName _opOglobalDefinitions _opOisInModule _opOisMeta _opOloopLevel _opOmtokenPos _opOscopeLevel _opOscopes _opOvariableStyle) of
(_opIglobalDefinitions, _opIidentifier, _opIisInModule, _opImtokenPos, _opIscopes, _opIvariableStyle, _opIwarnings) ->
( case ( ( _opIscopes
)
) of
_leftOscopes ->
( case ( ( _lhsIisMeta
)
) of
_leftOisMeta ->
( case ( ( _lhsIconfig
)
) of
_leftOconfig ->
( case ( ( Nothing
)
) of
_leftOvarBeingDefined ->
( case ( ( _opIvariableStyle
)
) of
_leftOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_leftOscopeLevel ->
( case ( ( _opImtokenPos
)
) of
_leftOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_leftOloopLevel ->
( case ( ( _opIisInModule
)
) of
_leftOisInModule ->
( case ( ( _opIglobalDefinitions
)
) of
_leftOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_leftOfuncName ->
( case ( ( False
)
) of
_leftOtopLevel ->
( case ( ( False
)
) of
_leftOinParentheses ->
( case ( ( False
)
) of
_leftOisNegation ->
( case (left_1 _leftOconfig _leftOfuncName _leftOglobalDefinitions _leftOinParentheses _leftOisInModule _leftOisMeta _leftOisNegation _leftOloopLevel _leftOmtokenPos _leftOscopeLevel _leftOscopes _leftOtopLevel _leftOvarBeingDefined _leftOvariableStyle) of
(_leftIglobalDefinitions, _leftIidentifier, _leftIisInModule, _leftIisSimpleExpression, _leftIisSingleVar, _leftIscopes, _leftIvariableStyle, _leftIwarnings) ->
( case ( ( _leftIscopes
)
) of
_rightOscopes ->
( case ( ( _lhsIisMeta
)
) of
_rightOisMeta ->
( case ( ( _leftIisInModule
)
) of
_rightOisInModule ->
( case ( ( _leftIglobalDefinitions
)
) of
_rightOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_rightOconfig ->
( case ( ( Nothing
)
) of
_rightOvarBeingDefined ->
( case ( ( _leftIvariableStyle
)
) of
_rightOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_rightOscopeLevel ->
( case ( ( _leftImtokenPos
)
) of
_rightOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_rightOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_rightOfuncName ->
( case ( ( False
)
) of
_rightOtopLevel ->
( case ( ( False
)
) of
_rightOinParentheses ->
( case ( ( False
)
) of
_rightOisNegation ->
( case (right_1 _rightOconfig _rightOfuncName _rightOglobalDefinitions _rightOinParentheses _rightOisInModule _rightOisMeta _rightOisNegation _rightOloopLevel _rightOmtokenPos _rightOscopeLevel _rightOscopes _rightOtopLevel _rightOvarBeingDefined _rightOvariableStyle) of
(_rightIglobalDefinitions, _rightIidentifier, _rightIisInModule, _rightIisSimpleExpression, _rightIisSingleVar, _rightIscopes, _rightIvariableStyle, _rightIwarnings) ->
( case ( ( _rightIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _opIidentifier (const _leftIidentifier _rightIidentifier))
)
) of
_lhsOidentifier ->
( case ( ( _rightIisInModule
)
) of
_lhsOisInModule ->
( case ( ( False
)
) of
_lhsOisSimpleExpression ->
( case ( ( (const (const Nothing) _leftIisSingleVar _rightIisSingleVar)
)
) of
_lhsOisSingleVar ->
( case ( ( _rightImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _rightIscopes
)
) of
_lhsOscopes ->
( case ( ( _rightIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _opIwarnings ++ _leftIwarnings ++ _rightIwarnings
)
) of
_warnings_augmented_syn ->
( case ( ( oppositeBinOp _opIcopy
)
) of
_stupidNegation ->
( case ( ( if not (lint_doubleNegations _lhsIconfig) || not _lhsIisNegation || isNothing _stupidNegation
then id
else (:) $ warn _lhsImtokenPos $ SillyNegation $ fromMaybe (error "fromMaybe sem Expr loc.stupidNegation") _stupidNegation
)
) of
_warnings_augmented_f1 ->
( case ( ( foldr ($) _warnings_augmented_syn [_warnings_augmented_f1]
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOisSingleVar, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Expr_BinOpExpr_1
)
) of
(sem_Expr_1) ->
(_lhsOcopy, sem_Expr_1)
)
)
)
)
)
)
sem_Expr_UnOpExpr
:: T_UnOp
-> T_MExpr
-> T_Expr
sem_Expr_UnOpExpr op_ right_ =
( case (right_) of
(_rightIcopy, _rightImtokenPos, right_1) ->
( case (op_) of
(_opIcopy, op_1) ->
( case ( ( UnOpExpr _opIcopy _rightIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Expr_UnOpExpr_1 :: T_Expr_1
sem_Expr_UnOpExpr_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIinParentheses
_lhsIisInModule
_lhsIisMeta
_lhsIisNegation
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsItopLevel
_lhsIvarBeingDefined
_lhsIvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_opOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_opOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_opOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_opOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_opOloopLevel ->
( case ( ( _lhsIisMeta
)
) of
_opOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_opOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_opOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_opOfuncName ->
( case ( ( _lhsIconfig
)
) of
_opOconfig ->
( case (op_1 _opOconfig _opOfuncName _opOglobalDefinitions _opOisInModule _opOisMeta _opOloopLevel _opOmtokenPos _opOscopeLevel _opOscopes _opOvariableStyle) of
(_opIglobalDefinitions, _opIidentifier, _opIisInModule, _opIisNegation, _opImtokenPos, _opIscopes, _opIvariableStyle, _opIwarnings) ->
( case ( ( _opIscopes
)
) of
_rightOscopes ->
( case ( ( _lhsIisMeta
)
) of
_rightOisMeta ->
( case ( ( _opIisInModule
)
) of
_rightOisInModule ->
( case ( ( _opIglobalDefinitions
)
) of
_rightOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_rightOconfig ->
( case ( ( Nothing
)
) of
_rightOvarBeingDefined ->
( case ( ( _opIvariableStyle
)
) of
_rightOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_rightOscopeLevel ->
( case ( ( _opImtokenPos
)
) of
_rightOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_rightOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_rightOfuncName ->
( case ( ( False
)
) of
_rightOtopLevel ->
( case ( ( False
)
) of
_rightOinParentheses ->
( case ( ( _opIisNegation
)
) of
_rightOisNegation ->
( case (right_1 _rightOconfig _rightOfuncName _rightOglobalDefinitions _rightOinParentheses _rightOisInModule _rightOisMeta _rightOisNegation _rightOloopLevel _rightOmtokenPos _rightOscopeLevel _rightOscopes _rightOtopLevel _rightOvarBeingDefined _rightOvariableStyle) of
(_rightIglobalDefinitions, _rightIidentifier, _rightIisInModule, _rightIisSimpleExpression, _rightIisSingleVar, _rightIscopes, _rightIvariableStyle, _rightIwarnings) ->
( case ( ( _rightIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _opIidentifier _rightIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( _rightIisInModule
)
) of
_lhsOisInModule ->
( case ( ( False
)
) of
_lhsOisSimpleExpression ->
( case ( ( _rightIisSingleVar
)
) of
_lhsOisSingleVar ->
( case ( ( _rightImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _rightIscopes
)
) of
_lhsOscopes ->
( case ( ( _rightIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _opIwarnings ++ _rightIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOisSingleVar, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Expr_UnOpExpr_1
)
) of
(sem_Expr_1) ->
(_lhsOcopy, sem_Expr_1)
)
)
)
)
)
-- ExprSuffixList ----------------------------------------------
-- cata
sem_ExprSuffixList
:: ExprSuffixList
-> T_ExprSuffixList
sem_ExprSuffixList list =
(Prelude.foldr sem_ExprSuffixList_Cons sem_ExprSuffixList_Nil (Prelude.map sem_PFExprSuffix list))
-- semantic domain
type T_ExprSuffixList = (ExprSuffixList, T_ExprSuffixList_1)
type T_ExprSuffixList_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> DeterminedVariableStyle
-> ((M.Map String [Region]), String, Bool, Bool, Region, ([M.Map String (Bool, Region)]), DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_ExprSuffixList = Inh_ExprSuffixList {config_Inh_ExprSuffixList :: LintSettings, funcName_Inh_ExprSuffixList :: String, globalDefinitions_Inh_ExprSuffixList :: (M.Map String [Region]), isInModule_Inh_ExprSuffixList :: Bool, isMeta_Inh_ExprSuffixList :: Bool, loopLevel_Inh_ExprSuffixList :: Int, mtokenPos_Inh_ExprSuffixList :: Region, scopeLevel_Inh_ExprSuffixList :: Int, scopes_Inh_ExprSuffixList :: ([M.Map String (Bool, Region)]), variableStyle_Inh_ExprSuffixList :: DeterminedVariableStyle}
data Syn_ExprSuffixList = Syn_ExprSuffixList {copy_Syn_ExprSuffixList :: ExprSuffixList, globalDefinitions_Syn_ExprSuffixList :: (M.Map String [Region]), identifier_Syn_ExprSuffixList :: String, isInModule_Syn_ExprSuffixList :: Bool, isSimpleExpression_Syn_ExprSuffixList :: Bool, mtokenPos_Syn_ExprSuffixList :: Region, scopes_Syn_ExprSuffixList :: ([M.Map String (Bool, Region)]), variableStyle_Syn_ExprSuffixList :: DeterminedVariableStyle, warnings_Syn_ExprSuffixList :: ([String -> LintMessage])}
wrap_ExprSuffixList
:: T_ExprSuffixList
-> Inh_ExprSuffixList
-> Syn_ExprSuffixList
wrap_ExprSuffixList sem (Inh_ExprSuffixList _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle) =
( let
(_lhsOcopy, sem_1) = sem
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle
in
(Syn_ExprSuffixList _lhsOcopy _lhsOglobalDefinitions _lhsOidentifier _lhsOisInModule _lhsOisSimpleExpression _lhsOmtokenPos _lhsOscopes _lhsOvariableStyle _lhsOwarnings)
)
sem_ExprSuffixList_Cons
:: T_PFExprSuffix
-> T_ExprSuffixList
-> T_ExprSuffixList
sem_ExprSuffixList_Cons hd_ tl_ =
( case (tl_) of
(_tlIcopy, tl_1) ->
( case (hd_) of
(_hdIcopy, hd_1) ->
( case ( ( (:) _hdIcopy _tlIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_ExprSuffixList_Cons_1 :: T_ExprSuffixList_1
sem_ExprSuffixList_Cons_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_hdOscopes ->
( case ( ( _lhsIisMeta
)
) of
_hdOisMeta ->
( case ( ( _lhsIconfig
)
) of
_hdOconfig ->
( case ( ( _lhsIvariableStyle
)
) of
_hdOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_hdOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_hdOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_hdOloopLevel ->
( case ( ( _lhsIisInModule
)
) of
_hdOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_hdOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_hdOfuncName ->
( case (hd_1 _hdOconfig _hdOfuncName _hdOglobalDefinitions _hdOisInModule _hdOisMeta _hdOloopLevel _hdOmtokenPos _hdOscopeLevel _hdOscopes _hdOvariableStyle) of
(_hdIglobalDefinitions, _hdIidentifier, _hdIisInModule, _hdIisSimpleExpression, _hdImtokenPos, _hdIscopes, _hdIvariableStyle, _hdIwarnings) ->
( case ( ( _hdIscopes
)
) of
_tlOscopes ->
( case ( ( _lhsIisMeta
)
) of
_tlOisMeta ->
( case ( ( _hdIisInModule
)
) of
_tlOisInModule ->
( case ( ( _hdIglobalDefinitions
)
) of
_tlOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_tlOconfig ->
( case ( ( _hdIvariableStyle
)
) of
_tlOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_tlOscopeLevel ->
( case ( ( _hdImtokenPos
)
) of
_tlOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_tlOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_tlOfuncName ->
( case (tl_1 _tlOconfig _tlOfuncName _tlOglobalDefinitions _tlOisInModule _tlOisMeta _tlOloopLevel _tlOmtokenPos _tlOscopeLevel _tlOscopes _tlOvariableStyle) of
(_tlIglobalDefinitions, _tlIidentifier, _tlIisInModule, _tlIisSimpleExpression, _tlImtokenPos, _tlIscopes, _tlIvariableStyle, _tlIwarnings) ->
( case ( ( _tlIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _hdIidentifier _tlIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( _tlIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _hdIisSimpleExpression && _tlIisSimpleExpression
)
) of
_lhsOisSimpleExpression ->
( case ( ( _tlImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _tlIscopes
)
) of
_lhsOscopes ->
( case ( ( _tlIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _hdIwarnings ++ _tlIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_ExprSuffixList_Cons_1
)
) of
(sem_ExprSuffixList_1) ->
(_lhsOcopy, sem_ExprSuffixList_1)
)
)
)
)
)
sem_ExprSuffixList_Nil :: T_ExprSuffixList
sem_ExprSuffixList_Nil =
( case ( ( []
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_ExprSuffixList_Nil_1 :: T_ExprSuffixList_1
sem_ExprSuffixList_Nil_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( True
)
) of
_lhsOisSimpleExpression ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
in
sem_ExprSuffixList_Nil_1
)
) of
(sem_ExprSuffixList_1) ->
(_lhsOcopy, sem_ExprSuffixList_1)
)
)
)
-- Field -------------------------------------------------------
-- cata
sem_Field
:: Field
-> T_Field
sem_Field (ExprField _key _value _sep) =
(sem_Field_ExprField (sem_MExpr _key) (sem_MExpr _value) (sem_FieldSep _sep))
sem_Field (NamedField _key _value _sep) =
(sem_Field_NamedField (sem_MToken _key) (sem_MExpr _value) (sem_FieldSep _sep))
sem_Field (UnnamedField _value _sep) =
(sem_Field_UnnamedField (sem_MExpr _value) (sem_FieldSep _sep))
-- semantic domain
type T_Field = (Field, T_Field_1)
type T_Field_1 =
LintSettings
-> (S.Set Token)
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> DeterminedVariableStyle
-> ((S.Set Token), (M.Map String [Region]), String, Bool, Region, ([M.Map String (Bool, Region)]), DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_Field = Inh_Field {config_Inh_Field :: LintSettings, fieldNames_Inh_Field :: (S.Set Token), funcName_Inh_Field :: String, globalDefinitions_Inh_Field :: (M.Map String [Region]), isInModule_Inh_Field :: Bool, isMeta_Inh_Field :: Bool, loopLevel_Inh_Field :: Int, mtokenPos_Inh_Field :: Region, scopeLevel_Inh_Field :: Int, scopes_Inh_Field :: ([M.Map String (Bool, Region)]), variableStyle_Inh_Field :: DeterminedVariableStyle}
data Syn_Field = Syn_Field {copy_Syn_Field :: Field, fieldNames_Syn_Field :: (S.Set Token), globalDefinitions_Syn_Field :: (M.Map String [Region]), identifier_Syn_Field :: String, isInModule_Syn_Field :: Bool, mtokenPos_Syn_Field :: Region, scopes_Syn_Field :: ([M.Map String (Bool, Region)]), variableStyle_Syn_Field :: DeterminedVariableStyle, warnings_Syn_Field :: ([String -> LintMessage])}
wrap_Field
:: T_Field
-> Inh_Field
-> Syn_Field
wrap_Field sem (Inh_Field _lhsIconfig _lhsIfieldNames _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle) =
( let
(_lhsOcopy, sem_1) = sem
(_lhsOfieldNames, _lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfieldNames _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle
in
(Syn_Field _lhsOcopy _lhsOfieldNames _lhsOglobalDefinitions _lhsOidentifier _lhsOisInModule _lhsOmtokenPos _lhsOscopes _lhsOvariableStyle _lhsOwarnings)
)
sem_Field_ExprField
:: T_MExpr
-> T_MExpr
-> T_FieldSep
-> T_Field
sem_Field_ExprField key_ value_ sep_ =
( case (sep_) of
(_sepIcopy, sep_1) ->
( case (value_) of
(_valueIcopy, _valueImtokenPos, value_1) ->
( case (key_) of
(_keyIcopy, _keyImtokenPos, key_1) ->
( case ( ( ExprField _keyIcopy _valueIcopy _sepIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Field_ExprField_1 :: T_Field_1
sem_Field_ExprField_1 =
( \_lhsIconfig
_lhsIfieldNames
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIfieldNames
)
) of
_lhsOfieldNames ->
( case ( ( _lhsIscopes
)
) of
_keyOscopes ->
( case ( ( _lhsIisMeta
)
) of
_keyOisMeta ->
( case ( ( _lhsIconfig
)
) of
_keyOconfig ->
( case ( ( Nothing
)
) of
_keyOvarBeingDefined ->
( case ( ( _lhsIvariableStyle
)
) of
_keyOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_keyOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_keyOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_keyOloopLevel ->
( case ( ( _lhsIisInModule
)
) of
_keyOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_keyOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_keyOfuncName ->
( case ( ( True
)
) of
_keyOtopLevel ->
( case ( ( True
)
) of
_keyOinParentheses ->
( case ( ( False
)
) of
_keyOisNegation ->
( case (key_1 _keyOconfig _keyOfuncName _keyOglobalDefinitions _keyOinParentheses _keyOisInModule _keyOisMeta _keyOisNegation _keyOloopLevel _keyOmtokenPos _keyOscopeLevel _keyOscopes _keyOtopLevel _keyOvarBeingDefined _keyOvariableStyle) of
(_keyIglobalDefinitions, _keyIidentifier, _keyIisInModule, _keyIisSimpleExpression, _keyIisSingleVar, _keyIscopes, _keyIvariableStyle, _keyIwarnings) ->
( case ( ( _keyIscopes
)
) of
_valueOscopes ->
( case ( ( _lhsIisMeta
)
) of
_valueOisMeta ->
( case ( ( _keyIisInModule
)
) of
_valueOisInModule ->
( case ( ( _keyIglobalDefinitions
)
) of
_valueOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_valueOconfig ->
( case ( ( Nothing
)
) of
_valueOvarBeingDefined ->
( case ( ( _keyIvariableStyle
)
) of
_valueOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_valueOscopeLevel ->
( case ( ( _keyImtokenPos
)
) of
_valueOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_valueOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_valueOfuncName ->
( case ( ( True
)
) of
_valueOtopLevel ->
( case ( ( True
)
) of
_valueOinParentheses ->
( case ( ( False
)
) of
_valueOisNegation ->
( case (value_1 _valueOconfig _valueOfuncName _valueOglobalDefinitions _valueOinParentheses _valueOisInModule _valueOisMeta _valueOisNegation _valueOloopLevel _valueOmtokenPos _valueOscopeLevel _valueOscopes _valueOtopLevel _valueOvarBeingDefined _valueOvariableStyle) of
(_valueIglobalDefinitions, _valueIidentifier, _valueIisInModule, _valueIisSimpleExpression, _valueIisSingleVar, _valueIscopes, _valueIvariableStyle, _valueIwarnings) ->
( case ( ( _valueIglobalDefinitions
)
) of
_sepOglobalDefinitions ->
( case ( ( _valueIvariableStyle
)
) of
_sepOvariableStyle ->
( case ( ( _valueIscopes
)
) of
_sepOscopes ->
( case ( ( _lhsIscopeLevel
)
) of
_sepOscopeLevel ->
( case ( ( _valueImtokenPos
)
) of
_sepOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_sepOloopLevel ->
( case ( ( _lhsIisMeta
)
) of
_sepOisMeta ->
( case ( ( _valueIisInModule
)
) of
_sepOisInModule ->
( case ( ( _lhsIfuncName
)
) of
_sepOfuncName ->
( case ( ( _lhsIconfig
)
) of
_sepOconfig ->
( case (sep_1 _sepOconfig _sepOfuncName _sepOglobalDefinitions _sepOisInModule _sepOisMeta _sepOloopLevel _sepOmtokenPos _sepOscopeLevel _sepOscopes _sepOvariableStyle) of
(_sepIglobalDefinitions, _sepIidentifier, _sepIisInModule, _sepImtokenPos, _sepIscopes, _sepIvariableStyle, _sepIwarnings) ->
( case ( ( _sepIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _keyIidentifier (const _valueIidentifier _sepIidentifier))
)
) of
_lhsOidentifier ->
( case ( ( _sepIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _keyImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _sepIscopes
)
) of
_lhsOscopes ->
( case ( ( _sepIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _keyIwarnings ++ _valueIwarnings ++ _sepIwarnings
)
) of
_lhsOwarnings ->
(_lhsOfieldNames, _lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Field_ExprField_1
)
) of
(sem_Field_1) ->
(_lhsOcopy, sem_Field_1)
)
)
)
)
)
)
sem_Field_NamedField
:: T_MToken
-> T_MExpr
-> T_FieldSep
-> T_Field
sem_Field_NamedField key_ value_ sep_ =
( case (sep_) of
(_sepIcopy, sep_1) ->
( case (value_) of
(_valueIcopy, _valueImtokenPos, value_1) ->
( case (key_) of
(_keyIcopy, _keyImtok, _keyImtokenPos, key_1) ->
( case ( ( NamedField _keyIcopy _valueIcopy _sepIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Field_NamedField_1 :: T_Field_1
sem_Field_NamedField_1 =
( \_lhsIconfig
_lhsIfieldNames
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( S.insert _keyImtok _lhsIfieldNames
)
) of
_lhsOfieldNames ->
( case ( ( _lhsIscopes
)
) of
_keyOscopes ->
( case ( ( _keyImtokenPos
)
) of
_mtokenPos ->
( case ( ( _mtokenPos
)
) of
_keyOmtokenPos ->
( case ( ( _lhsIisMeta
)
) of
_keyOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_keyOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_keyOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_keyOfuncName ->
( case ( ( _lhsIconfig
)
) of
_keyOconfig ->
( case (key_1 _keyOconfig _keyOfuncName _keyOglobalDefinitions _keyOisInModule _keyOisMeta _keyOmtokenPos _keyOscopes) of
(_keyIglobalDefinitions, _keyIidentifier, _keyIisInModule, _keyIscopes, _keyIwarnings) ->
( case ( ( _keyIscopes
)
) of
_valueOscopes ->
( case ( ( _lhsIisMeta
)
) of
_valueOisMeta ->
( case ( ( _keyIisInModule
)
) of
_valueOisInModule ->
( case ( ( _keyIglobalDefinitions
)
) of
_valueOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_valueOconfig ->
( case ( ( Nothing
)
) of
_valueOvarBeingDefined ->
( case ( ( _lhsIvariableStyle
)
) of
_valueOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_valueOscopeLevel ->
( case ( ( _mtokenPos
)
) of
_valueOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_valueOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_valueOfuncName ->
( case ( ( True
)
) of
_valueOtopLevel ->
( case ( ( True
)
) of
_valueOinParentheses ->
( case ( ( False
)
) of
_valueOisNegation ->
( case (value_1 _valueOconfig _valueOfuncName _valueOglobalDefinitions _valueOinParentheses _valueOisInModule _valueOisMeta _valueOisNegation _valueOloopLevel _valueOmtokenPos _valueOscopeLevel _valueOscopes _valueOtopLevel _valueOvarBeingDefined _valueOvariableStyle) of
(_valueIglobalDefinitions, _valueIidentifier, _valueIisInModule, _valueIisSimpleExpression, _valueIisSingleVar, _valueIscopes, _valueIvariableStyle, _valueIwarnings) ->
( case ( ( _valueIglobalDefinitions
)
) of
_sepOglobalDefinitions ->
( case ( ( _valueIvariableStyle
)
) of
_sepOvariableStyle ->
( case ( ( _valueIscopes
)
) of
_sepOscopes ->
( case ( ( _lhsIscopeLevel
)
) of
_sepOscopeLevel ->
( case ( ( _mtokenPos
)
) of
_sepOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_sepOloopLevel ->
( case ( ( _lhsIisMeta
)
) of
_sepOisMeta ->
( case ( ( _valueIisInModule
)
) of
_sepOisInModule ->
( case ( ( _lhsIfuncName
)
) of
_sepOfuncName ->
( case ( ( _lhsIconfig
)
) of
_sepOconfig ->
( case (sep_1 _sepOconfig _sepOfuncName _sepOglobalDefinitions _sepOisInModule _sepOisMeta _sepOloopLevel _sepOmtokenPos _sepOscopeLevel _sepOscopes _sepOvariableStyle) of
(_sepIglobalDefinitions, _sepIidentifier, _sepIisInModule, _sepImtokenPos, _sepIscopes, _sepIvariableStyle, _sepIwarnings) ->
( case ( ( _sepIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _keyIidentifier (const _valueIidentifier _sepIidentifier))
)
) of
_lhsOidentifier ->
( case ( ( _sepIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _mtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _sepIscopes
)
) of
_lhsOscopes ->
( case ( ( _sepIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _keyIwarnings ++ _valueIwarnings ++ _sepIwarnings
)
) of
_warnings_augmented_syn ->
( case ( ( if not (lint_duplicateTableKeys _lhsIconfig) || not (S.member _keyImtok _lhsIfieldNames)
then id
else (:) $ warn _keyImtokenPos $ DuplicateKeyInTable _keyImtok
)
) of
_warnings_augmented_f1 ->
( case ( ( foldr ($) _warnings_augmented_syn [_warnings_augmented_f1]
)
) of
_lhsOwarnings ->
(_lhsOfieldNames, _lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Field_NamedField_1
)
) of
(sem_Field_1) ->
(_lhsOcopy, sem_Field_1)
)
)
)
)
)
)
sem_Field_UnnamedField
:: T_MExpr
-> T_FieldSep
-> T_Field
sem_Field_UnnamedField value_ sep_ =
( case (sep_) of
(_sepIcopy, sep_1) ->
( case (value_) of
(_valueIcopy, _valueImtokenPos, value_1) ->
( case ( ( UnnamedField _valueIcopy _sepIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Field_UnnamedField_1 :: T_Field_1
sem_Field_UnnamedField_1 =
( \_lhsIconfig
_lhsIfieldNames
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIfieldNames
)
) of
_lhsOfieldNames ->
( case ( ( _lhsIscopes
)
) of
_valueOscopes ->
( case ( ( _lhsIisMeta
)
) of
_valueOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_valueOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_valueOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_valueOconfig ->
( case ( ( Nothing
)
) of
_valueOvarBeingDefined ->
( case ( ( _lhsIvariableStyle
)
) of
_valueOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_valueOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_valueOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_valueOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_valueOfuncName ->
( case ( ( True
)
) of
_valueOtopLevel ->
( case ( ( True
)
) of
_valueOinParentheses ->
( case ( ( False
)
) of
_valueOisNegation ->
( case (value_1 _valueOconfig _valueOfuncName _valueOglobalDefinitions _valueOinParentheses _valueOisInModule _valueOisMeta _valueOisNegation _valueOloopLevel _valueOmtokenPos _valueOscopeLevel _valueOscopes _valueOtopLevel _valueOvarBeingDefined _valueOvariableStyle) of
(_valueIglobalDefinitions, _valueIidentifier, _valueIisInModule, _valueIisSimpleExpression, _valueIisSingleVar, _valueIscopes, _valueIvariableStyle, _valueIwarnings) ->
( case ( ( _valueIglobalDefinitions
)
) of
_sepOglobalDefinitions ->
( case ( ( _valueIvariableStyle
)
) of
_sepOvariableStyle ->
( case ( ( _valueIscopes
)
) of
_sepOscopes ->
( case ( ( _lhsIscopeLevel
)
) of
_sepOscopeLevel ->
( case ( ( _valueImtokenPos
)
) of
_sepOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_sepOloopLevel ->
( case ( ( _lhsIisMeta
)
) of
_sepOisMeta ->
( case ( ( _valueIisInModule
)
) of
_sepOisInModule ->
( case ( ( _lhsIfuncName
)
) of
_sepOfuncName ->
( case ( ( _lhsIconfig
)
) of
_sepOconfig ->
( case (sep_1 _sepOconfig _sepOfuncName _sepOglobalDefinitions _sepOisInModule _sepOisMeta _sepOloopLevel _sepOmtokenPos _sepOscopeLevel _sepOscopes _sepOvariableStyle) of
(_sepIglobalDefinitions, _sepIidentifier, _sepIisInModule, _sepImtokenPos, _sepIscopes, _sepIvariableStyle, _sepIwarnings) ->
( case ( ( _sepIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _valueIidentifier _sepIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( _sepIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _sepImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _sepIscopes
)
) of
_lhsOscopes ->
( case ( ( _sepIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _valueIwarnings ++ _sepIwarnings
)
) of
_lhsOwarnings ->
(_lhsOfieldNames, _lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Field_UnnamedField_1
)
) of
(sem_Field_1) ->
(_lhsOcopy, sem_Field_1)
)
)
)
)
)
-- FieldList ---------------------------------------------------
-- cata
sem_FieldList
:: FieldList
-> T_FieldList
sem_FieldList list =
(Prelude.foldr sem_FieldList_Cons sem_FieldList_Nil (Prelude.map sem_Field list))
-- semantic domain
type T_FieldList = (FieldList, T_FieldList_1)
type T_FieldList_1 =
LintSettings
-> (S.Set Token)
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> DeterminedVariableStyle
-> ((S.Set Token), (M.Map String [Region]), String, Bool, Region, ([M.Map String (Bool, Region)]), DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_FieldList = Inh_FieldList {config_Inh_FieldList :: LintSettings, fieldNames_Inh_FieldList :: (S.Set Token), funcName_Inh_FieldList :: String, globalDefinitions_Inh_FieldList :: (M.Map String [Region]), isInModule_Inh_FieldList :: Bool, isMeta_Inh_FieldList :: Bool, loopLevel_Inh_FieldList :: Int, mtokenPos_Inh_FieldList :: Region, scopeLevel_Inh_FieldList :: Int, scopes_Inh_FieldList :: ([M.Map String (Bool, Region)]), variableStyle_Inh_FieldList :: DeterminedVariableStyle}
data Syn_FieldList = Syn_FieldList {copy_Syn_FieldList :: FieldList, fieldNames_Syn_FieldList :: (S.Set Token), globalDefinitions_Syn_FieldList :: (M.Map String [Region]), identifier_Syn_FieldList :: String, isInModule_Syn_FieldList :: Bool, mtokenPos_Syn_FieldList :: Region, scopes_Syn_FieldList :: ([M.Map String (Bool, Region)]), variableStyle_Syn_FieldList :: DeterminedVariableStyle, warnings_Syn_FieldList :: ([String -> LintMessage])}
wrap_FieldList
:: T_FieldList
-> Inh_FieldList
-> Syn_FieldList
wrap_FieldList sem (Inh_FieldList _lhsIconfig _lhsIfieldNames _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle) =
( let
(_lhsOcopy, sem_1) = sem
(_lhsOfieldNames, _lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfieldNames _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle
in
(Syn_FieldList _lhsOcopy _lhsOfieldNames _lhsOglobalDefinitions _lhsOidentifier _lhsOisInModule _lhsOmtokenPos _lhsOscopes _lhsOvariableStyle _lhsOwarnings)
)
sem_FieldList_Cons
:: T_Field
-> T_FieldList
-> T_FieldList
sem_FieldList_Cons hd_ tl_ =
( case (tl_) of
(_tlIcopy, tl_1) ->
( case (hd_) of
(_hdIcopy, hd_1) ->
( case ( ( (:) _hdIcopy _tlIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_FieldList_Cons_1 :: T_FieldList_1
sem_FieldList_Cons_1 =
( \_lhsIconfig
_lhsIfieldNames
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIfieldNames
)
) of
_hdOfieldNames ->
( case ( ( _lhsIvariableStyle
)
) of
_hdOvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_hdOscopes ->
( case ( ( _lhsIscopeLevel
)
) of
_hdOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_hdOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_hdOloopLevel ->
( case ( ( _lhsIisMeta
)
) of
_hdOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_hdOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_hdOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_hdOfuncName ->
( case ( ( _lhsIconfig
)
) of
_hdOconfig ->
( case (hd_1 _hdOconfig _hdOfieldNames _hdOfuncName _hdOglobalDefinitions _hdOisInModule _hdOisMeta _hdOloopLevel _hdOmtokenPos _hdOscopeLevel _hdOscopes _hdOvariableStyle) of
(_hdIfieldNames, _hdIglobalDefinitions, _hdIidentifier, _hdIisInModule, _hdImtokenPos, _hdIscopes, _hdIvariableStyle, _hdIwarnings) ->
( case ( ( _hdIfieldNames
)
) of
_tlOfieldNames ->
( case ( ( _hdIvariableStyle
)
) of
_tlOvariableStyle ->
( case ( ( _hdIscopes
)
) of
_tlOscopes ->
( case ( ( _lhsIscopeLevel
)
) of
_tlOscopeLevel ->
( case ( ( _hdImtokenPos
)
) of
_tlOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_tlOloopLevel ->
( case ( ( _lhsIisMeta
)
) of
_tlOisMeta ->
( case ( ( _hdIisInModule
)
) of
_tlOisInModule ->
( case ( ( _hdIglobalDefinitions
)
) of
_tlOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_tlOfuncName ->
( case ( ( _lhsIconfig
)
) of
_tlOconfig ->
( case (tl_1 _tlOconfig _tlOfieldNames _tlOfuncName _tlOglobalDefinitions _tlOisInModule _tlOisMeta _tlOloopLevel _tlOmtokenPos _tlOscopeLevel _tlOscopes _tlOvariableStyle) of
(_tlIfieldNames, _tlIglobalDefinitions, _tlIidentifier, _tlIisInModule, _tlImtokenPos, _tlIscopes, _tlIvariableStyle, _tlIwarnings) ->
( case ( ( _tlIfieldNames
)
) of
_lhsOfieldNames ->
( case ( ( _tlIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _hdIidentifier _tlIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( _tlIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _hdImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _tlIscopes
)
) of
_lhsOscopes ->
( case ( ( _tlIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _hdIwarnings ++ _tlIwarnings
)
) of
_lhsOwarnings ->
(_lhsOfieldNames, _lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_FieldList_Cons_1
)
) of
(sem_FieldList_1) ->
(_lhsOcopy, sem_FieldList_1)
)
)
)
)
)
sem_FieldList_Nil :: T_FieldList
sem_FieldList_Nil =
( case ( ( []
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_FieldList_Nil_1 :: T_FieldList_1
sem_FieldList_Nil_1 =
( \_lhsIconfig
_lhsIfieldNames
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIfieldNames
)
) of
_lhsOfieldNames ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOfieldNames, _lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
in
sem_FieldList_Nil_1
)
) of
(sem_FieldList_1) ->
(_lhsOcopy, sem_FieldList_1)
)
)
)
-- FieldSep ----------------------------------------------------
-- cata
sem_FieldSep
:: FieldSep
-> T_FieldSep
sem_FieldSep (CommaSep) =
(sem_FieldSep_CommaSep)
sem_FieldSep (SemicolonSep) =
(sem_FieldSep_SemicolonSep)
sem_FieldSep (NoSep) =
(sem_FieldSep_NoSep)
-- semantic domain
type T_FieldSep = (FieldSep, T_FieldSep_1)
type T_FieldSep_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> DeterminedVariableStyle
-> ((M.Map String [Region]), String, Bool, Region, ([M.Map String (Bool, Region)]), DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_FieldSep = Inh_FieldSep {config_Inh_FieldSep :: LintSettings, funcName_Inh_FieldSep :: String, globalDefinitions_Inh_FieldSep :: (M.Map String [Region]), isInModule_Inh_FieldSep :: Bool, isMeta_Inh_FieldSep :: Bool, loopLevel_Inh_FieldSep :: Int, mtokenPos_Inh_FieldSep :: Region, scopeLevel_Inh_FieldSep :: Int, scopes_Inh_FieldSep :: ([M.Map String (Bool, Region)]), variableStyle_Inh_FieldSep :: DeterminedVariableStyle}
data Syn_FieldSep = Syn_FieldSep {copy_Syn_FieldSep :: FieldSep, globalDefinitions_Syn_FieldSep :: (M.Map String [Region]), identifier_Syn_FieldSep :: String, isInModule_Syn_FieldSep :: Bool, mtokenPos_Syn_FieldSep :: Region, scopes_Syn_FieldSep :: ([M.Map String (Bool, Region)]), variableStyle_Syn_FieldSep :: DeterminedVariableStyle, warnings_Syn_FieldSep :: ([String -> LintMessage])}
wrap_FieldSep
:: T_FieldSep
-> Inh_FieldSep
-> Syn_FieldSep
wrap_FieldSep sem (Inh_FieldSep _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle) =
( let
(_lhsOcopy, sem_1) = sem
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle
in
(Syn_FieldSep _lhsOcopy _lhsOglobalDefinitions _lhsOidentifier _lhsOisInModule _lhsOmtokenPos _lhsOscopes _lhsOvariableStyle _lhsOwarnings)
)
sem_FieldSep_CommaSep :: T_FieldSep
sem_FieldSep_CommaSep =
( case ( ( CommaSep
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_FieldSep_CommaSep_1 :: T_FieldSep_1
sem_FieldSep_CommaSep_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
in
sem_FieldSep_CommaSep_1
)
) of
(sem_FieldSep_1) ->
(_lhsOcopy, sem_FieldSep_1)
)
)
)
sem_FieldSep_SemicolonSep :: T_FieldSep
sem_FieldSep_SemicolonSep =
( case ( ( SemicolonSep
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_FieldSep_SemicolonSep_1 :: T_FieldSep_1
sem_FieldSep_SemicolonSep_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
in
sem_FieldSep_SemicolonSep_1
)
) of
(sem_FieldSep_1) ->
(_lhsOcopy, sem_FieldSep_1)
)
)
)
sem_FieldSep_NoSep :: T_FieldSep
sem_FieldSep_NoSep =
( case ( ( NoSep
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_FieldSep_NoSep_1 :: T_FieldSep_1
sem_FieldSep_NoSep_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
in
sem_FieldSep_NoSep_1
)
) of
(sem_FieldSep_1) ->
(_lhsOcopy, sem_FieldSep_1)
)
)
)
-- FuncName ----------------------------------------------------
-- cata
sem_FuncName
:: FuncName
-> T_FuncName
sem_FuncName (FuncName _names _meta) =
(sem_FuncName_FuncName _names _meta)
-- semantic domain
type T_FuncName = (FuncName, Bool, T_FuncName_1)
type T_FuncName_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> DeterminedVariableStyle
-> ((M.Map String [Region]), Bool, String, Bool, Region, ([M.Map String (Bool, Region)]), DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_FuncName = Inh_FuncName {config_Inh_FuncName :: LintSettings, funcName_Inh_FuncName :: String, globalDefinitions_Inh_FuncName :: (M.Map String [Region]), isInModule_Inh_FuncName :: Bool, isMeta_Inh_FuncName :: Bool, loopLevel_Inh_FuncName :: Int, mtokenPos_Inh_FuncName :: Region, scopeLevel_Inh_FuncName :: Int, scopes_Inh_FuncName :: ([M.Map String (Bool, Region)]), variableStyle_Inh_FuncName :: DeterminedVariableStyle}
data Syn_FuncName = Syn_FuncName {copy_Syn_FuncName :: FuncName, globalDefinitions_Syn_FuncName :: (M.Map String [Region]), hasSuffixes_Syn_FuncName :: Bool, identifier_Syn_FuncName :: String, isInModule_Syn_FuncName :: Bool, isMeta_Syn_FuncName :: Bool, mtokenPos_Syn_FuncName :: Region, scopes_Syn_FuncName :: ([M.Map String (Bool, Region)]), variableStyle_Syn_FuncName :: DeterminedVariableStyle, warnings_Syn_FuncName :: ([String -> LintMessage])}
wrap_FuncName
:: T_FuncName
-> Inh_FuncName
-> Syn_FuncName
wrap_FuncName sem (Inh_FuncName _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle) =
( let
(_lhsOcopy, _lhsOisMeta, sem_1) = sem
(_lhsOglobalDefinitions, _lhsOhasSuffixes, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle
in
(Syn_FuncName _lhsOcopy _lhsOglobalDefinitions _lhsOhasSuffixes _lhsOidentifier _lhsOisInModule _lhsOisMeta _lhsOmtokenPos _lhsOscopes _lhsOvariableStyle _lhsOwarnings)
)
sem_FuncName_FuncName
:: ([MToken])
-> (Maybe MToken)
-> T_FuncName
sem_FuncName_FuncName names_ meta_ =
( case ( ( FuncName names_ meta_
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( isJust meta_
)
) of
_lhsOisMeta ->
( case ( ( let
sem_FuncName_FuncName_1 :: T_FuncName_1
sem_FuncName_FuncName_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( length names_ > 1
)
) of
_lhsOhasSuffixes ->
( case ( ( tokenLabel . head $ names_
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( mpos (head names_)
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOhasSuffixes, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
in
sem_FuncName_FuncName_1
)
) of
(sem_FuncName_1) ->
(_lhsOcopy, _lhsOisMeta, sem_FuncName_1)
)
)
)
)
-- MElse -------------------------------------------------------
-- cata
sem_MElse
:: MElse
-> T_MElse
sem_MElse (MElse _pos _body) =
(sem_MElse_MElse (sem_Region _pos) (sem_Block _body))
-- semantic domain
type T_MElse = (MElse, T_MElse_1)
type T_MElse_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> DeterminedVariableStyle
-> (Bool, (M.Map String [Region]), String, Bool, Region, ([M.Map String (Bool, Region)]), Int, DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_MElse = Inh_MElse {config_Inh_MElse :: LintSettings, funcName_Inh_MElse :: String, globalDefinitions_Inh_MElse :: (M.Map String [Region]), isInModule_Inh_MElse :: Bool, isMeta_Inh_MElse :: Bool, loopLevel_Inh_MElse :: Int, mtokenPos_Inh_MElse :: Region, scopeLevel_Inh_MElse :: Int, scopes_Inh_MElse :: ([M.Map String (Bool, Region)]), variableStyle_Inh_MElse :: DeterminedVariableStyle}
data Syn_MElse = Syn_MElse {copy_Syn_MElse :: MElse, elseExists_Syn_MElse :: Bool, globalDefinitions_Syn_MElse :: (M.Map String [Region]), identifier_Syn_MElse :: String, isInModule_Syn_MElse :: Bool, mtokenPos_Syn_MElse :: Region, scopes_Syn_MElse :: ([M.Map String (Bool, Region)]), statementCount_Syn_MElse :: Int, variableStyle_Syn_MElse :: DeterminedVariableStyle, warnings_Syn_MElse :: ([String -> LintMessage])}
wrap_MElse
:: T_MElse
-> Inh_MElse
-> Syn_MElse
wrap_MElse sem (Inh_MElse _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle) =
( let
(_lhsOcopy, sem_1) = sem
(_lhsOelseExists, _lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOstatementCount, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle
in
(Syn_MElse _lhsOcopy _lhsOelseExists _lhsOglobalDefinitions _lhsOidentifier _lhsOisInModule _lhsOmtokenPos _lhsOscopes _lhsOstatementCount _lhsOvariableStyle _lhsOwarnings)
)
sem_MElse_MElse
:: T_Region
-> T_Block
-> T_MElse
sem_MElse_MElse pos_ body_ =
( case (body_) of
(_bodyIcopy, body_1) ->
( case (pos_) of
(_posIcopy, _posIidentifier, _posIwarnings) ->
( case ( ( MElse _posIcopy _bodyIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_MElse_MElse_1 :: T_MElse_1
sem_MElse_MElse_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( False
)
) of
_lhsOelseExists ->
( case ( ( _lhsIscopes
)
) of
_bodyOscopes ->
( case ( ( _lhsIisMeta
)
) of
_bodyOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_bodyOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_bodyOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_bodyOconfig ->
( case ( ( _lhsIvariableStyle
)
) of
_bodyOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_bodyOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_bodyOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_bodyOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_bodyOfuncName ->
( case ( ( False
)
) of
_bodyOisRepeat ->
( case (body_1 _bodyOconfig _bodyOfuncName _bodyOglobalDefinitions _bodyOisInModule _bodyOisMeta _bodyOisRepeat _bodyOloopLevel _bodyOmtokenPos _bodyOscopeLevel _bodyOscopes _bodyOvariableStyle) of
(_bodyIglobalDefinitions, _bodyIidentifier, _bodyIisIfStatement, _bodyIisInModule, _bodyImtokenPos, _bodyIscopes, _bodyIstatementCount, _bodyIvariableStyle, _bodyIwarnings) ->
( case ( ( _bodyIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _posIidentifier _bodyIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( _bodyIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _posIcopy
)
) of
_lhsOmtokenPos ->
( case ( ( _bodyIscopes
)
) of
_lhsOscopes ->
( case ( ( _bodyIstatementCount
)
) of
_lhsOstatementCount ->
( case ( ( _bodyIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _posIwarnings ++ _bodyIwarnings
)
) of
_lhsOwarnings ->
(_lhsOelseExists, _lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOstatementCount, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_MElse_MElse_1
)
) of
(sem_MElse_1) ->
(_lhsOcopy, sem_MElse_1)
)
)
)
)
)
-- MElseIf -----------------------------------------------------
-- cata
sem_MElseIf
:: MElseIf
-> T_MElseIf
sem_MElseIf (MElseIf _pos _elif) =
(sem_MElseIf_MElseIf (sem_Region _pos) (sem_ElseIf _elif))
-- semantic domain
type T_MElseIf = (MElseIf, T_MElseIf_1)
type T_MElseIf_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> DeterminedVariableStyle
-> ((M.Map String [Region]), String, Bool, Region, ([M.Map String (Bool, Region)]), DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_MElseIf = Inh_MElseIf {config_Inh_MElseIf :: LintSettings, funcName_Inh_MElseIf :: String, globalDefinitions_Inh_MElseIf :: (M.Map String [Region]), isInModule_Inh_MElseIf :: Bool, isMeta_Inh_MElseIf :: Bool, loopLevel_Inh_MElseIf :: Int, mtokenPos_Inh_MElseIf :: Region, scopeLevel_Inh_MElseIf :: Int, scopes_Inh_MElseIf :: ([M.Map String (Bool, Region)]), variableStyle_Inh_MElseIf :: DeterminedVariableStyle}
data Syn_MElseIf = Syn_MElseIf {copy_Syn_MElseIf :: MElseIf, globalDefinitions_Syn_MElseIf :: (M.Map String [Region]), identifier_Syn_MElseIf :: String, isInModule_Syn_MElseIf :: Bool, mtokenPos_Syn_MElseIf :: Region, scopes_Syn_MElseIf :: ([M.Map String (Bool, Region)]), variableStyle_Syn_MElseIf :: DeterminedVariableStyle, warnings_Syn_MElseIf :: ([String -> LintMessage])}
wrap_MElseIf
:: T_MElseIf
-> Inh_MElseIf
-> Syn_MElseIf
wrap_MElseIf sem (Inh_MElseIf _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle) =
( let
(_lhsOcopy, sem_1) = sem
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle
in
(Syn_MElseIf _lhsOcopy _lhsOglobalDefinitions _lhsOidentifier _lhsOisInModule _lhsOmtokenPos _lhsOscopes _lhsOvariableStyle _lhsOwarnings)
)
sem_MElseIf_MElseIf
:: T_Region
-> T_ElseIf
-> T_MElseIf
sem_MElseIf_MElseIf pos_ elif_ =
( case (elif_) of
(_elifIcopy, elif_1) ->
( case (pos_) of
(_posIcopy, _posIidentifier, _posIwarnings) ->
( case ( ( MElseIf _posIcopy _elifIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_MElseIf_MElseIf_1 :: T_MElseIf_1
sem_MElseIf_MElseIf_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_elifOscopes ->
( case ( ( _lhsIisMeta
)
) of
_elifOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_elifOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_elifOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_elifOconfig ->
( case ( ( _lhsIvariableStyle
)
) of
_elifOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_elifOscopeLevel ->
( case ( ( _lhsIloopLevel
)
) of
_elifOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_elifOfuncName ->
( case ( ( _posIcopy
)
) of
_elifOmtokenPos ->
( case (elif_1 _elifOconfig _elifOfuncName _elifOglobalDefinitions _elifOisInModule _elifOisMeta _elifOloopLevel _elifOmtokenPos _elifOscopeLevel _elifOscopes _elifOvariableStyle) of
(_elifIglobalDefinitions, _elifIidentifier, _elifIisInModule, _elifImtokenPos, _elifIscopes, _elifIvariableStyle, _elifIwarnings) ->
( case ( ( _elifIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _posIidentifier _elifIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( _elifIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _elifImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _elifIscopes
)
) of
_lhsOscopes ->
( case ( ( _elifIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _posIwarnings ++ _elifIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_MElseIf_MElseIf_1
)
) of
(sem_MElseIf_1) ->
(_lhsOcopy, sem_MElseIf_1)
)
)
)
)
)
-- MExpr -------------------------------------------------------
-- cata
sem_MExpr
:: MExpr
-> T_MExpr
sem_MExpr (MExpr _pos _expr) =
(sem_MExpr_MExpr (sem_Region _pos) (sem_Expr _expr))
-- semantic domain
type T_MExpr = (MExpr, Region, T_MExpr_1)
type T_MExpr_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> Bool
-> (Maybe MToken)
-> DeterminedVariableStyle
-> ((M.Map String [Region]), String, Bool, Bool, (Maybe MToken), ([M.Map String (Bool, Region)]), DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_MExpr = Inh_MExpr {config_Inh_MExpr :: LintSettings, funcName_Inh_MExpr :: String, globalDefinitions_Inh_MExpr :: (M.Map String [Region]), inParentheses_Inh_MExpr :: Bool, isInModule_Inh_MExpr :: Bool, isMeta_Inh_MExpr :: Bool, isNegation_Inh_MExpr :: Bool, loopLevel_Inh_MExpr :: Int, mtokenPos_Inh_MExpr :: Region, scopeLevel_Inh_MExpr :: Int, scopes_Inh_MExpr :: ([M.Map String (Bool, Region)]), topLevel_Inh_MExpr :: Bool, varBeingDefined_Inh_MExpr :: (Maybe MToken), variableStyle_Inh_MExpr :: DeterminedVariableStyle}
data Syn_MExpr = Syn_MExpr {copy_Syn_MExpr :: MExpr, globalDefinitions_Syn_MExpr :: (M.Map String [Region]), identifier_Syn_MExpr :: String, isInModule_Syn_MExpr :: Bool, isSimpleExpression_Syn_MExpr :: Bool, isSingleVar_Syn_MExpr :: (Maybe MToken), mtokenPos_Syn_MExpr :: Region, scopes_Syn_MExpr :: ([M.Map String (Bool, Region)]), variableStyle_Syn_MExpr :: DeterminedVariableStyle, warnings_Syn_MExpr :: ([String -> LintMessage])}
wrap_MExpr
:: T_MExpr
-> Inh_MExpr
-> Syn_MExpr
wrap_MExpr sem (Inh_MExpr _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIinParentheses _lhsIisInModule _lhsIisMeta _lhsIisNegation _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsItopLevel _lhsIvarBeingDefined _lhsIvariableStyle) =
( let
(_lhsOcopy, _lhsOmtokenPos, sem_1) = sem
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOisSingleVar, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIinParentheses _lhsIisInModule _lhsIisMeta _lhsIisNegation _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsItopLevel _lhsIvarBeingDefined _lhsIvariableStyle
in
(Syn_MExpr _lhsOcopy _lhsOglobalDefinitions _lhsOidentifier _lhsOisInModule _lhsOisSimpleExpression _lhsOisSingleVar _lhsOmtokenPos _lhsOscopes _lhsOvariableStyle _lhsOwarnings)
)
sem_MExpr_MExpr
:: T_Region
-> T_Expr
-> T_MExpr
sem_MExpr_MExpr pos_ expr_ =
( case (expr_) of
(_exprIcopy, expr_1) ->
( case (pos_) of
(_posIcopy, _posIidentifier, _posIwarnings) ->
( case ( ( MExpr _posIcopy _exprIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( _posIcopy
)
) of
_lhsOmtokenPos ->
( case ( ( let
sem_MExpr_MExpr_1 :: T_MExpr_1
sem_MExpr_MExpr_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIinParentheses
_lhsIisInModule
_lhsIisMeta
_lhsIisNegation
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsItopLevel
_lhsIvarBeingDefined
_lhsIvariableStyle ->
( case ( ( _lhsIvarBeingDefined
)
) of
_exprOvarBeingDefined ->
( case ( ( _lhsIscopes
)
) of
_exprOscopes ->
( case ( ( _lhsIisMeta
)
) of
_exprOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_exprOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_exprOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_exprOconfig ->
( case ( ( _lhsIvariableStyle
)
) of
_exprOvariableStyle ->
( case ( ( _lhsItopLevel
)
) of
_exprOtopLevel ->
( case ( ( _lhsIscopeLevel
)
) of
_exprOscopeLevel ->
( case ( ( _lhsIloopLevel
)
) of
_exprOloopLevel ->
( case ( ( _lhsIisNegation
)
) of
_exprOisNegation ->
( case ( ( _lhsIinParentheses
)
) of
_exprOinParentheses ->
( case ( ( _lhsIfuncName
)
) of
_exprOfuncName ->
( case ( ( _posIcopy
)
) of
_exprOmtokenPos ->
( case (expr_1 _exprOconfig _exprOfuncName _exprOglobalDefinitions _exprOinParentheses _exprOisInModule _exprOisMeta _exprOisNegation _exprOloopLevel _exprOmtokenPos _exprOscopeLevel _exprOscopes _exprOtopLevel _exprOvarBeingDefined _exprOvariableStyle) of
(_exprIglobalDefinitions, _exprIidentifier, _exprIisInModule, _exprIisSimpleExpression, _exprIisSingleVar, _exprImtokenPos, _exprIscopes, _exprIvariableStyle, _exprIwarnings) ->
( case ( ( _exprIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _posIidentifier _exprIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( _exprIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _exprIisSimpleExpression
)
) of
_lhsOisSimpleExpression ->
( case ( ( _exprIisSingleVar
)
) of
_lhsOisSingleVar ->
( case ( ( _exprIscopes
)
) of
_lhsOscopes ->
( case ( ( _exprIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _posIwarnings ++ _exprIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOisSingleVar, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_MExpr_MExpr_1
)
) of
(sem_MExpr_1) ->
(_lhsOcopy, _lhsOmtokenPos, sem_MExpr_1)
)
)
)
)
)
)
-- MExprList ---------------------------------------------------
-- cata
sem_MExprList
:: MExprList
-> T_MExprList
sem_MExprList list =
(Prelude.foldr sem_MExprList_Cons sem_MExprList_Nil (Prelude.map sem_MExpr list))
-- semantic domain
type T_MExprList = (MExprList, T_MExprList_1)
type T_MExprList_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> Bool
-> DeterminedVariableStyle
-> ((M.Map String [Region]), String, Bool, Region, ([M.Map String (Bool, Region)]), DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_MExprList = Inh_MExprList {config_Inh_MExprList :: LintSettings, funcName_Inh_MExprList :: String, globalDefinitions_Inh_MExprList :: (M.Map String [Region]), inParentheses_Inh_MExprList :: Bool, isInModule_Inh_MExprList :: Bool, isMeta_Inh_MExprList :: Bool, loopLevel_Inh_MExprList :: Int, mtokenPos_Inh_MExprList :: Region, scopeLevel_Inh_MExprList :: Int, scopes_Inh_MExprList :: ([M.Map String (Bool, Region)]), topLevel_Inh_MExprList :: Bool, variableStyle_Inh_MExprList :: DeterminedVariableStyle}
data Syn_MExprList = Syn_MExprList {copy_Syn_MExprList :: MExprList, globalDefinitions_Syn_MExprList :: (M.Map String [Region]), identifier_Syn_MExprList :: String, isInModule_Syn_MExprList :: Bool, mtokenPos_Syn_MExprList :: Region, scopes_Syn_MExprList :: ([M.Map String (Bool, Region)]), variableStyle_Syn_MExprList :: DeterminedVariableStyle, warnings_Syn_MExprList :: ([String -> LintMessage])}
wrap_MExprList
:: T_MExprList
-> Inh_MExprList
-> Syn_MExprList
wrap_MExprList sem (Inh_MExprList _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIinParentheses _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsItopLevel _lhsIvariableStyle) =
( let
(_lhsOcopy, sem_1) = sem
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIinParentheses _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsItopLevel _lhsIvariableStyle
in
(Syn_MExprList _lhsOcopy _lhsOglobalDefinitions _lhsOidentifier _lhsOisInModule _lhsOmtokenPos _lhsOscopes _lhsOvariableStyle _lhsOwarnings)
)
sem_MExprList_Cons
:: T_MExpr
-> T_MExprList
-> T_MExprList
sem_MExprList_Cons hd_ tl_ =
( case (tl_) of
(_tlIcopy, tl_1) ->
( case (hd_) of
(_hdIcopy, _hdImtokenPos, hd_1) ->
( case ( ( (:) _hdIcopy _tlIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_MExprList_Cons_1 :: T_MExprList_1
sem_MExprList_Cons_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIinParentheses
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsItopLevel
_lhsIvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_hdOscopes ->
( case ( ( _lhsIisMeta
)
) of
_hdOisMeta ->
( case ( ( _lhsIconfig
)
) of
_hdOconfig ->
( case ( ( Nothing
)
) of
_hdOvarBeingDefined ->
( case ( ( _lhsIvariableStyle
)
) of
_hdOvariableStyle ->
( case ( ( _lhsItopLevel
)
) of
_hdOtopLevel ->
( case ( ( _lhsIscopeLevel
)
) of
_hdOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_hdOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_hdOloopLevel ->
( case ( ( _lhsIisInModule
)
) of
_hdOisInModule ->
( case ( ( _lhsIinParentheses
)
) of
_hdOinParentheses ->
( case ( ( _lhsIglobalDefinitions
)
) of
_hdOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_hdOfuncName ->
( case ( ( False
)
) of
_hdOisNegation ->
( case (hd_1 _hdOconfig _hdOfuncName _hdOglobalDefinitions _hdOinParentheses _hdOisInModule _hdOisMeta _hdOisNegation _hdOloopLevel _hdOmtokenPos _hdOscopeLevel _hdOscopes _hdOtopLevel _hdOvarBeingDefined _hdOvariableStyle) of
(_hdIglobalDefinitions, _hdIidentifier, _hdIisInModule, _hdIisSimpleExpression, _hdIisSingleVar, _hdIscopes, _hdIvariableStyle, _hdIwarnings) ->
( case ( ( _hdIscopes
)
) of
_tlOscopes ->
( case ( ( _lhsIisMeta
)
) of
_tlOisMeta ->
( case ( ( _hdIisInModule
)
) of
_tlOisInModule ->
( case ( ( _hdIglobalDefinitions
)
) of
_tlOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_tlOconfig ->
( case ( ( _hdIvariableStyle
)
) of
_tlOvariableStyle ->
( case ( ( _lhsItopLevel
)
) of
_tlOtopLevel ->
( case ( ( _lhsIscopeLevel
)
) of
_tlOscopeLevel ->
( case ( ( _hdImtokenPos
)
) of
_tlOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_tlOloopLevel ->
( case ( ( _lhsIinParentheses
)
) of
_tlOinParentheses ->
( case ( ( _lhsIfuncName
)
) of
_tlOfuncName ->
( case (tl_1 _tlOconfig _tlOfuncName _tlOglobalDefinitions _tlOinParentheses _tlOisInModule _tlOisMeta _tlOloopLevel _tlOmtokenPos _tlOscopeLevel _tlOscopes _tlOtopLevel _tlOvariableStyle) of
(_tlIglobalDefinitions, _tlIidentifier, _tlIisInModule, _tlImtokenPos, _tlIscopes, _tlIvariableStyle, _tlIwarnings) ->
( case ( ( _tlIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _hdIidentifier _tlIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( _tlIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _hdImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _tlIscopes
)
) of
_lhsOscopes ->
( case ( ( _tlIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _hdIwarnings ++ _tlIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_MExprList_Cons_1
)
) of
(sem_MExprList_1) ->
(_lhsOcopy, sem_MExprList_1)
)
)
)
)
)
sem_MExprList_Nil :: T_MExprList
sem_MExprList_Nil =
( case ( ( []
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_MExprList_Nil_1 :: T_MExprList_1
sem_MExprList_Nil_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIinParentheses
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsItopLevel
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
in
sem_MExprList_Nil_1
)
) of
(sem_MExprList_1) ->
(_lhsOcopy, sem_MExprList_1)
)
)
)
-- MStat -------------------------------------------------------
-- cata
sem_MStat
:: MStat
-> T_MStat
sem_MStat (MStat _pos _stat) =
(sem_MStat_MStat (sem_Region _pos) (sem_Stat _stat))
-- semantic domain
type T_MStat = (MStat, T_MStat_1)
type T_MStat_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> DeterminedVariableStyle
-> ((M.Map String [Region]), String, Bool, Bool, Region, ([M.Map String (Bool, Region)]), Int, DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_MStat = Inh_MStat {config_Inh_MStat :: LintSettings, funcName_Inh_MStat :: String, globalDefinitions_Inh_MStat :: (M.Map String [Region]), isInModule_Inh_MStat :: Bool, isMeta_Inh_MStat :: Bool, loopLevel_Inh_MStat :: Int, mtokenPos_Inh_MStat :: Region, scopeLevel_Inh_MStat :: Int, scopes_Inh_MStat :: ([M.Map String (Bool, Region)]), variableStyle_Inh_MStat :: DeterminedVariableStyle}
data Syn_MStat = Syn_MStat {copy_Syn_MStat :: MStat, globalDefinitions_Syn_MStat :: (M.Map String [Region]), identifier_Syn_MStat :: String, isIfStatement_Syn_MStat :: Bool, isInModule_Syn_MStat :: Bool, mtokenPos_Syn_MStat :: Region, scopes_Syn_MStat :: ([M.Map String (Bool, Region)]), statementCount_Syn_MStat :: Int, variableStyle_Syn_MStat :: DeterminedVariableStyle, warnings_Syn_MStat :: ([String -> LintMessage])}
wrap_MStat
:: T_MStat
-> Inh_MStat
-> Syn_MStat
wrap_MStat sem (Inh_MStat _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle) =
( let
(_lhsOcopy, sem_1) = sem
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisIfStatement, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOstatementCount, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle
in
(Syn_MStat _lhsOcopy _lhsOglobalDefinitions _lhsOidentifier _lhsOisIfStatement _lhsOisInModule _lhsOmtokenPos _lhsOscopes _lhsOstatementCount _lhsOvariableStyle _lhsOwarnings)
)
sem_MStat_MStat
:: T_Region
-> T_Stat
-> T_MStat
sem_MStat_MStat pos_ stat_ =
( case (stat_) of
(_statIcopy, stat_1) ->
( case (pos_) of
(_posIcopy, _posIidentifier, _posIwarnings) ->
( case ( ( MStat _posIcopy _statIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_MStat_MStat_1 :: T_MStat_1
sem_MStat_MStat_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_statOscopes ->
( case ( ( _lhsIisMeta
)
) of
_statOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_statOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_statOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_statOconfig ->
( case ( ( _lhsIvariableStyle
)
) of
_statOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_statOscopeLevel ->
( case ( ( _lhsIloopLevel
)
) of
_statOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_statOfuncName ->
( case ( ( _posIcopy
)
) of
_statOmtokenPos ->
( case (stat_1 _statOconfig _statOfuncName _statOglobalDefinitions _statOisInModule _statOisMeta _statOloopLevel _statOmtokenPos _statOscopeLevel _statOscopes _statOvariableStyle) of
(_statIglobalDefinitions, _statIidentifier, _statIisIfStatement, _statIisInModule, _statImtokenPos, _statIscopes, _statIvariableStyle, _statIwarnings) ->
( case ( ( _statIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _posIidentifier _statIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( _statIisIfStatement
)
) of
_lhsOisIfStatement ->
( case ( ( _statIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _posIcopy
)
) of
_lhsOmtokenPos ->
( case ( ( _statIscopes
)
) of
_lhsOscopes ->
( case ( ( 1
)
) of
_lhsOstatementCount ->
( case ( ( _statIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _posIwarnings ++ _statIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisIfStatement, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOstatementCount, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_MStat_MStat_1
)
) of
(sem_MStat_1) ->
(_lhsOcopy, sem_MStat_1)
)
)
)
)
)
-- MStatList ---------------------------------------------------
-- cata
sem_MStatList
:: MStatList
-> T_MStatList
sem_MStatList list =
(Prelude.foldr sem_MStatList_Cons sem_MStatList_Nil (Prelude.map sem_MStat list))
-- semantic domain
type T_MStatList = (MStatList, T_MStatList_1)
type T_MStatList_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> DeterminedVariableStyle
-> ((M.Map String [Region]), String, Bool, Bool, Region, ([M.Map String (Bool, Region)]), Int, DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_MStatList = Inh_MStatList {config_Inh_MStatList :: LintSettings, funcName_Inh_MStatList :: String, globalDefinitions_Inh_MStatList :: (M.Map String [Region]), isInModule_Inh_MStatList :: Bool, isMeta_Inh_MStatList :: Bool, loopLevel_Inh_MStatList :: Int, mtokenPos_Inh_MStatList :: Region, scopeLevel_Inh_MStatList :: Int, scopes_Inh_MStatList :: ([M.Map String (Bool, Region)]), variableStyle_Inh_MStatList :: DeterminedVariableStyle}
data Syn_MStatList = Syn_MStatList {copy_Syn_MStatList :: MStatList, globalDefinitions_Syn_MStatList :: (M.Map String [Region]), identifier_Syn_MStatList :: String, isIfStatement_Syn_MStatList :: Bool, isInModule_Syn_MStatList :: Bool, mtokenPos_Syn_MStatList :: Region, scopes_Syn_MStatList :: ([M.Map String (Bool, Region)]), statementCount_Syn_MStatList :: Int, variableStyle_Syn_MStatList :: DeterminedVariableStyle, warnings_Syn_MStatList :: ([String -> LintMessage])}
wrap_MStatList
:: T_MStatList
-> Inh_MStatList
-> Syn_MStatList
wrap_MStatList sem (Inh_MStatList _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle) =
( let
(_lhsOcopy, sem_1) = sem
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisIfStatement, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOstatementCount, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle
in
(Syn_MStatList _lhsOcopy _lhsOglobalDefinitions _lhsOidentifier _lhsOisIfStatement _lhsOisInModule _lhsOmtokenPos _lhsOscopes _lhsOstatementCount _lhsOvariableStyle _lhsOwarnings)
)
sem_MStatList_Cons
:: T_MStat
-> T_MStatList
-> T_MStatList
sem_MStatList_Cons hd_ tl_ =
( case (tl_) of
(_tlIcopy, tl_1) ->
( case (hd_) of
(_hdIcopy, hd_1) ->
( case ( ( (:) _hdIcopy _tlIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_MStatList_Cons_1 :: T_MStatList_1
sem_MStatList_Cons_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_hdOscopes ->
( case ( ( _lhsIisMeta
)
) of
_hdOisMeta ->
( case ( ( _lhsIconfig
)
) of
_hdOconfig ->
( case ( ( _lhsIvariableStyle
)
) of
_hdOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_hdOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_hdOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_hdOloopLevel ->
( case ( ( _lhsIisInModule
)
) of
_hdOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_hdOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_hdOfuncName ->
( case (hd_1 _hdOconfig _hdOfuncName _hdOglobalDefinitions _hdOisInModule _hdOisMeta _hdOloopLevel _hdOmtokenPos _hdOscopeLevel _hdOscopes _hdOvariableStyle) of
(_hdIglobalDefinitions, _hdIidentifier, _hdIisIfStatement, _hdIisInModule, _hdImtokenPos, _hdIscopes, _hdIstatementCount, _hdIvariableStyle, _hdIwarnings) ->
( case ( ( _hdIscopes
)
) of
_tlOscopes ->
( case ( ( _lhsIisMeta
)
) of
_tlOisMeta ->
( case ( ( _hdIisInModule
)
) of
_tlOisInModule ->
( case ( ( _hdIglobalDefinitions
)
) of
_tlOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_tlOconfig ->
( case ( ( _hdIvariableStyle
)
) of
_tlOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_tlOscopeLevel ->
( case ( ( _hdImtokenPos
)
) of
_tlOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_tlOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_tlOfuncName ->
( case (tl_1 _tlOconfig _tlOfuncName _tlOglobalDefinitions _tlOisInModule _tlOisMeta _tlOloopLevel _tlOmtokenPos _tlOscopeLevel _tlOscopes _tlOvariableStyle) of
(_tlIglobalDefinitions, _tlIidentifier, _tlIisIfStatement, _tlIisInModule, _tlImtokenPos, _tlIscopes, _tlIstatementCount, _tlIvariableStyle, _tlIwarnings) ->
( case ( ( _tlIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _hdIidentifier _tlIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( _hdIisIfStatement || _tlIisIfStatement
)
) of
_lhsOisIfStatement ->
( case ( ( _tlIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _hdImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _tlIscopes
)
) of
_lhsOscopes ->
( case ( ( _hdIstatementCount + _tlIstatementCount
)
) of
_lhsOstatementCount ->
( case ( ( _tlIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _hdIwarnings ++ _tlIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisIfStatement, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOstatementCount, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_MStatList_Cons_1
)
) of
(sem_MStatList_1) ->
(_lhsOcopy, sem_MStatList_1)
)
)
)
)
)
sem_MStatList_Nil :: T_MStatList
sem_MStatList_Nil =
( case ( ( []
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_MStatList_Nil_1 :: T_MStatList_1
sem_MStatList_Nil_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( False
)
) of
_lhsOisIfStatement ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( 0
)
) of
_lhsOstatementCount ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisIfStatement, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOstatementCount, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
in
sem_MStatList_Nil_1
)
) of
(sem_MStatList_1) ->
(_lhsOcopy, sem_MStatList_1)
)
)
)
-- MToken ------------------------------------------------------
-- cata
sem_MToken
:: MToken
-> T_MToken
sem_MToken (MToken _mpos _mtok) =
(sem_MToken_MToken (sem_Region _mpos) (sem_Token _mtok))
-- semantic domain
type T_MToken = (MToken, Token, Region, T_MToken_1)
type T_MToken_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Region
-> ([M.Map String (Bool, Region)])
-> ((M.Map String [Region]), String, Bool, ([M.Map String (Bool, Region)]), ([String -> LintMessage]))
data Inh_MToken = Inh_MToken {config_Inh_MToken :: LintSettings, funcName_Inh_MToken :: String, globalDefinitions_Inh_MToken :: (M.Map String [Region]), isInModule_Inh_MToken :: Bool, isMeta_Inh_MToken :: Bool, mtokenPos_Inh_MToken :: Region, scopes_Inh_MToken :: ([M.Map String (Bool, Region)])}
data Syn_MToken = Syn_MToken {copy_Syn_MToken :: MToken, globalDefinitions_Syn_MToken :: (M.Map String [Region]), identifier_Syn_MToken :: String, isInModule_Syn_MToken :: Bool, mtok_Syn_MToken :: Token, mtokenPos_Syn_MToken :: Region, scopes_Syn_MToken :: ([M.Map String (Bool, Region)]), warnings_Syn_MToken :: ([String -> LintMessage])}
wrap_MToken
:: T_MToken
-> Inh_MToken
-> Syn_MToken
wrap_MToken sem (Inh_MToken _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsImtokenPos _lhsIscopes) =
( let
(_lhsOcopy, _lhsOmtok, _lhsOmtokenPos, sem_1) = sem
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOscopes, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsImtokenPos _lhsIscopes
in
(Syn_MToken _lhsOcopy _lhsOglobalDefinitions _lhsOidentifier _lhsOisInModule _lhsOmtok _lhsOmtokenPos _lhsOscopes _lhsOwarnings)
)
sem_MToken_MToken
:: T_Region
-> T_Token
-> T_MToken
sem_MToken_MToken mpos_ mtok_ =
( case (mtok_) of
(_mtokIcopy, _mtokIidentifier, _mtokIwarnings) ->
( case (mpos_) of
(_mposIcopy, _mposIidentifier, _mposIwarnings) ->
( case ( ( MToken _mposIcopy _mtokIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( _mtokIcopy
)
) of
_lhsOmtok ->
( case ( ( _mposIcopy
)
) of
_lhsOmtokenPos ->
( case ( ( let
sem_MToken_MToken_1 :: T_MToken_1
sem_MToken_MToken_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsImtokenPos
_lhsIscopes ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( _mtokIidentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _mposIwarnings ++ _mtokIwarnings
)
) of
_warnings_augmented_syn ->
( case ( ( if not (lint_goto_identifier _lhsIconfig) || _mtokIidentifier /= "goto"
then id
else (:) $ warn _mposIcopy GotoAsIdentifier
)
) of
_warnings_augmented_f1 ->
( case ( ( foldr ($) _warnings_augmented_syn [_warnings_augmented_f1]
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOscopes, _lhsOwarnings)
)
)
)
)
)
)
)
)
in
sem_MToken_MToken_1
)
) of
(sem_MToken_1) ->
(_lhsOcopy, _lhsOmtok, _lhsOmtokenPos, sem_MToken_1)
)
)
)
)
)
)
)
-- MTokenList --------------------------------------------------
-- cata
sem_MTokenList
:: MTokenList
-> T_MTokenList
sem_MTokenList list =
(Prelude.foldr sem_MTokenList_Cons sem_MTokenList_Nil (Prelude.map sem_MToken list))
-- semantic domain
type T_MTokenList =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Region
-> ([M.Map String (Bool, Region)])
-> (MTokenList, (M.Map String [Region]), String, Bool, Region, ([M.Map String (Bool, Region)]), ([String -> LintMessage]))
data Inh_MTokenList = Inh_MTokenList {config_Inh_MTokenList :: LintSettings, funcName_Inh_MTokenList :: String, globalDefinitions_Inh_MTokenList :: (M.Map String [Region]), isInModule_Inh_MTokenList :: Bool, isMeta_Inh_MTokenList :: Bool, mtokenPos_Inh_MTokenList :: Region, scopes_Inh_MTokenList :: ([M.Map String (Bool, Region)])}
data Syn_MTokenList = Syn_MTokenList {copy_Syn_MTokenList :: MTokenList, globalDefinitions_Syn_MTokenList :: (M.Map String [Region]), identifier_Syn_MTokenList :: String, isInModule_Syn_MTokenList :: Bool, mtokenPos_Syn_MTokenList :: Region, scopes_Syn_MTokenList :: ([M.Map String (Bool, Region)]), warnings_Syn_MTokenList :: ([String -> LintMessage])}
wrap_MTokenList
:: T_MTokenList
-> Inh_MTokenList
-> Syn_MTokenList
wrap_MTokenList sem (Inh_MTokenList _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsImtokenPos _lhsIscopes) =
( let
(_lhsOcopy, _lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOwarnings) = sem _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsImtokenPos _lhsIscopes
in
(Syn_MTokenList _lhsOcopy _lhsOglobalDefinitions _lhsOidentifier _lhsOisInModule _lhsOmtokenPos _lhsOscopes _lhsOwarnings)
)
sem_MTokenList_Cons
:: T_MToken
-> T_MTokenList
-> T_MTokenList
sem_MTokenList_Cons hd_ tl_ =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsImtokenPos
_lhsIscopes ->
( case ( ( _lhsIscopes
)
) of
_hdOscopes ->
( case (hd_) of
(_hdIcopy, _hdImtok, _hdImtokenPos, hd_1) ->
( case ( ( _lhsImtokenPos
)
) of
_hdOmtokenPos ->
( case ( ( _lhsIisMeta
)
) of
_hdOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_hdOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_hdOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_hdOfuncName ->
( case ( ( _lhsIconfig
)
) of
_hdOconfig ->
( case (hd_1 _hdOconfig _hdOfuncName _hdOglobalDefinitions _hdOisInModule _hdOisMeta _hdOmtokenPos _hdOscopes) of
(_hdIglobalDefinitions, _hdIidentifier, _hdIisInModule, _hdIscopes, _hdIwarnings) ->
( case ( ( _hdIscopes
)
) of
_tlOscopes ->
( case ( ( _hdImtokenPos
)
) of
_tlOmtokenPos ->
( case ( ( _lhsIisMeta
)
) of
_tlOisMeta ->
( case ( ( _hdIisInModule
)
) of
_tlOisInModule ->
( case ( ( _hdIglobalDefinitions
)
) of
_tlOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_tlOfuncName ->
( case ( ( _lhsIconfig
)
) of
_tlOconfig ->
( case (tl_ _tlOconfig _tlOfuncName _tlOglobalDefinitions _tlOisInModule _tlOisMeta _tlOmtokenPos _tlOscopes) of
(_tlIcopy, _tlIglobalDefinitions, _tlIidentifier, _tlIisInModule, _tlImtokenPos, _tlIscopes, _tlIwarnings) ->
( case ( ( (:) _hdIcopy _tlIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( _tlIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _hdIidentifier _tlIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( _tlIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _hdImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _tlIscopes
)
) of
_lhsOscopes ->
( case ( ( _hdIwarnings ++ _tlIwarnings
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
sem_MTokenList_Nil :: T_MTokenList
sem_MTokenList_Nil =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsImtokenPos
_lhsIscopes ->
( case ( ( []
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
-- MaybeMExpr --------------------------------------------------
-- cata
sem_MaybeMExpr
:: MaybeMExpr
-> T_MaybeMExpr
sem_MaybeMExpr (Prelude.Just x) =
(sem_MaybeMExpr_Just (sem_MExpr x))
sem_MaybeMExpr Prelude.Nothing =
sem_MaybeMExpr_Nothing
-- semantic domain
type T_MaybeMExpr = (MaybeMExpr, T_MaybeMExpr_1)
type T_MaybeMExpr_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> (Maybe MToken)
-> DeterminedVariableStyle
-> ((M.Map String [Region]), String, Bool, (Maybe MToken), Region, ([M.Map String (Bool, Region)]), DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_MaybeMExpr = Inh_MaybeMExpr {config_Inh_MaybeMExpr :: LintSettings, funcName_Inh_MaybeMExpr :: String, globalDefinitions_Inh_MaybeMExpr :: (M.Map String [Region]), isInModule_Inh_MaybeMExpr :: Bool, isMeta_Inh_MaybeMExpr :: Bool, isNegation_Inh_MaybeMExpr :: Bool, loopLevel_Inh_MaybeMExpr :: Int, mtokenPos_Inh_MaybeMExpr :: Region, scopeLevel_Inh_MaybeMExpr :: Int, scopes_Inh_MaybeMExpr :: ([M.Map String (Bool, Region)]), varBeingDefined_Inh_MaybeMExpr :: (Maybe MToken), variableStyle_Inh_MaybeMExpr :: DeterminedVariableStyle}
data Syn_MaybeMExpr = Syn_MaybeMExpr {copy_Syn_MaybeMExpr :: MaybeMExpr, globalDefinitions_Syn_MaybeMExpr :: (M.Map String [Region]), identifier_Syn_MaybeMExpr :: String, isInModule_Syn_MaybeMExpr :: Bool, isSingleVar_Syn_MaybeMExpr :: (Maybe MToken), mtokenPos_Syn_MaybeMExpr :: Region, scopes_Syn_MaybeMExpr :: ([M.Map String (Bool, Region)]), variableStyle_Syn_MaybeMExpr :: DeterminedVariableStyle, warnings_Syn_MaybeMExpr :: ([String -> LintMessage])}
wrap_MaybeMExpr
:: T_MaybeMExpr
-> Inh_MaybeMExpr
-> Syn_MaybeMExpr
wrap_MaybeMExpr sem (Inh_MaybeMExpr _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIisNegation _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvarBeingDefined _lhsIvariableStyle) =
( let
(_lhsOcopy, sem_1) = sem
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSingleVar, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIisNegation _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvarBeingDefined _lhsIvariableStyle
in
(Syn_MaybeMExpr _lhsOcopy _lhsOglobalDefinitions _lhsOidentifier _lhsOisInModule _lhsOisSingleVar _lhsOmtokenPos _lhsOscopes _lhsOvariableStyle _lhsOwarnings)
)
sem_MaybeMExpr_Just
:: T_MExpr
-> T_MaybeMExpr
sem_MaybeMExpr_Just just_ =
( case (just_) of
(_justIcopy, _justImtokenPos, just_1) ->
( case ( ( Just _justIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_MaybeMExpr_Just_1 :: T_MaybeMExpr_1
sem_MaybeMExpr_Just_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIisNegation
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvarBeingDefined
_lhsIvariableStyle ->
( case ( ( _lhsIvarBeingDefined
)
) of
_justOvarBeingDefined ->
( case ( ( _lhsIscopes
)
) of
_justOscopes ->
( case ( ( _lhsIisMeta
)
) of
_justOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_justOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_justOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_justOconfig ->
( case ( ( _lhsIvariableStyle
)
) of
_justOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_justOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_justOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_justOloopLevel ->
( case ( ( _lhsIisNegation
)
) of
_justOisNegation ->
( case ( ( _lhsIfuncName
)
) of
_justOfuncName ->
( case ( ( False
)
) of
_justOtopLevel ->
( case ( ( False
)
) of
_justOinParentheses ->
( case (just_1 _justOconfig _justOfuncName _justOglobalDefinitions _justOinParentheses _justOisInModule _justOisMeta _justOisNegation _justOloopLevel _justOmtokenPos _justOscopeLevel _justOscopes _justOtopLevel _justOvarBeingDefined _justOvariableStyle) of
(_justIglobalDefinitions, _justIidentifier, _justIisInModule, _justIisSimpleExpression, _justIisSingleVar, _justIscopes, _justIvariableStyle, _justIwarnings) ->
( case ( ( _justIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( _justIidentifier
)
) of
_lhsOidentifier ->
( case ( ( _justIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _justIisSingleVar
)
) of
_lhsOisSingleVar ->
( case ( ( _justImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _justIscopes
)
) of
_lhsOscopes ->
( case ( ( _justIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _justIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSingleVar, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_MaybeMExpr_Just_1
)
) of
(sem_MaybeMExpr_1) ->
(_lhsOcopy, sem_MaybeMExpr_1)
)
)
)
)
sem_MaybeMExpr_Nothing :: T_MaybeMExpr
sem_MaybeMExpr_Nothing =
( case ( ( Nothing
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_MaybeMExpr_Nothing_1 :: T_MaybeMExpr_1
sem_MaybeMExpr_Nothing_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIisNegation
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvarBeingDefined
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( Nothing
)
) of
_lhsOisSingleVar ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSingleVar, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
in
sem_MaybeMExpr_Nothing_1
)
) of
(sem_MaybeMExpr_1) ->
(_lhsOcopy, sem_MaybeMExpr_1)
)
)
)
-- PFExprSuffix ------------------------------------------------
-- cata
sem_PFExprSuffix
:: PFExprSuffix
-> T_PFExprSuffix
sem_PFExprSuffix (Call _args) =
(sem_PFExprSuffix_Call (sem_Args _args))
sem_PFExprSuffix (MetaCall _fn _args) =
(sem_PFExprSuffix_MetaCall (sem_MToken _fn) (sem_Args _args))
sem_PFExprSuffix (ExprIndex _index) =
(sem_PFExprSuffix_ExprIndex (sem_MExpr _index))
sem_PFExprSuffix (DotIndex _index) =
(sem_PFExprSuffix_DotIndex (sem_MToken _index))
-- semantic domain
type T_PFExprSuffix = (PFExprSuffix, T_PFExprSuffix_1)
type T_PFExprSuffix_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> DeterminedVariableStyle
-> ((M.Map String [Region]), String, Bool, Bool, Region, ([M.Map String (Bool, Region)]), DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_PFExprSuffix = Inh_PFExprSuffix {config_Inh_PFExprSuffix :: LintSettings, funcName_Inh_PFExprSuffix :: String, globalDefinitions_Inh_PFExprSuffix :: (M.Map String [Region]), isInModule_Inh_PFExprSuffix :: Bool, isMeta_Inh_PFExprSuffix :: Bool, loopLevel_Inh_PFExprSuffix :: Int, mtokenPos_Inh_PFExprSuffix :: Region, scopeLevel_Inh_PFExprSuffix :: Int, scopes_Inh_PFExprSuffix :: ([M.Map String (Bool, Region)]), variableStyle_Inh_PFExprSuffix :: DeterminedVariableStyle}
data Syn_PFExprSuffix = Syn_PFExprSuffix {copy_Syn_PFExprSuffix :: PFExprSuffix, globalDefinitions_Syn_PFExprSuffix :: (M.Map String [Region]), identifier_Syn_PFExprSuffix :: String, isInModule_Syn_PFExprSuffix :: Bool, isSimpleExpression_Syn_PFExprSuffix :: Bool, mtokenPos_Syn_PFExprSuffix :: Region, scopes_Syn_PFExprSuffix :: ([M.Map String (Bool, Region)]), variableStyle_Syn_PFExprSuffix :: DeterminedVariableStyle, warnings_Syn_PFExprSuffix :: ([String -> LintMessage])}
wrap_PFExprSuffix
:: T_PFExprSuffix
-> Inh_PFExprSuffix
-> Syn_PFExprSuffix
wrap_PFExprSuffix sem (Inh_PFExprSuffix _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle) =
( let
(_lhsOcopy, sem_1) = sem
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle
in
(Syn_PFExprSuffix _lhsOcopy _lhsOglobalDefinitions _lhsOidentifier _lhsOisInModule _lhsOisSimpleExpression _lhsOmtokenPos _lhsOscopes _lhsOvariableStyle _lhsOwarnings)
)
sem_PFExprSuffix_Call
:: T_Args
-> T_PFExprSuffix
sem_PFExprSuffix_Call args_ =
( case (args_) of
(_argsIcopy, args_1) ->
( case ( ( Call _argsIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_PFExprSuffix_Call_1 :: T_PFExprSuffix_1
sem_PFExprSuffix_Call_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_argsOscopes ->
( case ( ( _lhsIisMeta
)
) of
_argsOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_argsOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_argsOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_argsOconfig ->
( case ( ( _lhsIvariableStyle
)
) of
_argsOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_argsOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_argsOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_argsOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_argsOfuncName ->
( case (args_1 _argsOconfig _argsOfuncName _argsOglobalDefinitions _argsOisInModule _argsOisMeta _argsOloopLevel _argsOmtokenPos _argsOscopeLevel _argsOscopes _argsOvariableStyle) of
(_argsIglobalDefinitions, _argsIidentifier, _argsIisInModule, _argsImtokenPos, _argsIscopes, _argsIvariableStyle, _argsIwarnings) ->
( case ( ( _argsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( _argsIidentifier
)
) of
_lhsOidentifier ->
( case ( ( _argsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( False
)
) of
_lhsOisSimpleExpression ->
( case ( ( _argsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _argsIscopes
)
) of
_lhsOscopes ->
( case ( ( _argsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _argsIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_PFExprSuffix_Call_1
)
) of
(sem_PFExprSuffix_1) ->
(_lhsOcopy, sem_PFExprSuffix_1)
)
)
)
)
sem_PFExprSuffix_MetaCall
:: T_MToken
-> T_Args
-> T_PFExprSuffix
sem_PFExprSuffix_MetaCall fn_ args_ =
( case (args_) of
(_argsIcopy, args_1) ->
( case (fn_) of
(_fnIcopy, _fnImtok, _fnImtokenPos, fn_1) ->
( case ( ( MetaCall _fnIcopy _argsIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_PFExprSuffix_MetaCall_1 :: T_PFExprSuffix_1
sem_PFExprSuffix_MetaCall_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_fnOscopes ->
( case ( ( _lhsImtokenPos
)
) of
_fnOmtokenPos ->
( case ( ( _lhsIisMeta
)
) of
_fnOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_fnOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_fnOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_fnOfuncName ->
( case ( ( _lhsIconfig
)
) of
_fnOconfig ->
( case (fn_1 _fnOconfig _fnOfuncName _fnOglobalDefinitions _fnOisInModule _fnOisMeta _fnOmtokenPos _fnOscopes) of
(_fnIglobalDefinitions, _fnIidentifier, _fnIisInModule, _fnIscopes, _fnIwarnings) ->
( case ( ( _fnIscopes
)
) of
_argsOscopes ->
( case ( ( _lhsIisMeta
)
) of
_argsOisMeta ->
( case ( ( _fnIisInModule
)
) of
_argsOisInModule ->
( case ( ( _fnIglobalDefinitions
)
) of
_argsOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_argsOconfig ->
( case ( ( _lhsIvariableStyle
)
) of
_argsOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_argsOscopeLevel ->
( case ( ( _fnImtokenPos
)
) of
_argsOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_argsOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_argsOfuncName ->
( case (args_1 _argsOconfig _argsOfuncName _argsOglobalDefinitions _argsOisInModule _argsOisMeta _argsOloopLevel _argsOmtokenPos _argsOscopeLevel _argsOscopes _argsOvariableStyle) of
(_argsIglobalDefinitions, _argsIidentifier, _argsIisInModule, _argsImtokenPos, _argsIscopes, _argsIvariableStyle, _argsIwarnings) ->
( case ( ( _argsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _fnIidentifier _argsIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( _argsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( False
)
) of
_lhsOisSimpleExpression ->
( case ( ( _argsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _argsIscopes
)
) of
_lhsOscopes ->
( case ( ( _argsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _fnIwarnings ++ _argsIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_PFExprSuffix_MetaCall_1
)
) of
(sem_PFExprSuffix_1) ->
(_lhsOcopy, sem_PFExprSuffix_1)
)
)
)
)
)
sem_PFExprSuffix_ExprIndex
:: T_MExpr
-> T_PFExprSuffix
sem_PFExprSuffix_ExprIndex index_ =
( case (index_) of
(_indexIcopy, _indexImtokenPos, index_1) ->
( case ( ( ExprIndex _indexIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_PFExprSuffix_ExprIndex_1 :: T_PFExprSuffix_1
sem_PFExprSuffix_ExprIndex_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_indexOscopes ->
( case ( ( _lhsIisMeta
)
) of
_indexOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_indexOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_indexOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_indexOconfig ->
( case ( ( Nothing
)
) of
_indexOvarBeingDefined ->
( case ( ( _lhsIvariableStyle
)
) of
_indexOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_indexOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_indexOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_indexOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_indexOfuncName ->
( case ( ( True
)
) of
_indexOtopLevel ->
( case ( ( True
)
) of
_indexOinParentheses ->
( case ( ( False
)
) of
_indexOisNegation ->
( case (index_1 _indexOconfig _indexOfuncName _indexOglobalDefinitions _indexOinParentheses _indexOisInModule _indexOisMeta _indexOisNegation _indexOloopLevel _indexOmtokenPos _indexOscopeLevel _indexOscopes _indexOtopLevel _indexOvarBeingDefined _indexOvariableStyle) of
(_indexIglobalDefinitions, _indexIidentifier, _indexIisInModule, _indexIisSimpleExpression, _indexIisSingleVar, _indexIscopes, _indexIvariableStyle, _indexIwarnings) ->
( case ( ( _indexIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( _indexIidentifier
)
) of
_lhsOidentifier ->
( case ( ( _indexIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _indexIisSimpleExpression
)
) of
_lhsOisSimpleExpression ->
( case ( ( _indexImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _indexIscopes
)
) of
_lhsOscopes ->
( case ( ( _indexIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _indexIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_PFExprSuffix_ExprIndex_1
)
) of
(sem_PFExprSuffix_1) ->
(_lhsOcopy, sem_PFExprSuffix_1)
)
)
)
)
sem_PFExprSuffix_DotIndex
:: T_MToken
-> T_PFExprSuffix
sem_PFExprSuffix_DotIndex index_ =
( case (index_) of
(_indexIcopy, _indexImtok, _indexImtokenPos, index_1) ->
( case ( ( DotIndex _indexIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_PFExprSuffix_DotIndex_1 :: T_PFExprSuffix_1
sem_PFExprSuffix_DotIndex_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_indexOglobalDefinitions ->
( case ( ( _lhsIscopes
)
) of
_indexOscopes ->
( case ( ( _lhsImtokenPos
)
) of
_indexOmtokenPos ->
( case ( ( _lhsIisMeta
)
) of
_indexOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_indexOisInModule ->
( case ( ( _lhsIfuncName
)
) of
_indexOfuncName ->
( case ( ( _lhsIconfig
)
) of
_indexOconfig ->
( case (index_1 _indexOconfig _indexOfuncName _indexOglobalDefinitions _indexOisInModule _indexOisMeta _indexOmtokenPos _indexOscopes) of
(_indexIglobalDefinitions, _indexIidentifier, _indexIisInModule, _indexIscopes, _indexIwarnings) ->
( case ( ( _indexIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( _indexIidentifier
)
) of
_lhsOidentifier ->
( case ( ( _indexIisInModule
)
) of
_lhsOisInModule ->
( case ( ( True
)
) of
_lhsOisSimpleExpression ->
( case ( ( _indexImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _indexIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _indexIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_PFExprSuffix_DotIndex_1
)
) of
(sem_PFExprSuffix_1) ->
(_lhsOcopy, sem_PFExprSuffix_1)
)
)
)
)
-- PrefixExp ---------------------------------------------------
-- cata
sem_PrefixExp
:: PrefixExp
-> T_PrefixExp
sem_PrefixExp (PFVar _name _suffixes) =
(sem_PrefixExp_PFVar (sem_MToken _name) (sem_ExprSuffixList _suffixes))
sem_PrefixExp (ExprVar _expr _suffixes) =
(sem_PrefixExp_ExprVar (sem_MExpr _expr) (sem_ExprSuffixList _suffixes))
-- semantic domain
type T_PrefixExp = (PrefixExp, Bool, Region, (Maybe MToken), T_PrefixExp_1)
type T_PrefixExp_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Bool
-> Bool
-> Int
-> Region
-> Bool
-> Int
-> ([M.Map String (Bool, Region)])
-> Bool
-> (Maybe MToken)
-> DeterminedVariableStyle
-> ((M.Map String [Region]), String, Bool, Bool, (Maybe MToken), ([M.Map String (Bool, Region)]), DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_PrefixExp = Inh_PrefixExp {config_Inh_PrefixExp :: LintSettings, funcName_Inh_PrefixExp :: String, globalDefinitions_Inh_PrefixExp :: (M.Map String [Region]), inParentheses_Inh_PrefixExp :: Bool, isInModule_Inh_PrefixExp :: Bool, isMeta_Inh_PrefixExp :: Bool, isNegation_Inh_PrefixExp :: Bool, loopLevel_Inh_PrefixExp :: Int, mtokenPos_Inh_PrefixExp :: Region, registerVarUse_Inh_PrefixExp :: Bool, scopeLevel_Inh_PrefixExp :: Int, scopes_Inh_PrefixExp :: ([M.Map String (Bool, Region)]), topLevel_Inh_PrefixExp :: Bool, varBeingDefined_Inh_PrefixExp :: (Maybe MToken), variableStyle_Inh_PrefixExp :: DeterminedVariableStyle}
data Syn_PrefixExp = Syn_PrefixExp {copy_Syn_PrefixExp :: PrefixExp, globalDefinitions_Syn_PrefixExp :: (M.Map String [Region]), hasSuffixes_Syn_PrefixExp :: Bool, identifier_Syn_PrefixExp :: String, isInModule_Syn_PrefixExp :: Bool, isSimpleExpression_Syn_PrefixExp :: Bool, isSingleVar_Syn_PrefixExp :: (Maybe MToken), mtokenPos_Syn_PrefixExp :: Region, scopes_Syn_PrefixExp :: ([M.Map String (Bool, Region)]), varName_Syn_PrefixExp :: (Maybe MToken), variableStyle_Syn_PrefixExp :: DeterminedVariableStyle, warnings_Syn_PrefixExp :: ([String -> LintMessage])}
wrap_PrefixExp
:: T_PrefixExp
-> Inh_PrefixExp
-> Syn_PrefixExp
wrap_PrefixExp sem (Inh_PrefixExp _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIinParentheses _lhsIisInModule _lhsIisMeta _lhsIisNegation _lhsIloopLevel _lhsImtokenPos _lhsIregisterVarUse _lhsIscopeLevel _lhsIscopes _lhsItopLevel _lhsIvarBeingDefined _lhsIvariableStyle) =
( let
(_lhsOcopy, _lhsOhasSuffixes, _lhsOmtokenPos, _lhsOvarName, sem_1) = sem
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOisSingleVar, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIinParentheses _lhsIisInModule _lhsIisMeta _lhsIisNegation _lhsIloopLevel _lhsImtokenPos _lhsIregisterVarUse _lhsIscopeLevel _lhsIscopes _lhsItopLevel _lhsIvarBeingDefined _lhsIvariableStyle
in
(Syn_PrefixExp _lhsOcopy _lhsOglobalDefinitions _lhsOhasSuffixes _lhsOidentifier _lhsOisInModule _lhsOisSimpleExpression _lhsOisSingleVar _lhsOmtokenPos _lhsOscopes _lhsOvarName _lhsOvariableStyle _lhsOwarnings)
)
sem_PrefixExp_PFVar
:: T_MToken
-> T_ExprSuffixList
-> T_PrefixExp
sem_PrefixExp_PFVar name_ suffixes_ =
( case (suffixes_) of
(_suffixesIcopy, suffixes_1) ->
( case (name_) of
(_nameIcopy, _nameImtok, _nameImtokenPos, name_1) ->
( case ( ( PFVar _nameIcopy _suffixesIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( not . null $ _suffixesIcopy
)
) of
_lhsOhasSuffixes ->
( case ( ( _nameImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( Just _nameIcopy
)
) of
_varName ->
( case ( ( _varName
)
) of
_lhsOvarName ->
( case ( ( let
sem_PrefixExp_PFVar_1 :: T_PrefixExp_1
sem_PrefixExp_PFVar_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIinParentheses
_lhsIisInModule
_lhsIisMeta
_lhsIisNegation
_lhsIloopLevel
_lhsImtokenPos
_lhsIregisterVarUse
_lhsIscopeLevel
_lhsIscopes
_lhsItopLevel
_lhsIvarBeingDefined
_lhsIvariableStyle ->
( case ( ( if isJust _lhsIvarBeingDefined && _lhsIvarBeingDefined == _varName
then case _lhsIscopes of
deepestScope : otherScopes -> deepestScope : registerVariable otherScopes _nameImtokenPos (show _nameImtok) _lhsIregisterVarUse
noScopes -> noScopes
else registerVariable _lhsIscopes _nameImtokenPos (show _nameImtok) _lhsIregisterVarUse
)
) of
_foundVars ->
( case ( ( _foundVars
)
) of
_nameOscopes ->
( case ( ( _lhsImtokenPos
)
) of
_nameOmtokenPos ->
( case ( ( _lhsIisMeta
)
) of
_nameOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_nameOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_nameOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_nameOfuncName ->
( case ( ( _lhsIconfig
)
) of
_nameOconfig ->
( case (name_1 _nameOconfig _nameOfuncName _nameOglobalDefinitions _nameOisInModule _nameOisMeta _nameOmtokenPos _nameOscopes) of
(_nameIglobalDefinitions, _nameIidentifier, _nameIisInModule, _nameIscopes, _nameIwarnings) ->
( case ( ( _nameIscopes
)
) of
_suffixesOscopes ->
( case ( ( _lhsIisMeta
)
) of
_suffixesOisMeta ->
( case ( ( _nameIisInModule
)
) of
_suffixesOisInModule ->
( case ( ( _nameIglobalDefinitions
)
) of
_suffixesOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_suffixesOconfig ->
( case ( ( _lhsIvariableStyle
)
) of
_suffixesOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_suffixesOscopeLevel ->
( case ( ( _nameImtokenPos
)
) of
_suffixesOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_suffixesOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_suffixesOfuncName ->
( case (suffixes_1 _suffixesOconfig _suffixesOfuncName _suffixesOglobalDefinitions _suffixesOisInModule _suffixesOisMeta _suffixesOloopLevel _suffixesOmtokenPos _suffixesOscopeLevel _suffixesOscopes _suffixesOvariableStyle) of
(_suffixesIglobalDefinitions, _suffixesIidentifier, _suffixesIisInModule, _suffixesIisSimpleExpression, _suffixesImtokenPos, _suffixesIscopes, _suffixesIvariableStyle, _suffixesIwarnings) ->
( case ( ( _suffixesIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _nameIidentifier _suffixesIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( _suffixesIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _suffixesIisSimpleExpression
)
) of
_lhsOisSimpleExpression ->
( case ( ( if null _suffixesIcopy then _varName else Nothing
)
) of
_lhsOisSingleVar ->
( case ( ( _suffixesIscopes
)
) of
_lhsOscopes ->
( case ( ( _suffixesIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _nameIwarnings ++ _suffixesIwarnings
)
) of
_warnings_augmented_syn ->
( case ( ( tokenLabel _nameIcopy
)
) of
_name ->
( case ( ( if not (lint_beginnerMistakes _lhsIconfig) || _lhsIisMeta || _name /= "self"
then id
else (:) $ warn _nameImtokenPos SelfInNonMeta
)
) of
_warnings_augmented_f3 ->
( case ( ( if not (lint_beginnerMistakes _lhsIconfig)
|| not _lhsIisMeta
|| _name /= "self"
|| _lhsIfuncName /= "ENT"
|| _suffixesIidentifier /= "Entity"
then id
else (:) $ warn _nameImtokenPos SelfEntity
)
) of
_warnings_augmented_f2 ->
( case ( ( if not (lint_beginnerMistakes _lhsIconfig)
|| not _lhsIisMeta
|| _name /= "self"
|| _lhsIfuncName /= "SWEP"
|| _suffixesIidentifier /= "Weapon"
then id
else (:) $ warn _nameImtokenPos SelfWeapon
)
) of
_warnings_augmented_f1 ->
( case ( ( foldr ($) _warnings_augmented_syn [_warnings_augmented_f1, _warnings_augmented_f2, _warnings_augmented_f3]
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOisSingleVar, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_PrefixExp_PFVar_1
)
) of
(sem_PrefixExp_1) ->
(_lhsOcopy, _lhsOhasSuffixes, _lhsOmtokenPos, _lhsOvarName, sem_PrefixExp_1)
)
)
)
)
)
)
)
)
)
sem_PrefixExp_ExprVar
:: T_MExpr
-> T_ExprSuffixList
-> T_PrefixExp
sem_PrefixExp_ExprVar expr_ suffixes_ =
( case (suffixes_) of
(_suffixesIcopy, suffixes_1) ->
( case (expr_) of
(_exprIcopy, _exprImtokenPos, expr_1) ->
( case ( ( ExprVar _exprIcopy _suffixesIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( False
)
) of
_lhsOhasSuffixes ->
( case ( ( _exprImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( Nothing
)
) of
_lhsOvarName ->
( case ( ( let
sem_PrefixExp_ExprVar_1 :: T_PrefixExp_1
sem_PrefixExp_ExprVar_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIinParentheses
_lhsIisInModule
_lhsIisMeta
_lhsIisNegation
_lhsIloopLevel
_lhsImtokenPos
_lhsIregisterVarUse
_lhsIscopeLevel
_lhsIscopes
_lhsItopLevel
_lhsIvarBeingDefined
_lhsIvariableStyle ->
( case ( ( _lhsIvarBeingDefined
)
) of
_exprOvarBeingDefined ->
( case ( ( _lhsIscopes
)
) of
_exprOscopes ->
( case ( ( _lhsIisMeta
)
) of
_exprOisMeta ->
( case ( ( _lhsIconfig
)
) of
_exprOconfig ->
( case ( ( _lhsIvariableStyle
)
) of
_exprOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_exprOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_exprOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_exprOloopLevel ->
( case ( ( _lhsIisNegation
)
) of
_exprOisNegation ->
( case ( ( _lhsIisInModule
)
) of
_exprOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_exprOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_exprOfuncName ->
( case ( ( True
)
) of
_exprOtopLevel ->
( case ( ( True
)
) of
_exprOinParentheses ->
( case (expr_1 _exprOconfig _exprOfuncName _exprOglobalDefinitions _exprOinParentheses _exprOisInModule _exprOisMeta _exprOisNegation _exprOloopLevel _exprOmtokenPos _exprOscopeLevel _exprOscopes _exprOtopLevel _exprOvarBeingDefined _exprOvariableStyle) of
(_exprIglobalDefinitions, _exprIidentifier, _exprIisInModule, _exprIisSimpleExpression, _exprIisSingleVar, _exprIscopes, _exprIvariableStyle, _exprIwarnings) ->
( case ( ( _exprIscopes
)
) of
_suffixesOscopes ->
( case ( ( _lhsIisMeta
)
) of
_suffixesOisMeta ->
( case ( ( _exprIisInModule
)
) of
_suffixesOisInModule ->
( case ( ( _exprIglobalDefinitions
)
) of
_suffixesOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_suffixesOconfig ->
( case ( ( _exprIvariableStyle
)
) of
_suffixesOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_suffixesOscopeLevel ->
( case ( ( _exprImtokenPos
)
) of
_suffixesOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_suffixesOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_suffixesOfuncName ->
( case (suffixes_1 _suffixesOconfig _suffixesOfuncName _suffixesOglobalDefinitions _suffixesOisInModule _suffixesOisMeta _suffixesOloopLevel _suffixesOmtokenPos _suffixesOscopeLevel _suffixesOscopes _suffixesOvariableStyle) of
(_suffixesIglobalDefinitions, _suffixesIidentifier, _suffixesIisInModule, _suffixesIisSimpleExpression, _suffixesImtokenPos, _suffixesIscopes, _suffixesIvariableStyle, _suffixesIwarnings) ->
( case ( ( _suffixesIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _exprIidentifier _suffixesIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( _suffixesIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _exprIisSimpleExpression && _suffixesIisSimpleExpression
)
) of
_lhsOisSimpleExpression ->
( case ( ( Nothing
)
) of
_lhsOisSingleVar ->
( case ( ( _suffixesIscopes
)
) of
_lhsOscopes ->
( case ( ( _suffixesIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _exprIwarnings ++ _suffixesIwarnings
)
) of
_warnings_augmented_syn ->
( case ( ( if lint_redundantParentheses _lhsIconfig && null _suffixesIcopy && (_lhsIinParentheses || (not _lhsItopLevel && _exprIisSimpleExpression))
then (:) $ warn _lhsImtokenPos UnnecessaryParentheses
else id
)
) of
_warnings_augmented_f1 ->
( case ( ( foldr ($) _warnings_augmented_syn [_warnings_augmented_f1]
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisSimpleExpression, _lhsOisSingleVar, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_PrefixExp_ExprVar_1
)
) of
(sem_PrefixExp_1) ->
(_lhsOcopy, _lhsOhasSuffixes, _lhsOmtokenPos, _lhsOvarName, sem_PrefixExp_1)
)
)
)
)
)
)
)
)
-- Region ------------------------------------------------------
-- cata
sem_Region
:: Region
-> T_Region
sem_Region (Region _start _end) =
(sem_Region_Region _start _end)
-- semantic domain
type T_Region = (Region, String, ([String -> LintMessage]))
data Inh_Region = Inh_Region {}
data Syn_Region = Syn_Region {copy_Syn_Region :: Region, identifier_Syn_Region :: String, warnings_Syn_Region :: ([String -> LintMessage])}
wrap_Region
:: T_Region
-> Inh_Region
-> Syn_Region
wrap_Region sem (Inh_Region) =
( let
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings) = sem
in
(Syn_Region _lhsOcopy _lhsOidentifier _lhsOwarnings)
)
sem_Region_Region
:: LineColPos
-> LineColPos
-> T_Region
sem_Region_Region start_ end_ =
( case ( ( Region start_ end_
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
-- Stat --------------------------------------------------------
-- cata
sem_Stat
:: Stat
-> T_Stat
sem_Stat (Def _vars) =
(sem_Stat_Def (sem_VarsList _vars))
sem_Stat (LocDef _vars) =
(sem_Stat_LocDef (sem_VarsList _vars))
sem_Stat (AFuncCall _fn) =
(sem_Stat_AFuncCall (sem_PrefixExp _fn))
sem_Stat (ALabel _lbl) =
(sem_Stat_ALabel (sem_MToken _lbl))
sem_Stat (ABreak) =
(sem_Stat_ABreak)
sem_Stat (AContinue) =
(sem_Stat_AContinue)
sem_Stat (AGoto _lbl) =
(sem_Stat_AGoto (sem_MToken _lbl))
sem_Stat (ADo _body) =
(sem_Stat_ADo (sem_Block _body))
sem_Stat (AWhile _cond _body) =
(sem_Stat_AWhile (sem_MExpr _cond) (sem_Block _body))
sem_Stat (ARepeat _body _cond) =
(sem_Stat_ARepeat (sem_Block _body) (sem_MExpr _cond))
sem_Stat (AIf _cond _body _elifs _els) =
(sem_Stat_AIf (sem_MExpr _cond) (sem_Block _body) (sem_ElseIfList _elifs) (sem_Else _els))
sem_Stat (ANFor _var _val _to _step _body) =
(sem_Stat_ANFor (sem_MToken _var) (sem_MExpr _val) (sem_MExpr _to) (sem_MExpr _step) (sem_Block _body))
sem_Stat (AGFor _vars _vals _body) =
(sem_Stat_AGFor _vars (sem_MExprList _vals) (sem_Block _body))
sem_Stat (AFunc _name _args _body) =
(sem_Stat_AFunc (sem_FuncName _name) _args (sem_Block _body))
sem_Stat (ALocFunc _name _args _body) =
(sem_Stat_ALocFunc (sem_FuncName _name) _args (sem_Block _body))
-- semantic domain
type T_Stat = (Stat, T_Stat_1)
type T_Stat_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> DeterminedVariableStyle
-> ((M.Map String [Region]), String, Bool, Bool, Region, ([M.Map String (Bool, Region)]), DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_Stat = Inh_Stat {config_Inh_Stat :: LintSettings, funcName_Inh_Stat :: String, globalDefinitions_Inh_Stat :: (M.Map String [Region]), isInModule_Inh_Stat :: Bool, isMeta_Inh_Stat :: Bool, loopLevel_Inh_Stat :: Int, mtokenPos_Inh_Stat :: Region, scopeLevel_Inh_Stat :: Int, scopes_Inh_Stat :: ([M.Map String (Bool, Region)]), variableStyle_Inh_Stat :: DeterminedVariableStyle}
data Syn_Stat = Syn_Stat {copy_Syn_Stat :: Stat, globalDefinitions_Syn_Stat :: (M.Map String [Region]), identifier_Syn_Stat :: String, isIfStatement_Syn_Stat :: Bool, isInModule_Syn_Stat :: Bool, mtokenPos_Syn_Stat :: Region, scopes_Syn_Stat :: ([M.Map String (Bool, Region)]), variableStyle_Syn_Stat :: DeterminedVariableStyle, warnings_Syn_Stat :: ([String -> LintMessage])}
wrap_Stat
:: T_Stat
-> Inh_Stat
-> Syn_Stat
wrap_Stat sem (Inh_Stat _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle) =
( let
(_lhsOcopy, sem_1) = sem
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisIfStatement, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle
in
(Syn_Stat _lhsOcopy _lhsOglobalDefinitions _lhsOidentifier _lhsOisIfStatement _lhsOisInModule _lhsOmtokenPos _lhsOscopes _lhsOvariableStyle _lhsOwarnings)
)
sem_Stat_Def
:: T_VarsList
-> T_Stat
sem_Stat_Def vars_ =
( case (vars_) of
(_varsIcopy, vars_1) ->
( case ( ( Def _varsIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Stat_Def_1 :: T_Stat_1
sem_Stat_Def_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_varsOscopes ->
( case ( ( _lhsIisMeta
)
) of
_varsOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_varsOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_varsOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_varsOconfig ->
( case ( ( False
)
) of
_varsOlocalDefinition ->
( case ( ( _lhsIvariableStyle
)
) of
_varsOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_varsOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_varsOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_varsOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_varsOfuncName ->
( case (vars_1 _varsOconfig _varsOfuncName _varsOglobalDefinitions _varsOisInModule _varsOisMeta _varsOlocalDefinition _varsOloopLevel _varsOmtokenPos _varsOscopeLevel _varsOscopes _varsOvariableStyle) of
(_varsIglobalDefinitions, _varsIidentifier, _varsIisInModule, _varsImtokenPos, _varsIscopes, _varsIvariableStyle, _varsIwarnings) ->
( case ( ( _varsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( _varsIidentifier
)
) of
_lhsOidentifier ->
( case ( ( False
)
) of
_lhsOisIfStatement ->
( case ( ( _varsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _varsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _varsIscopes
)
) of
_lhsOscopes ->
( case ( ( _varsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _varsIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisIfStatement, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Stat_Def_1
)
) of
(sem_Stat_1) ->
(_lhsOcopy, sem_Stat_1)
)
)
)
)
sem_Stat_LocDef
:: T_VarsList
-> T_Stat
sem_Stat_LocDef vars_ =
( case (vars_) of
(_varsIcopy, vars_1) ->
( case ( ( LocDef _varsIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Stat_LocDef_1 :: T_Stat_1
sem_Stat_LocDef_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_varsOscopes ->
( case ( ( _lhsIisMeta
)
) of
_varsOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_varsOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_varsOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_varsOconfig ->
( case ( ( True
)
) of
_varsOlocalDefinition ->
( case ( ( _lhsIvariableStyle
)
) of
_varsOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_varsOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_varsOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_varsOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_varsOfuncName ->
( case (vars_1 _varsOconfig _varsOfuncName _varsOglobalDefinitions _varsOisInModule _varsOisMeta _varsOlocalDefinition _varsOloopLevel _varsOmtokenPos _varsOscopeLevel _varsOscopes _varsOvariableStyle) of
(_varsIglobalDefinitions, _varsIidentifier, _varsIisInModule, _varsImtokenPos, _varsIscopes, _varsIvariableStyle, _varsIwarnings) ->
( case ( ( _varsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( _varsIidentifier
)
) of
_lhsOidentifier ->
( case ( ( False
)
) of
_lhsOisIfStatement ->
( case ( ( _varsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _varsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _varsIscopes
)
) of
_lhsOscopes ->
( case ( ( _varsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _varsIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisIfStatement, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Stat_LocDef_1
)
) of
(sem_Stat_1) ->
(_lhsOcopy, sem_Stat_1)
)
)
)
)
sem_Stat_AFuncCall
:: T_PrefixExp
-> T_Stat
sem_Stat_AFuncCall fn_ =
( case (fn_) of
(_fnIcopy, _fnIhasSuffixes, _fnImtokenPos, _fnIvarName, fn_1) ->
( case ( ( AFuncCall _fnIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Stat_AFuncCall_1 :: T_Stat_1
sem_Stat_AFuncCall_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_fnOscopes ->
( case ( ( _lhsIisMeta
)
) of
_fnOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_fnOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_fnOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_fnOconfig ->
( case ( ( Nothing
)
) of
_fnOvarBeingDefined ->
( case ( ( True
)
) of
_fnOregisterVarUse ->
( case ( ( _lhsIvariableStyle
)
) of
_fnOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_fnOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_fnOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_fnOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_fnOfuncName ->
( case ( ( True
)
) of
_fnOtopLevel ->
( case ( ( False
)
) of
_fnOinParentheses ->
( case ( ( False
)
) of
_fnOisNegation ->
( case (fn_1 _fnOconfig _fnOfuncName _fnOglobalDefinitions _fnOinParentheses _fnOisInModule _fnOisMeta _fnOisNegation _fnOloopLevel _fnOmtokenPos _fnOregisterVarUse _fnOscopeLevel _fnOscopes _fnOtopLevel _fnOvarBeingDefined _fnOvariableStyle) of
(_fnIglobalDefinitions, _fnIidentifier, _fnIisInModule, _fnIisSimpleExpression, _fnIisSingleVar, _fnIscopes, _fnIvariableStyle, _fnIwarnings) ->
( case ( ( _fnIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( _fnIidentifier
)
) of
_lhsOidentifier ->
( case ( ( False
)
) of
_lhsOisIfStatement ->
( case ( ( (tokenLabel <$> _fnIvarName) == Just "module"
)
) of
_isModuleCall ->
( case ( ( _lhsIisInModule || _isModuleCall
)
) of
_lhsOisInModule ->
( case ( ( _fnImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _fnIscopes
)
) of
_lhsOscopes ->
( case ( ( _fnIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _fnIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisIfStatement, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Stat_AFuncCall_1
)
) of
(sem_Stat_1) ->
(_lhsOcopy, sem_Stat_1)
)
)
)
)
sem_Stat_ALabel
:: T_MToken
-> T_Stat
sem_Stat_ALabel lbl_ =
( case (lbl_) of
(_lblIcopy, _lblImtok, _lblImtokenPos, lbl_1) ->
( case ( ( ALabel _lblIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Stat_ALabel_1 :: T_Stat_1
sem_Stat_ALabel_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lblOglobalDefinitions ->
( case ( ( _lhsIscopes
)
) of
_lblOscopes ->
( case ( ( _lhsImtokenPos
)
) of
_lblOmtokenPos ->
( case ( ( _lhsIisMeta
)
) of
_lblOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_lblOisInModule ->
( case ( ( _lhsIfuncName
)
) of
_lblOfuncName ->
( case ( ( _lhsIconfig
)
) of
_lblOconfig ->
( case (lbl_1 _lblOconfig _lblOfuncName _lblOglobalDefinitions _lblOisInModule _lblOisMeta _lblOmtokenPos _lblOscopes) of
(_lblIglobalDefinitions, _lblIidentifier, _lblIisInModule, _lblIscopes, _lblIwarnings) ->
( case ( ( _lblIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( _lblIidentifier
)
) of
_lhsOidentifier ->
( case ( ( False
)
) of
_lhsOisIfStatement ->
( case ( ( _lblIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lblImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lblIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _lblIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisIfStatement, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Stat_ALabel_1
)
) of
(sem_Stat_1) ->
(_lhsOcopy, sem_Stat_1)
)
)
)
)
sem_Stat_ABreak :: T_Stat
sem_Stat_ABreak =
( case ( ( ABreak
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Stat_ABreak_1 :: T_Stat_1
sem_Stat_ABreak_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( False
)
) of
_lhsOisIfStatement ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisIfStatement, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
in
sem_Stat_ABreak_1
)
) of
(sem_Stat_1) ->
(_lhsOcopy, sem_Stat_1)
)
)
)
sem_Stat_AContinue :: T_Stat
sem_Stat_AContinue =
( case ( ( AContinue
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Stat_AContinue_1 :: T_Stat_1
sem_Stat_AContinue_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( False
)
) of
_lhsOisIfStatement ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisIfStatement, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
in
sem_Stat_AContinue_1
)
) of
(sem_Stat_1) ->
(_lhsOcopy, sem_Stat_1)
)
)
)
sem_Stat_AGoto
:: T_MToken
-> T_Stat
sem_Stat_AGoto lbl_ =
( case (lbl_) of
(_lblIcopy, _lblImtok, _lblImtokenPos, lbl_1) ->
( case ( ( AGoto _lblIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Stat_AGoto_1 :: T_Stat_1
sem_Stat_AGoto_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lblOglobalDefinitions ->
( case ( ( _lhsIscopes
)
) of
_lblOscopes ->
( case ( ( _lhsImtokenPos
)
) of
_lblOmtokenPos ->
( case ( ( _lhsIisMeta
)
) of
_lblOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_lblOisInModule ->
( case ( ( _lhsIfuncName
)
) of
_lblOfuncName ->
( case ( ( _lhsIconfig
)
) of
_lblOconfig ->
( case (lbl_1 _lblOconfig _lblOfuncName _lblOglobalDefinitions _lblOisInModule _lblOisMeta _lblOmtokenPos _lblOscopes) of
(_lblIglobalDefinitions, _lblIidentifier, _lblIisInModule, _lblIscopes, _lblIwarnings) ->
( case ( ( _lblIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( _lblIidentifier
)
) of
_lhsOidentifier ->
( case ( ( False
)
) of
_lhsOisIfStatement ->
( case ( ( _lblIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lblImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lblIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _lblIwarnings
)
) of
_warnings_augmented_syn ->
( case ( ( if not (lint_gotos _lhsIconfig) || _lhsIloopLevel >= 2
then id
else (:) $ warn _lblImtokenPos AvoidGoto
)
) of
_warnings_augmented_f1 ->
( case ( ( foldr ($) _warnings_augmented_syn [_warnings_augmented_f1]
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisIfStatement, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Stat_AGoto_1
)
) of
(sem_Stat_1) ->
(_lhsOcopy, sem_Stat_1)
)
)
)
)
sem_Stat_ADo
:: T_Block
-> T_Stat
sem_Stat_ADo body_ =
( case (body_) of
(_bodyIcopy, body_1) ->
( case ( ( ADo _bodyIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Stat_ADo_1 :: T_Stat_1
sem_Stat_ADo_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIisMeta
)
) of
_bodyOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_bodyOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_bodyOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_bodyOconfig ->
( case ( ( M.empty : _lhsIscopes
)
) of
_bodyOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_bodyOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_bodyOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_bodyOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_bodyOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_bodyOfuncName ->
( case ( ( False
)
) of
_bodyOisRepeat ->
( case (body_1 _bodyOconfig _bodyOfuncName _bodyOglobalDefinitions _bodyOisInModule _bodyOisMeta _bodyOisRepeat _bodyOloopLevel _bodyOmtokenPos _bodyOscopeLevel _bodyOscopes _bodyOvariableStyle) of
(_bodyIglobalDefinitions, _bodyIidentifier, _bodyIisIfStatement, _bodyIisInModule, _bodyImtokenPos, _bodyIscopes, _bodyIstatementCount, _bodyIvariableStyle, _bodyIwarnings) ->
( case ( ( _bodyIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( _bodyIidentifier
)
) of
_lhsOidentifier ->
( case ( ( False
)
) of
_lhsOisIfStatement ->
( case ( ( _bodyIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _bodyImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _bodyIscopes
)
) of
_lhsOscopes ->
( case ( ( _bodyIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _bodyIwarnings
)
) of
_warnings_augmented_syn ->
( case ( ( if not (lint_emptyBlocks _lhsIconfig) || _bodyIstatementCount > 0
then id
else (:) $ warn _lhsImtokenPos EmptyDoBlock
)
) of
_warnings_augmented_f1 ->
( case ( ( foldr ($) _warnings_augmented_syn [_warnings_augmented_f1]
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisIfStatement, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Stat_ADo_1
)
) of
(sem_Stat_1) ->
(_lhsOcopy, sem_Stat_1)
)
)
)
)
sem_Stat_AWhile
:: T_MExpr
-> T_Block
-> T_Stat
sem_Stat_AWhile cond_ body_ =
( case (body_) of
(_bodyIcopy, body_1) ->
( case (cond_) of
(_condIcopy, _condImtokenPos, cond_1) ->
( case ( ( AWhile _condIcopy _bodyIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Stat_AWhile_1 :: T_Stat_1
sem_Stat_AWhile_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIisMeta
)
) of
_bodyOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_condOisInModule ->
( case ( ( _lhsIvariableStyle
)
) of
_condOvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_condOscopes ->
( case ( ( _lhsIscopeLevel
)
) of
_condOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_condOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_condOloopLevel ->
( case ( ( _lhsIisMeta
)
) of
_condOisMeta ->
( case ( ( _lhsIglobalDefinitions
)
) of
_condOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_condOfuncName ->
( case ( ( _lhsIconfig
)
) of
_condOconfig ->
( case ( ( Nothing
)
) of
_condOvarBeingDefined ->
( case ( ( True
)
) of
_condOtopLevel ->
( case ( ( False
)
) of
_condOinParentheses ->
( case ( ( False
)
) of
_condOisNegation ->
( case (cond_1 _condOconfig _condOfuncName _condOglobalDefinitions _condOinParentheses _condOisInModule _condOisMeta _condOisNegation _condOloopLevel _condOmtokenPos _condOscopeLevel _condOscopes _condOtopLevel _condOvarBeingDefined _condOvariableStyle) of
(_condIglobalDefinitions, _condIidentifier, _condIisInModule, _condIisSimpleExpression, _condIisSingleVar, _condIscopes, _condIvariableStyle, _condIwarnings) ->
( case ( ( _condIisInModule
)
) of
_bodyOisInModule ->
( case ( ( _condIglobalDefinitions
)
) of
_bodyOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_bodyOconfig ->
( case ( ( M.empty : _condIscopes
)
) of
_bodyOscopes ->
( case ( ( _condIvariableStyle
)
) of
_bodyOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_bodyOscopeLevel ->
( case ( ( _condImtokenPos
)
) of
_bodyOmtokenPos ->
( case ( ( _lhsIfuncName
)
) of
_bodyOfuncName ->
( case ( ( False
)
) of
_bodyOisRepeat ->
( case ( ( _lhsIloopLevel + 1
)
) of
_bodyOloopLevel ->
( case (body_1 _bodyOconfig _bodyOfuncName _bodyOglobalDefinitions _bodyOisInModule _bodyOisMeta _bodyOisRepeat _bodyOloopLevel _bodyOmtokenPos _bodyOscopeLevel _bodyOscopes _bodyOvariableStyle) of
(_bodyIglobalDefinitions, _bodyIidentifier, _bodyIisIfStatement, _bodyIisInModule, _bodyImtokenPos, _bodyIscopes, _bodyIstatementCount, _bodyIvariableStyle, _bodyIwarnings) ->
( case ( ( _bodyIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _condIidentifier _bodyIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( False
)
) of
_lhsOisIfStatement ->
( case ( ( _bodyIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _bodyImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _bodyIscopes
)
) of
_lhsOscopes ->
( case ( ( _bodyIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _condIwarnings ++ _bodyIwarnings
)
) of
_warnings_augmented_syn ->
( case ( ( if not (lint_emptyBlocks _lhsIconfig) || _bodyIstatementCount > 0
then id
else (:) $ warn _lhsImtokenPos EmptyWhileLoop
)
) of
_warnings_augmented_f1 ->
( case ( ( foldr ($) _warnings_augmented_syn [_warnings_augmented_f1]
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisIfStatement, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Stat_AWhile_1
)
) of
(sem_Stat_1) ->
(_lhsOcopy, sem_Stat_1)
)
)
)
)
)
sem_Stat_ARepeat
:: T_Block
-> T_MExpr
-> T_Stat
sem_Stat_ARepeat body_ cond_ =
( case (cond_) of
(_condIcopy, _condImtokenPos, cond_1) ->
( case (body_) of
(_bodyIcopy, body_1) ->
( case ( ( ARepeat _bodyIcopy _condIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Stat_ARepeat_1 :: T_Stat_1
sem_Stat_ARepeat_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIisMeta
)
) of
_bodyOisMeta ->
( case ( ( _lhsIconfig
)
) of
_bodyOconfig ->
( case ( ( M.empty : _lhsIscopes
)
) of
_bodyOscopes ->
( case ( ( True
)
) of
_bodyOisRepeat ->
( case ( ( _lhsIvariableStyle
)
) of
_bodyOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_bodyOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_bodyOmtokenPos ->
( case ( ( _lhsIisInModule
)
) of
_bodyOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_bodyOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_bodyOfuncName ->
( case ( ( _lhsIloopLevel + 1
)
) of
_bodyOloopLevel ->
( case (body_1 _bodyOconfig _bodyOfuncName _bodyOglobalDefinitions _bodyOisInModule _bodyOisMeta _bodyOisRepeat _bodyOloopLevel _bodyOmtokenPos _bodyOscopeLevel _bodyOscopes _bodyOvariableStyle) of
(_bodyIglobalDefinitions, _bodyIidentifier, _bodyIisIfStatement, _bodyIisInModule, _bodyImtokenPos, _bodyIscopes, _bodyIstatementCount, _bodyIvariableStyle, _bodyIwarnings) ->
( case ( ( _bodyIscopes
)
) of
_condOscopes ->
( case ( ( _lhsIisMeta
)
) of
_condOisMeta ->
( case ( ( _bodyIisInModule
)
) of
_condOisInModule ->
( case ( ( _bodyIglobalDefinitions
)
) of
_condOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_condOconfig ->
( case ( ( Nothing
)
) of
_condOvarBeingDefined ->
( case ( ( _bodyIvariableStyle
)
) of
_condOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_condOscopeLevel ->
( case ( ( _bodyImtokenPos
)
) of
_condOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_condOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_condOfuncName ->
( case ( ( True
)
) of
_condOtopLevel ->
( case ( ( False
)
) of
_condOinParentheses ->
( case ( ( False
)
) of
_condOisNegation ->
( case (cond_1 _condOconfig _condOfuncName _condOglobalDefinitions _condOinParentheses _condOisInModule _condOisMeta _condOisNegation _condOloopLevel _condOmtokenPos _condOscopeLevel _condOscopes _condOtopLevel _condOvarBeingDefined _condOvariableStyle) of
(_condIglobalDefinitions, _condIidentifier, _condIisInModule, _condIisSimpleExpression, _condIisSingleVar, _condIscopes, _condIvariableStyle, _condIwarnings) ->
( case ( ( _condIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _bodyIidentifier _condIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( False
)
) of
_lhsOisIfStatement ->
( case ( ( _condIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _condImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( tail _condIscopes
)
) of
_lhsOscopes ->
( case ( ( _condIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _bodyIwarnings ++ _condIwarnings
)
) of
_warnings_augmented_syn ->
( case ( ( if not (lint_emptyBlocks _lhsIconfig) || _bodyIstatementCount > 0
then id
else (:) $ warn _lhsImtokenPos EmptyRepeat
)
) of
_warnings_augmented_f1 ->
( case ( ( foldr ($) _warnings_augmented_syn [_warnings_augmented_f1]
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisIfStatement, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Stat_ARepeat_1
)
) of
(sem_Stat_1) ->
(_lhsOcopy, sem_Stat_1)
)
)
)
)
)
sem_Stat_AIf
:: T_MExpr
-> T_Block
-> T_ElseIfList
-> T_Else
-> T_Stat
sem_Stat_AIf cond_ body_ elifs_ els_ =
( case (els_) of
(_elsIcopy, els_1) ->
( case (elifs_) of
(_elifsIcopy, elifs_1) ->
( case (body_) of
(_bodyIcopy, body_1) ->
( case (cond_) of
(_condIcopy, _condImtokenPos, cond_1) ->
( case ( ( AIf _condIcopy _bodyIcopy _elifsIcopy _elsIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Stat_AIf_1 :: T_Stat_1
sem_Stat_AIf_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIisMeta
)
) of
_bodyOisMeta ->
( case ( ( _lhsIconfig
)
) of
_bodyOconfig ->
( case ( ( _lhsIscopes
)
) of
_condOscopes ->
( case ( ( _lhsIisMeta
)
) of
_condOisMeta ->
( case ( ( _lhsIconfig
)
) of
_condOconfig ->
( case ( ( False
)
) of
_bodyOisRepeat ->
( case ( ( Nothing
)
) of
_condOvarBeingDefined ->
( case ( ( _lhsIvariableStyle
)
) of
_condOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_condOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_condOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_condOloopLevel ->
( case ( ( _lhsIisInModule
)
) of
_condOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_condOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_condOfuncName ->
( case ( ( True
)
) of
_condOtopLevel ->
( case ( ( False
)
) of
_condOinParentheses ->
( case ( ( False
)
) of
_condOisNegation ->
( case (cond_1 _condOconfig _condOfuncName _condOglobalDefinitions _condOinParentheses _condOisInModule _condOisMeta _condOisNegation _condOloopLevel _condOmtokenPos _condOscopeLevel _condOscopes _condOtopLevel _condOvarBeingDefined _condOvariableStyle) of
(_condIglobalDefinitions, _condIidentifier, _condIisInModule, _condIisSimpleExpression, _condIisSingleVar, _condIscopes, _condIvariableStyle, _condIwarnings) ->
( case ( ( M.empty : _condIscopes
)
) of
_bodyOscopes ->
( case ( ( _condIvariableStyle
)
) of
_bodyOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_bodyOscopeLevel ->
( case ( ( _condImtokenPos
)
) of
_bodyOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_bodyOloopLevel ->
( case ( ( _condIisInModule
)
) of
_bodyOisInModule ->
( case ( ( _condIglobalDefinitions
)
) of
_bodyOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_bodyOfuncName ->
( case (body_1 _bodyOconfig _bodyOfuncName _bodyOglobalDefinitions _bodyOisInModule _bodyOisMeta _bodyOisRepeat _bodyOloopLevel _bodyOmtokenPos _bodyOscopeLevel _bodyOscopes _bodyOvariableStyle) of
(_bodyIglobalDefinitions, _bodyIidentifier, _bodyIisIfStatement, _bodyIisInModule, _bodyImtokenPos, _bodyIscopes, _bodyIstatementCount, _bodyIvariableStyle, _bodyIwarnings) ->
( case ( ( _bodyIscopes
)
) of
_elifsOscopes ->
( case ( ( _lhsIisMeta
)
) of
_elifsOisMeta ->
( case ( ( _lhsIconfig
)
) of
_elifsOconfig ->
( case ( ( _bodyIvariableStyle
)
) of
_elifsOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_elifsOscopeLevel ->
( case ( ( _lhsIloopLevel
)
) of
_elifsOloopLevel ->
( case ( ( _bodyIisInModule
)
) of
_elifsOisInModule ->
( case ( ( _bodyIglobalDefinitions
)
) of
_elifsOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_elifsOfuncName ->
( case ( ( _lhsImtokenPos
)
) of
_elifsOmtokenPos ->
( case (elifs_1 _elifsOconfig _elifsOfuncName _elifsOglobalDefinitions _elifsOisInModule _elifsOisMeta _elifsOloopLevel _elifsOmtokenPos _elifsOscopeLevel _elifsOscopes _elifsOvariableStyle) of
(_elifsIelseExists, _elifsIglobalDefinitions, _elifsIidentifier, _elifsIisInModule, _elifsImtokenPos, _elifsIscopes, _elifsIvariableStyle, _elifsIwarnings) ->
( case ( ( _elifsIscopes
)
) of
_elsOscopes ->
( case ( ( _lhsIisMeta
)
) of
_elsOisMeta ->
( case ( ( _elifsIisInModule
)
) of
_elsOisInModule ->
( case ( ( _elifsIglobalDefinitions
)
) of
_elsOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_elsOconfig ->
( case ( ( _elifsIvariableStyle
)
) of
_elsOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_elsOscopeLevel ->
( case ( ( _lhsIloopLevel
)
) of
_elsOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_elsOfuncName ->
( case ( ( _lhsImtokenPos
)
) of
_elsOmtokenPos ->
( case (els_1 _elsOconfig _elsOfuncName _elsOglobalDefinitions _elsOisInModule _elsOisMeta _elsOloopLevel _elsOmtokenPos _elsOscopeLevel _elsOscopes _elsOvariableStyle) of
(_elsIelseExists, _elsIglobalDefinitions, _elsIidentifier, _elsIisInModule, _elsImtokenPos, _elsIscopes, _elsIvariableStyle, _elsIwarnings) ->
( case ( ( _elsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _condIidentifier (const _bodyIidentifier (const _elifsIidentifier _elsIidentifier)))
)
) of
_lhsOidentifier ->
( case ( ( not _elifsIelseExists && not _elsIelseExists
)
) of
_lhsOisIfStatement ->
( case ( ( _elsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _elsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _elsIscopes
)
) of
_lhsOscopes ->
( case ( ( _elsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _condIwarnings ++ _bodyIwarnings ++ _elifsIwarnings ++ _elsIwarnings
)
) of
_warnings_augmented_syn ->
( case ( ( Region (rgStart _lhsImtokenPos) (customAdvanceToken (rgStart _lhsImtokenPos) If)
)
) of
_keywordPos ->
( case ( ( if not (lint_emptyBlocks _lhsIconfig) || _bodyIstatementCount > 0
then id
else (:) $ warn _keywordPos EmptyIf
)
) of
_warnings_augmented_f2 ->
( case ( ( if not (lint_redundantIfStatements _lhsIconfig) || _bodyIstatementCount /= 1 || not _bodyIisIfStatement || _elifsIelseExists || _elsIelseExists
then id
else (:) $ warn _bodyImtokenPos DoubleIf
)
) of
_warnings_augmented_f1 ->
( case ( ( foldr ($) _warnings_augmented_syn [_warnings_augmented_f1, _warnings_augmented_f2]
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisIfStatement, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Stat_AIf_1
)
) of
(sem_Stat_1) ->
(_lhsOcopy, sem_Stat_1)
)
)
)
)
)
)
)
sem_Stat_ANFor
:: T_MToken
-> T_MExpr
-> T_MExpr
-> T_MExpr
-> T_Block
-> T_Stat
sem_Stat_ANFor var_ val_ to_ step_ body_ =
( case (body_) of
(_bodyIcopy, body_1) ->
( case (step_) of
(_stepIcopy, _stepImtokenPos, step_1) ->
( case (to_) of
(_toIcopy, _toImtokenPos, to_1) ->
( case (val_) of
(_valIcopy, _valImtokenPos, val_1) ->
( case (var_) of
(_varIcopy, _varImtok, _varImtokenPos, var_1) ->
( case ( ( ANFor _varIcopy _valIcopy _toIcopy _stepIcopy _bodyIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Stat_ANFor_1 :: T_Stat_1
sem_Stat_ANFor_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIisMeta
)
) of
_bodyOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_varOisInModule ->
( case ( ( _lhsIscopes
)
) of
_varOscopes ->
( case ( ( _lhsImtokenPos
)
) of
_varOmtokenPos ->
( case ( ( _lhsIisMeta
)
) of
_varOisMeta ->
( case ( ( _lhsIglobalDefinitions
)
) of
_varOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_varOfuncName ->
( case ( ( _lhsIconfig
)
) of
_varOconfig ->
( case (var_1 _varOconfig _varOfuncName _varOglobalDefinitions _varOisInModule _varOisMeta _varOmtokenPos _varOscopes) of
(_varIglobalDefinitions, _varIidentifier, _varIisInModule, _varIscopes, _varIwarnings) ->
( case ( ( _varIisInModule
)
) of
_valOisInModule ->
( case ( ( _lhsIvariableStyle
)
) of
_valOvariableStyle ->
( case ( ( _varIscopes
)
) of
_valOscopes ->
( case ( ( _lhsIscopeLevel
)
) of
_valOscopeLevel ->
( case ( ( _varImtokenPos
)
) of
_valOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_valOloopLevel ->
( case ( ( _lhsIisMeta
)
) of
_valOisMeta ->
( case ( ( _varIglobalDefinitions
)
) of
_valOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_valOfuncName ->
( case ( ( _lhsIconfig
)
) of
_valOconfig ->
( case ( ( Nothing
)
) of
_valOvarBeingDefined ->
( case ( ( True
)
) of
_valOtopLevel ->
( case ( ( False
)
) of
_valOinParentheses ->
( case ( ( False
)
) of
_valOisNegation ->
( case (val_1 _valOconfig _valOfuncName _valOglobalDefinitions _valOinParentheses _valOisInModule _valOisMeta _valOisNegation _valOloopLevel _valOmtokenPos _valOscopeLevel _valOscopes _valOtopLevel _valOvarBeingDefined _valOvariableStyle) of
(_valIglobalDefinitions, _valIidentifier, _valIisInModule, _valIisSimpleExpression, _valIisSingleVar, _valIscopes, _valIvariableStyle, _valIwarnings) ->
( case ( ( _valIisInModule
)
) of
_toOisInModule ->
( case ( ( _valIvariableStyle
)
) of
_toOvariableStyle ->
( case ( ( _valIscopes
)
) of
_toOscopes ->
( case ( ( _lhsIscopeLevel
)
) of
_toOscopeLevel ->
( case ( ( _valImtokenPos
)
) of
_toOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_toOloopLevel ->
( case ( ( _lhsIisMeta
)
) of
_toOisMeta ->
( case ( ( _valIglobalDefinitions
)
) of
_toOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_toOfuncName ->
( case ( ( _lhsIconfig
)
) of
_toOconfig ->
( case ( ( Nothing
)
) of
_toOvarBeingDefined ->
( case ( ( True
)
) of
_toOtopLevel ->
( case ( ( False
)
) of
_toOinParentheses ->
( case ( ( False
)
) of
_toOisNegation ->
( case (to_1 _toOconfig _toOfuncName _toOglobalDefinitions _toOinParentheses _toOisInModule _toOisMeta _toOisNegation _toOloopLevel _toOmtokenPos _toOscopeLevel _toOscopes _toOtopLevel _toOvarBeingDefined _toOvariableStyle) of
(_toIglobalDefinitions, _toIidentifier, _toIisInModule, _toIisSimpleExpression, _toIisSingleVar, _toIscopes, _toIvariableStyle, _toIwarnings) ->
( case ( ( _toIisInModule
)
) of
_stepOisInModule ->
( case ( ( _toIvariableStyle
)
) of
_stepOvariableStyle ->
( case ( ( _toIscopes
)
) of
_stepOscopes ->
( case ( ( _lhsIscopeLevel
)
) of
_stepOscopeLevel ->
( case ( ( _toImtokenPos
)
) of
_stepOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_stepOloopLevel ->
( case ( ( _lhsIisMeta
)
) of
_stepOisMeta ->
( case ( ( _toIglobalDefinitions
)
) of
_stepOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_stepOfuncName ->
( case ( ( _lhsIconfig
)
) of
_stepOconfig ->
( case ( ( Nothing
)
) of
_stepOvarBeingDefined ->
( case ( ( True
)
) of
_stepOtopLevel ->
( case ( ( False
)
) of
_stepOinParentheses ->
( case ( ( False
)
) of
_stepOisNegation ->
( case (step_1 _stepOconfig _stepOfuncName _stepOglobalDefinitions _stepOinParentheses _stepOisInModule _stepOisMeta _stepOisNegation _stepOloopLevel _stepOmtokenPos _stepOscopeLevel _stepOscopes _stepOtopLevel _stepOvarBeingDefined _stepOvariableStyle) of
(_stepIglobalDefinitions, _stepIidentifier, _stepIisInModule, _stepIisSimpleExpression, _stepIisSingleVar, _stepIscopes, _stepIvariableStyle, _stepIwarnings) ->
( case ( ( _stepIisInModule
)
) of
_bodyOisInModule ->
( case ( ( _stepIglobalDefinitions
)
) of
_bodyOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_bodyOconfig ->
( case ( ( M.singleton _varIidentifier (not (lint_unusedLoopVars _lhsIconfig), _varImtokenPos) : _stepIscopes
)
) of
_bodyOscopes ->
( case ( ( _stepIvariableStyle
)
) of
_bodyOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_bodyOscopeLevel ->
( case ( ( _stepImtokenPos
)
) of
_bodyOmtokenPos ->
( case ( ( _lhsIfuncName
)
) of
_bodyOfuncName ->
( case ( ( False
)
) of
_bodyOisRepeat ->
( case ( ( _lhsIloopLevel + 1
)
) of
_bodyOloopLevel ->
( case (body_1 _bodyOconfig _bodyOfuncName _bodyOglobalDefinitions _bodyOisInModule _bodyOisMeta _bodyOisRepeat _bodyOloopLevel _bodyOmtokenPos _bodyOscopeLevel _bodyOscopes _bodyOvariableStyle) of
(_bodyIglobalDefinitions, _bodyIidentifier, _bodyIisIfStatement, _bodyIisInModule, _bodyImtokenPos, _bodyIscopes, _bodyIstatementCount, _bodyIvariableStyle, _bodyIwarnings) ->
( case ( ( _bodyIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _varIidentifier (const _valIidentifier (const _toIidentifier (const _stepIidentifier _bodyIidentifier))))
)
) of
_lhsOidentifier ->
( case ( ( False
)
) of
_lhsOisIfStatement ->
( case ( ( _bodyIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _bodyImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _bodyIscopes
)
) of
_lhsOscopes ->
( case ( ( _bodyIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _varIwarnings ++ _valIwarnings ++ _toIwarnings ++ _stepIwarnings ++ _bodyIwarnings
)
) of
_warnings_augmented_syn ->
( case ( ( checkShadows _lhsIscopes _varIcopy
)
) of
_shadowWarning ->
( case ( ( if not (lint_shadowing _lhsIconfig) || isNothing _shadowWarning
then id
else (:) . fromMaybe (error "fromMaybe ANFor +warnings") $ _shadowWarning
)
) of
_warnings_augmented_f2 ->
( case ( ( if not (lint_emptyBlocks _lhsIconfig) || _bodyIstatementCount > 0
then id
else (:) $ warn _lhsImtokenPos EmptyFor
)
) of
_warnings_augmented_f1 ->
( case ( ( foldr ($) _warnings_augmented_syn [_warnings_augmented_f1, _warnings_augmented_f2]
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisIfStatement, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Stat_ANFor_1
)
) of
(sem_Stat_1) ->
(_lhsOcopy, sem_Stat_1)
)
)
)
)
)
)
)
)
sem_Stat_AGFor
:: ([MToken])
-> T_MExprList
-> T_Block
-> T_Stat
sem_Stat_AGFor vars_ vals_ body_ =
( case (body_) of
(_bodyIcopy, body_1) ->
( case (vals_) of
(_valsIcopy, vals_1) ->
( case ( ( AGFor vars_ _valsIcopy _bodyIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Stat_AGFor_1 :: T_Stat_1
sem_Stat_AGFor_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIisMeta
)
) of
_bodyOisMeta ->
( case ( ( _lhsIisInModule
)
) of
_valsOisInModule ->
( case ( ( _lhsIvariableStyle
)
) of
_valsOvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_valsOscopes ->
( case ( ( _lhsIscopeLevel
)
) of
_valsOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_valsOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_valsOloopLevel ->
( case ( ( _lhsIisMeta
)
) of
_valsOisMeta ->
( case ( ( _lhsIglobalDefinitions
)
) of
_valsOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_valsOfuncName ->
( case ( ( _lhsIconfig
)
) of
_valsOconfig ->
( case ( ( True
)
) of
_valsOtopLevel ->
( case ( ( True
)
) of
_valsOinParentheses ->
( case (vals_1 _valsOconfig _valsOfuncName _valsOglobalDefinitions _valsOinParentheses _valsOisInModule _valsOisMeta _valsOloopLevel _valsOmtokenPos _valsOscopeLevel _valsOscopes _valsOtopLevel _valsOvariableStyle) of
(_valsIglobalDefinitions, _valsIidentifier, _valsIisInModule, _valsImtokenPos, _valsIscopes, _valsIvariableStyle, _valsIwarnings) ->
( case ( ( _valsIisInModule
)
) of
_bodyOisInModule ->
( case ( ( _valsIglobalDefinitions
)
) of
_bodyOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_bodyOconfig ->
( case ( ( M.fromList $ map (\mt -> (tokenLabel mt, (not (lint_unusedLoopVars _lhsIconfig), mpos mt))) vars_
)
) of
_introduces ->
( case ( ( _introduces : _valsIscopes
)
) of
_bodyOscopes ->
( case ( ( _valsIvariableStyle
)
) of
_bodyOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_bodyOscopeLevel ->
( case ( ( _valsImtokenPos
)
) of
_bodyOmtokenPos ->
( case ( ( _lhsIfuncName
)
) of
_bodyOfuncName ->
( case ( ( False
)
) of
_bodyOisRepeat ->
( case ( ( _lhsIloopLevel + 1
)
) of
_bodyOloopLevel ->
( case (body_1 _bodyOconfig _bodyOfuncName _bodyOglobalDefinitions _bodyOisInModule _bodyOisMeta _bodyOisRepeat _bodyOloopLevel _bodyOmtokenPos _bodyOscopeLevel _bodyOscopes _bodyOvariableStyle) of
(_bodyIglobalDefinitions, _bodyIidentifier, _bodyIisIfStatement, _bodyIisInModule, _bodyImtokenPos, _bodyIscopes, _bodyIstatementCount, _bodyIvariableStyle, _bodyIwarnings) ->
( case ( ( _bodyIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _valsIidentifier _bodyIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( False
)
) of
_lhsOisIfStatement ->
( case ( ( _bodyIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _bodyImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _bodyIscopes
)
) of
_lhsOscopes ->
( case ( ( _bodyIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _valsIwarnings ++ _bodyIwarnings
)
) of
_warnings_augmented_syn ->
( case ( ( if not (lint_shadowing _lhsIconfig)
then id
else (++) . catMaybes . map (checkShadows _lhsIscopes) $ vars_
)
) of
_warnings_augmented_f2 ->
( case ( ( if not (lint_emptyBlocks _lhsIconfig) || _bodyIstatementCount > 0
then id
else (:) $ warn _lhsImtokenPos EmptyFor
)
) of
_warnings_augmented_f1 ->
( case ( ( foldr ($) _warnings_augmented_syn [_warnings_augmented_f1, _warnings_augmented_f2]
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisIfStatement, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Stat_AGFor_1
)
) of
(sem_Stat_1) ->
(_lhsOcopy, sem_Stat_1)
)
)
)
)
)
sem_Stat_AFunc
:: T_FuncName
-> ([MToken])
-> T_Block
-> T_Stat
sem_Stat_AFunc name_ args_ body_ =
( case (body_) of
(_bodyIcopy, body_1) ->
( case (name_) of
(_nameIcopy, _nameIisMeta, name_1) ->
( case ( ( AFunc _nameIcopy args_ _bodyIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Stat_AFunc_1 :: T_Stat_1
sem_Stat_AFunc_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIisInModule
)
) of
_nameOisInModule ->
( case ( ( _lhsIvariableStyle
)
) of
_nameOvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_nameOscopes ->
( case ( ( _lhsIscopeLevel
)
) of
_nameOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_nameOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_nameOloopLevel ->
( case ( ( _nameIisMeta || findSelf args_ || _lhsIisMeta
)
) of
_isMeta ->
( case ( ( _isMeta
)
) of
_nameOisMeta ->
( case ( ( _lhsIglobalDefinitions
)
) of
_nameOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_nameOfuncName ->
( case ( ( _lhsIconfig
)
) of
_nameOconfig ->
( case (name_1 _nameOconfig _nameOfuncName _nameOglobalDefinitions _nameOisInModule _nameOisMeta _nameOloopLevel _nameOmtokenPos _nameOscopeLevel _nameOscopes _nameOvariableStyle) of
(_nameIglobalDefinitions, _nameIhasSuffixes, _nameIidentifier, _nameIisInModule, _nameImtokenPos, _nameIscopes, _nameIvariableStyle, _nameIwarnings) ->
( case ( ( _nameIisInModule
)
) of
_bodyOisInModule ->
( case ( ( _nameIglobalDefinitions
)
) of
_bodyOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_bodyOconfig ->
( case ( ( _isMeta
)
) of
_bodyOisMeta ->
( case ( ( filter (/= MToken emptyRg VarArg) $ args_
)
) of
_argIdentifiers ->
( case ( ( (if _isMeta then M.insert "self" (True, _nameImtokenPos) else id) $
M.fromList . map (\mt -> (tokenLabel mt, (not . lint_unusedParameters $ _lhsIconfig, mpos mt))) $
_argIdentifiers
)
) of
_introduces ->
( case ( ( _introduces : (registerVariable _nameIscopes _nameImtokenPos _nameIidentifier True)
)
) of
_bodyOscopes ->
( case ( ( _nameIvariableStyle
)
) of
_bodyOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_bodyOscopeLevel ->
( case ( ( _nameImtokenPos
)
) of
_bodyOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_bodyOloopLevel ->
( case ( ( _nameIidentifier
)
) of
_bodyOfuncName ->
( case ( ( False
)
) of
_bodyOisRepeat ->
( case (body_1 _bodyOconfig _bodyOfuncName _bodyOglobalDefinitions _bodyOisInModule _bodyOisMeta _bodyOisRepeat _bodyOloopLevel _bodyOmtokenPos _bodyOscopeLevel _bodyOscopes _bodyOvariableStyle) of
(_bodyIglobalDefinitions, _bodyIidentifier, _bodyIisIfStatement, _bodyIisInModule, _bodyImtokenPos, _bodyIscopes, _bodyIstatementCount, _bodyIvariableStyle, _bodyIwarnings) ->
( case ( ( _bodyIglobalDefinitions
)
) of
_globalDefinitions_augmented_syn ->
( case ( ( if _lhsIisInModule || isVariableLocal _lhsIscopes _nameIidentifier || _nameIisMeta || _nameIhasSuffixes
then id
else M.insertWith (++) _nameIidentifier [_nameImtokenPos]
)
) of
_globalDefinitions_augmented_f1 ->
( case ( ( foldr ($) _globalDefinitions_augmented_syn [_globalDefinitions_augmented_f1]
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _nameIidentifier _bodyIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( False
)
) of
_lhsOisIfStatement ->
( case ( ( _bodyIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _bodyImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _bodyIscopes
)
) of
_lhsOscopes ->
( case ( ( _bodyIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _nameIwarnings ++ _bodyIwarnings
)
) of
_warnings_augmented_syn ->
( case ( ( if not (lint_shadowing _lhsIconfig)
then id
else (++) . catMaybes . map (checkShadows _lhsIscopes) $ _argIdentifiers
)
) of
_warnings_augmented_f1 ->
( case ( ( foldr ($) _warnings_augmented_syn [_warnings_augmented_f1]
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisIfStatement, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Stat_AFunc_1
)
) of
(sem_Stat_1) ->
(_lhsOcopy, sem_Stat_1)
)
)
)
)
)
sem_Stat_ALocFunc
:: T_FuncName
-> ([MToken])
-> T_Block
-> T_Stat
sem_Stat_ALocFunc name_ args_ body_ =
( case (body_) of
(_bodyIcopy, body_1) ->
( case (name_) of
(_nameIcopy, _nameIisMeta, name_1) ->
( case ( ( ALocFunc _nameIcopy args_ _bodyIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_Stat_ALocFunc_1 :: T_Stat_1
sem_Stat_ALocFunc_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIisInModule
)
) of
_nameOisInModule ->
( case ( ( _lhsIvariableStyle
)
) of
_nameOvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_nameOscopes ->
( case ( ( _lhsIscopeLevel
)
) of
_nameOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_nameOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_nameOloopLevel ->
( case ( ( findSelf args_ || _lhsIisMeta
)
) of
_isMeta ->
( case ( ( _isMeta
)
) of
_nameOisMeta ->
( case ( ( _lhsIglobalDefinitions
)
) of
_nameOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_nameOfuncName ->
( case ( ( _lhsIconfig
)
) of
_nameOconfig ->
( case (name_1 _nameOconfig _nameOfuncName _nameOglobalDefinitions _nameOisInModule _nameOisMeta _nameOloopLevel _nameOmtokenPos _nameOscopeLevel _nameOscopes _nameOvariableStyle) of
(_nameIglobalDefinitions, _nameIhasSuffixes, _nameIidentifier, _nameIisInModule, _nameImtokenPos, _nameIscopes, _nameIvariableStyle, _nameIwarnings) ->
( case ( ( _nameIisInModule
)
) of
_bodyOisInModule ->
( case ( ( _nameIglobalDefinitions
)
) of
_bodyOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_bodyOconfig ->
( case ( ( _isMeta
)
) of
_bodyOisMeta ->
( case ( ( M.insert _nameIidentifier (False, _nameImtokenPos) (head _nameIscopes) : tail _nameIscopes
)
) of
_passedScopes ->
( case ( ( filter (/= MToken emptyRg VarArg) $ args_
)
) of
_argIdentifiers ->
( case ( ( (if _isMeta then M.insert "self" (True, _nameImtokenPos) else id) $
M.fromList . map (\mt -> (tokenLabel mt, (not . lint_unusedParameters $ _lhsIconfig, mpos mt))) $
_argIdentifiers
)
) of
_introduces ->
( case ( ( _introduces : _passedScopes
)
) of
_bodyOscopes ->
( case ( ( _nameIvariableStyle
)
) of
_bodyOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_bodyOscopeLevel ->
( case ( ( _nameImtokenPos
)
) of
_bodyOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_bodyOloopLevel ->
( case ( ( _nameIidentifier
)
) of
_bodyOfuncName ->
( case ( ( False
)
) of
_bodyOisRepeat ->
( case (body_1 _bodyOconfig _bodyOfuncName _bodyOglobalDefinitions _bodyOisInModule _bodyOisMeta _bodyOisRepeat _bodyOloopLevel _bodyOmtokenPos _bodyOscopeLevel _bodyOscopes _bodyOvariableStyle) of
(_bodyIglobalDefinitions, _bodyIidentifier, _bodyIisIfStatement, _bodyIisInModule, _bodyImtokenPos, _bodyIscopes, _bodyIstatementCount, _bodyIvariableStyle, _bodyIwarnings) ->
( case ( ( _bodyIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _nameIidentifier _bodyIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( False
)
) of
_lhsOisIfStatement ->
( case ( ( _bodyIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _bodyImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _bodyIscopes
)
) of
_lhsOscopes ->
( case ( ( _bodyIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _nameIwarnings ++ _bodyIwarnings
)
) of
_warnings_augmented_syn ->
( case ( ( MToken _nameImtokenPos (Identifier _nameIidentifier)
)
) of
_funcname ->
( case ( ( checkShadows _lhsIscopes _funcname
)
) of
_funcNameShadows ->
( case ( ( if not (lint_shadowing _lhsIconfig)
then id
else (++) . catMaybes . map (checkShadows _lhsIscopes) $ _argIdentifiers
)
) of
_warnings_augmented_f2 ->
( case ( ( if not (lint_shadowing _lhsIconfig) || isNothing _funcNameShadows
then id
else (:) . fromMaybe (error "fromMaybe ALocFunc +warnings") $ _funcNameShadows
)
) of
_warnings_augmented_f1 ->
( case ( ( foldr ($) _warnings_augmented_syn [_warnings_augmented_f1, _warnings_augmented_f2]
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisIfStatement, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_Stat_ALocFunc_1
)
) of
(sem_Stat_1) ->
(_lhsOcopy, sem_Stat_1)
)
)
)
)
)
-- Token -------------------------------------------------------
-- cata
sem_Token
:: Token
-> T_Token
sem_Token (Whitespace _space) =
(sem_Token_Whitespace _space)
sem_Token (DashComment _comment) =
(sem_Token_DashComment _comment)
sem_Token (DashBlockComment _depth _comment) =
(sem_Token_DashBlockComment _depth _comment)
sem_Token (SlashComment _comment) =
(sem_Token_SlashComment _comment)
sem_Token (SlashBlockComment _comment) =
(sem_Token_SlashBlockComment _comment)
sem_Token (Semicolon) =
(sem_Token_Semicolon)
sem_Token (TNumber _num) =
(sem_Token_TNumber _num)
sem_Token (DQString _str) =
(sem_Token_DQString _str)
sem_Token (SQString _str) =
(sem_Token_SQString _str)
sem_Token (MLString _str) =
(sem_Token_MLString _str)
sem_Token (TTrue) =
(sem_Token_TTrue)
sem_Token (TFalse) =
(sem_Token_TFalse)
sem_Token (Nil) =
(sem_Token_Nil)
sem_Token (VarArg) =
(sem_Token_VarArg)
sem_Token (Plus) =
(sem_Token_Plus)
sem_Token (Minus) =
(sem_Token_Minus)
sem_Token (Multiply) =
(sem_Token_Multiply)
sem_Token (Divide) =
(sem_Token_Divide)
sem_Token (Modulus) =
(sem_Token_Modulus)
sem_Token (Power) =
(sem_Token_Power)
sem_Token (TEq) =
(sem_Token_TEq)
sem_Token (TNEq) =
(sem_Token_TNEq)
sem_Token (TCNEq) =
(sem_Token_TCNEq)
sem_Token (TLEQ) =
(sem_Token_TLEQ)
sem_Token (TGEQ) =
(sem_Token_TGEQ)
sem_Token (TLT) =
(sem_Token_TLT)
sem_Token (TGT) =
(sem_Token_TGT)
sem_Token (Equals) =
(sem_Token_Equals)
sem_Token (Concatenate) =
(sem_Token_Concatenate)
sem_Token (Colon) =
(sem_Token_Colon)
sem_Token (Dot) =
(sem_Token_Dot)
sem_Token (Comma) =
(sem_Token_Comma)
sem_Token (Hash) =
(sem_Token_Hash)
sem_Token (Not) =
(sem_Token_Not)
sem_Token (CNot) =
(sem_Token_CNot)
sem_Token (And) =
(sem_Token_And)
sem_Token (CAnd) =
(sem_Token_CAnd)
sem_Token (Or) =
(sem_Token_Or)
sem_Token (COr) =
(sem_Token_COr)
sem_Token (Function) =
(sem_Token_Function)
sem_Token (Local) =
(sem_Token_Local)
sem_Token (If) =
(sem_Token_If)
sem_Token (Then) =
(sem_Token_Then)
sem_Token (Elseif) =
(sem_Token_Elseif)
sem_Token (Else) =
(sem_Token_Else)
sem_Token (For) =
(sem_Token_For)
sem_Token (In) =
(sem_Token_In)
sem_Token (Do) =
(sem_Token_Do)
sem_Token (While) =
(sem_Token_While)
sem_Token (Until) =
(sem_Token_Until)
sem_Token (Repeat) =
(sem_Token_Repeat)
sem_Token (Continue) =
(sem_Token_Continue)
sem_Token (Break) =
(sem_Token_Break)
sem_Token (Return) =
(sem_Token_Return)
sem_Token (End) =
(sem_Token_End)
sem_Token (LRound) =
(sem_Token_LRound)
sem_Token (RRound) =
(sem_Token_RRound)
sem_Token (LCurly) =
(sem_Token_LCurly)
sem_Token (RCurly) =
(sem_Token_RCurly)
sem_Token (LSquare) =
(sem_Token_LSquare)
sem_Token (RSquare) =
(sem_Token_RSquare)
sem_Token (Label _whitespaceBefore _lbl _whitespaceAfter) =
(sem_Token_Label _whitespaceBefore _lbl _whitespaceAfter)
sem_Token (Identifier _ident) =
(sem_Token_Identifier _ident)
-- semantic domain
type T_Token = (Token, String, ([String -> LintMessage]))
data Inh_Token = Inh_Token {}
data Syn_Token = Syn_Token {copy_Syn_Token :: Token, identifier_Syn_Token :: String, warnings_Syn_Token :: ([String -> LintMessage])}
wrap_Token
:: T_Token
-> Inh_Token
-> Syn_Token
wrap_Token sem (Inh_Token) =
( let
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings) = sem
in
(Syn_Token _lhsOcopy _lhsOidentifier _lhsOwarnings)
)
sem_Token_Whitespace
:: String
-> T_Token
sem_Token_Whitespace space_ =
( case ( ( Whitespace space_
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_DashComment
:: String
-> T_Token
sem_Token_DashComment comment_ =
( case ( ( DashComment comment_
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_DashBlockComment
:: Int
-> String
-> T_Token
sem_Token_DashBlockComment depth_ comment_ =
( case ( ( DashBlockComment depth_ comment_
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_SlashComment
:: String
-> T_Token
sem_Token_SlashComment comment_ =
( case ( ( SlashComment comment_
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_SlashBlockComment
:: String
-> T_Token
sem_Token_SlashBlockComment comment_ =
( case ( ( SlashBlockComment comment_
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Semicolon :: T_Token
sem_Token_Semicolon =
( case ( ( Semicolon
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_TNumber
:: String
-> T_Token
sem_Token_TNumber num_ =
( case ( ( TNumber num_
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_DQString
:: String
-> T_Token
sem_Token_DQString str_ =
( case ( ( DQString str_
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_SQString
:: String
-> T_Token
sem_Token_SQString str_ =
( case ( ( SQString str_
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_MLString
:: String
-> T_Token
sem_Token_MLString str_ =
( case ( ( MLString str_
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_TTrue :: T_Token
sem_Token_TTrue =
( case ( ( TTrue
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_TFalse :: T_Token
sem_Token_TFalse =
( case ( ( TFalse
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Nil :: T_Token
sem_Token_Nil =
( case ( ( Nil
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_VarArg :: T_Token
sem_Token_VarArg =
( case ( ( VarArg
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Plus :: T_Token
sem_Token_Plus =
( case ( ( Plus
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Minus :: T_Token
sem_Token_Minus =
( case ( ( Minus
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Multiply :: T_Token
sem_Token_Multiply =
( case ( ( Multiply
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Divide :: T_Token
sem_Token_Divide =
( case ( ( Divide
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Modulus :: T_Token
sem_Token_Modulus =
( case ( ( Modulus
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Power :: T_Token
sem_Token_Power =
( case ( ( Power
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_TEq :: T_Token
sem_Token_TEq =
( case ( ( TEq
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_TNEq :: T_Token
sem_Token_TNEq =
( case ( ( TNEq
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_TCNEq :: T_Token
sem_Token_TCNEq =
( case ( ( TCNEq
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_TLEQ :: T_Token
sem_Token_TLEQ =
( case ( ( TLEQ
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_TGEQ :: T_Token
sem_Token_TGEQ =
( case ( ( TGEQ
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_TLT :: T_Token
sem_Token_TLT =
( case ( ( TLT
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_TGT :: T_Token
sem_Token_TGT =
( case ( ( TGT
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Equals :: T_Token
sem_Token_Equals =
( case ( ( Equals
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Concatenate :: T_Token
sem_Token_Concatenate =
( case ( ( Concatenate
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Colon :: T_Token
sem_Token_Colon =
( case ( ( Colon
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Dot :: T_Token
sem_Token_Dot =
( case ( ( Dot
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Comma :: T_Token
sem_Token_Comma =
( case ( ( Comma
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Hash :: T_Token
sem_Token_Hash =
( case ( ( Hash
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Not :: T_Token
sem_Token_Not =
( case ( ( Not
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_CNot :: T_Token
sem_Token_CNot =
( case ( ( CNot
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_And :: T_Token
sem_Token_And =
( case ( ( And
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_CAnd :: T_Token
sem_Token_CAnd =
( case ( ( CAnd
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Or :: T_Token
sem_Token_Or =
( case ( ( Or
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_COr :: T_Token
sem_Token_COr =
( case ( ( COr
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Function :: T_Token
sem_Token_Function =
( case ( ( Function
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Local :: T_Token
sem_Token_Local =
( case ( ( Local
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_If :: T_Token
sem_Token_If =
( case ( ( If
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Then :: T_Token
sem_Token_Then =
( case ( ( Then
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Elseif :: T_Token
sem_Token_Elseif =
( case ( ( Elseif
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Else :: T_Token
sem_Token_Else =
( case ( ( Else
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_For :: T_Token
sem_Token_For =
( case ( ( For
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_In :: T_Token
sem_Token_In =
( case ( ( In
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Do :: T_Token
sem_Token_Do =
( case ( ( Do
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_While :: T_Token
sem_Token_While =
( case ( ( While
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Until :: T_Token
sem_Token_Until =
( case ( ( Until
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Repeat :: T_Token
sem_Token_Repeat =
( case ( ( Repeat
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Continue :: T_Token
sem_Token_Continue =
( case ( ( Continue
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Break :: T_Token
sem_Token_Break =
( case ( ( Break
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Return :: T_Token
sem_Token_Return =
( case ( ( Return
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_End :: T_Token
sem_Token_End =
( case ( ( End
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_LRound :: T_Token
sem_Token_LRound =
( case ( ( LRound
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_RRound :: T_Token
sem_Token_RRound =
( case ( ( RRound
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_LCurly :: T_Token
sem_Token_LCurly =
( case ( ( LCurly
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_RCurly :: T_Token
sem_Token_RCurly =
( case ( ( RCurly
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_LSquare :: T_Token
sem_Token_LSquare =
( case ( ( LSquare
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_RSquare :: T_Token
sem_Token_RSquare =
( case ( ( RSquare
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Label
:: String
-> String
-> String
-> T_Token
sem_Token_Label whitespaceBefore_ lbl_ whitespaceAfter_ =
( case ( ( Label whitespaceBefore_ lbl_ whitespaceAfter_
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( lbl_
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
sem_Token_Identifier
:: String
-> T_Token
sem_Token_Identifier ident_ =
( case ( ( Identifier ident_
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( ident_
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
-- TokenList ---------------------------------------------------
-- cata
sem_TokenList
:: TokenList
-> T_TokenList
sem_TokenList list =
(Prelude.foldr sem_TokenList_Cons sem_TokenList_Nil (Prelude.map sem_Token list))
-- semantic domain
type T_TokenList = (TokenList, String, ([String -> LintMessage]))
data Inh_TokenList = Inh_TokenList {}
data Syn_TokenList = Syn_TokenList {copy_Syn_TokenList :: TokenList, identifier_Syn_TokenList :: String, warnings_Syn_TokenList :: ([String -> LintMessage])}
wrap_TokenList
:: T_TokenList
-> Inh_TokenList
-> Syn_TokenList
wrap_TokenList sem (Inh_TokenList) =
( let
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings) = sem
in
(Syn_TokenList _lhsOcopy _lhsOidentifier _lhsOwarnings)
)
sem_TokenList_Cons
:: T_Token
-> T_TokenList
-> T_TokenList
sem_TokenList_Cons hd_ tl_ =
( case (tl_) of
(_tlIcopy, _tlIidentifier, _tlIwarnings) ->
( case (hd_) of
(_hdIcopy, _hdIidentifier, _hdIwarnings) ->
( case ( ( (:) _hdIcopy _tlIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( (const _hdIidentifier _tlIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( _hdIwarnings ++ _tlIwarnings
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
)
)
sem_TokenList_Nil :: T_TokenList
sem_TokenList_Nil =
( case ( ( []
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOcopy, _lhsOidentifier, _lhsOwarnings)
)
)
)
)
-- UnOp --------------------------------------------------------
-- cata
sem_UnOp
:: UnOp
-> T_UnOp
sem_UnOp (UnMinus) =
(sem_UnOp_UnMinus)
sem_UnOp (ANot) =
(sem_UnOp_ANot)
sem_UnOp (AHash) =
(sem_UnOp_AHash)
-- semantic domain
type T_UnOp = (UnOp, T_UnOp_1)
type T_UnOp_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> DeterminedVariableStyle
-> ((M.Map String [Region]), String, Bool, Bool, Region, ([M.Map String (Bool, Region)]), DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_UnOp = Inh_UnOp {config_Inh_UnOp :: LintSettings, funcName_Inh_UnOp :: String, globalDefinitions_Inh_UnOp :: (M.Map String [Region]), isInModule_Inh_UnOp :: Bool, isMeta_Inh_UnOp :: Bool, loopLevel_Inh_UnOp :: Int, mtokenPos_Inh_UnOp :: Region, scopeLevel_Inh_UnOp :: Int, scopes_Inh_UnOp :: ([M.Map String (Bool, Region)]), variableStyle_Inh_UnOp :: DeterminedVariableStyle}
data Syn_UnOp = Syn_UnOp {copy_Syn_UnOp :: UnOp, globalDefinitions_Syn_UnOp :: (M.Map String [Region]), identifier_Syn_UnOp :: String, isInModule_Syn_UnOp :: Bool, isNegation_Syn_UnOp :: Bool, mtokenPos_Syn_UnOp :: Region, scopes_Syn_UnOp :: ([M.Map String (Bool, Region)]), variableStyle_Syn_UnOp :: DeterminedVariableStyle, warnings_Syn_UnOp :: ([String -> LintMessage])}
wrap_UnOp
:: T_UnOp
-> Inh_UnOp
-> Syn_UnOp
wrap_UnOp sem (Inh_UnOp _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle) =
( let
(_lhsOcopy, sem_1) = sem
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisNegation, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle
in
(Syn_UnOp _lhsOcopy _lhsOglobalDefinitions _lhsOidentifier _lhsOisInModule _lhsOisNegation _lhsOmtokenPos _lhsOscopes _lhsOvariableStyle _lhsOwarnings)
)
sem_UnOp_UnMinus :: T_UnOp
sem_UnOp_UnMinus =
( case ( ( UnMinus
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_UnOp_UnMinus_1 :: T_UnOp_1
sem_UnOp_UnMinus_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( False
)
) of
_lhsOisNegation ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisNegation, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
in
sem_UnOp_UnMinus_1
)
) of
(sem_UnOp_1) ->
(_lhsOcopy, sem_UnOp_1)
)
)
)
sem_UnOp_ANot :: T_UnOp
sem_UnOp_ANot =
( case ( ( ANot
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_UnOp_ANot_1 :: T_UnOp_1
sem_UnOp_ANot_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( True
)
) of
_lhsOisNegation ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisNegation, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
in
sem_UnOp_ANot_1
)
) of
(sem_UnOp_1) ->
(_lhsOcopy, sem_UnOp_1)
)
)
)
sem_UnOp_AHash :: T_UnOp
sem_UnOp_AHash =
( case ( ( AHash
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_UnOp_AHash_1 :: T_UnOp_1
sem_UnOp_AHash_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( False
)
) of
_lhsOisNegation ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOisNegation, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
in
sem_UnOp_AHash_1
)
) of
(sem_UnOp_1) ->
(_lhsOcopy, sem_UnOp_1)
)
)
)
-- VarsList ----------------------------------------------------
-- cata
sem_VarsList
:: VarsList
-> T_VarsList
sem_VarsList list =
(Prelude.foldr sem_VarsList_Cons sem_VarsList_Nil (Prelude.map sem_Declaration list))
-- semantic domain
type T_VarsList = (VarsList, T_VarsList_1)
type T_VarsList_1 =
LintSettings
-> String
-> (M.Map String [Region])
-> Bool
-> Bool
-> Bool
-> Int
-> Region
-> Int
-> ([M.Map String (Bool, Region)])
-> DeterminedVariableStyle
-> ((M.Map String [Region]), String, Bool, Region, ([M.Map String (Bool, Region)]), DeterminedVariableStyle, ([String -> LintMessage]))
data Inh_VarsList = Inh_VarsList {config_Inh_VarsList :: LintSettings, funcName_Inh_VarsList :: String, globalDefinitions_Inh_VarsList :: (M.Map String [Region]), isInModule_Inh_VarsList :: Bool, isMeta_Inh_VarsList :: Bool, localDefinition_Inh_VarsList :: Bool, loopLevel_Inh_VarsList :: Int, mtokenPos_Inh_VarsList :: Region, scopeLevel_Inh_VarsList :: Int, scopes_Inh_VarsList :: ([M.Map String (Bool, Region)]), variableStyle_Inh_VarsList :: DeterminedVariableStyle}
data Syn_VarsList = Syn_VarsList {copy_Syn_VarsList :: VarsList, globalDefinitions_Syn_VarsList :: (M.Map String [Region]), identifier_Syn_VarsList :: String, isInModule_Syn_VarsList :: Bool, mtokenPos_Syn_VarsList :: Region, scopes_Syn_VarsList :: ([M.Map String (Bool, Region)]), variableStyle_Syn_VarsList :: DeterminedVariableStyle, warnings_Syn_VarsList :: ([String -> LintMessage])}
wrap_VarsList
:: T_VarsList
-> Inh_VarsList
-> Syn_VarsList
wrap_VarsList sem (Inh_VarsList _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIlocalDefinition _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle) =
( let
(_lhsOcopy, sem_1) = sem
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings) = sem_1 _lhsIconfig _lhsIfuncName _lhsIglobalDefinitions _lhsIisInModule _lhsIisMeta _lhsIlocalDefinition _lhsIloopLevel _lhsImtokenPos _lhsIscopeLevel _lhsIscopes _lhsIvariableStyle
in
(Syn_VarsList _lhsOcopy _lhsOglobalDefinitions _lhsOidentifier _lhsOisInModule _lhsOmtokenPos _lhsOscopes _lhsOvariableStyle _lhsOwarnings)
)
sem_VarsList_Cons
:: T_Declaration
-> T_VarsList
-> T_VarsList
sem_VarsList_Cons hd_ tl_ =
( case (tl_) of
(_tlIcopy, tl_1) ->
( case (hd_) of
(_hdIcopy, hd_1) ->
( case ( ( (:) _hdIcopy _tlIcopy
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_VarsList_Cons_1 :: T_VarsList_1
sem_VarsList_Cons_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIlocalDefinition
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIscopes
)
) of
_hdOscopes ->
( case ( ( _lhsIlocalDefinition
)
) of
_hdOlocalDefinition ->
( case ( ( _lhsIisMeta
)
) of
_hdOisMeta ->
( case ( ( _lhsIconfig
)
) of
_hdOconfig ->
( case ( ( _lhsIvariableStyle
)
) of
_hdOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_hdOscopeLevel ->
( case ( ( _lhsImtokenPos
)
) of
_hdOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_hdOloopLevel ->
( case ( ( _lhsIisInModule
)
) of
_hdOisInModule ->
( case ( ( _lhsIglobalDefinitions
)
) of
_hdOglobalDefinitions ->
( case ( ( _lhsIfuncName
)
) of
_hdOfuncName ->
( case (hd_1 _hdOconfig _hdOfuncName _hdOglobalDefinitions _hdOisInModule _hdOisMeta _hdOlocalDefinition _hdOloopLevel _hdOmtokenPos _hdOscopeLevel _hdOscopes _hdOvariableStyle) of
(_hdIglobalDefinitions, _hdIidentifier, _hdIisInModule, _hdImtokenPos, _hdIscopes, _hdIvariableStyle, _hdIwarnings) ->
( case ( ( _hdIscopes
)
) of
_tlOscopes ->
( case ( ( _lhsIlocalDefinition
)
) of
_tlOlocalDefinition ->
( case ( ( _lhsIisMeta
)
) of
_tlOisMeta ->
( case ( ( _hdIisInModule
)
) of
_tlOisInModule ->
( case ( ( _hdIglobalDefinitions
)
) of
_tlOglobalDefinitions ->
( case ( ( _lhsIconfig
)
) of
_tlOconfig ->
( case ( ( _hdIvariableStyle
)
) of
_tlOvariableStyle ->
( case ( ( _lhsIscopeLevel
)
) of
_tlOscopeLevel ->
( case ( ( _hdImtokenPos
)
) of
_tlOmtokenPos ->
( case ( ( _lhsIloopLevel
)
) of
_tlOloopLevel ->
( case ( ( _lhsIfuncName
)
) of
_tlOfuncName ->
( case (tl_1 _tlOconfig _tlOfuncName _tlOglobalDefinitions _tlOisInModule _tlOisMeta _tlOlocalDefinition _tlOloopLevel _tlOmtokenPos _tlOscopeLevel _tlOscopes _tlOvariableStyle) of
(_tlIglobalDefinitions, _tlIidentifier, _tlIisInModule, _tlImtokenPos, _tlIscopes, _tlIvariableStyle, _tlIwarnings) ->
( case ( ( _tlIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( (const _hdIidentifier _tlIidentifier)
)
) of
_lhsOidentifier ->
( case ( ( _tlIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _hdImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _tlIscopes
)
) of
_lhsOscopes ->
( case ( ( _tlIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( _hdIwarnings ++ _tlIwarnings
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)
in
sem_VarsList_Cons_1
)
) of
(sem_VarsList_1) ->
(_lhsOcopy, sem_VarsList_1)
)
)
)
)
)
sem_VarsList_Nil :: T_VarsList
sem_VarsList_Nil =
( case ( ( []
)
) of
_copy ->
( case ( ( _copy
)
) of
_lhsOcopy ->
( case ( ( let
sem_VarsList_Nil_1 :: T_VarsList_1
sem_VarsList_Nil_1 =
( \_lhsIconfig
_lhsIfuncName
_lhsIglobalDefinitions
_lhsIisInModule
_lhsIisMeta
_lhsIlocalDefinition
_lhsIloopLevel
_lhsImtokenPos
_lhsIscopeLevel
_lhsIscopes
_lhsIvariableStyle ->
( case ( ( _lhsIglobalDefinitions
)
) of
_lhsOglobalDefinitions ->
( case ( ( unknownIdentifier
)
) of
_lhsOidentifier ->
( case ( ( _lhsIisInModule
)
) of
_lhsOisInModule ->
( case ( ( _lhsImtokenPos
)
) of
_lhsOmtokenPos ->
( case ( ( _lhsIscopes
)
) of
_lhsOscopes ->
( case ( ( _lhsIvariableStyle
)
) of
_lhsOvariableStyle ->
( case ( ( []
)
) of
_lhsOwarnings ->
(_lhsOglobalDefinitions, _lhsOidentifier, _lhsOisInModule, _lhsOmtokenPos, _lhsOscopes, _lhsOvariableStyle, _lhsOwarnings)
)
)
)
)
)
)
)
)
in
sem_VarsList_Nil_1
)
) of
(sem_VarsList_1) ->
(_lhsOcopy, sem_VarsList_1)
)
)
)