packages feed

glualint-1.26.0: src/GLuaFixer/AG/LexLint.hs

{-# LANGUAGE CPP #-}
{-# LANGUAGE DeriveGeneric #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}

-- UUAGC 0.9.55 (src/GLuaFixer/AG/LexLint.ag)
module GLuaFixer.AG.LexLint (
  lintWarnings,
  fixedLexPositions,
) 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/LexLint.hs" #-}

{-# LINE 15 "src/GLuaFixer/AG/LexLint.ag" #-}

import Data.List
import GLua.AG.Token
import GLua.TokenTypes
import GLuaFixer.LintMessage
import GLuaFixer.LintSettings
{-# LINE 28 "src/GLuaFixer/AG/LexLint.hs" #-}
{-# LINE 25 "src/GLuaFixer/AG/LexLint.ag" #-}

----------------------------------------
--  C-style / Lua-style syntax inconsistencies
----------------------------------------
-- For detecting the usage of Lua/C syntax inconsistently
data SyntaxUsed = SyntaxUsed {luaUsed :: Bool, cUsed :: Bool} deriving (Show)

instance Semigroup SyntaxUsed where
  (SyntaxUsed l1 c1) <> (SyntaxUsed l2 c2) = SyntaxUsed (l1 || l2) (c1 || c2)

-- Monoid instance
instance Monoid SyntaxUsed where
  mempty = SyntaxUsed False False

mTokenWarning :: Region -> Issue -> FilePath -> LintMessage
mTokenWarning pos issue = LintMessage LintWarning pos issue

isSingleChar :: String -> Bool
isSingleChar [] = True
isSingleChar ('\\' : xs) = length xs == 1
isSingleChar (_ : []) = True
isSingleChar _ = False

-- Locate the exact position of trailing whitespace
locateTrailingWhitespace :: LineColPos -> String -> (LineColPos, String)
locateTrailingWhitespace pos (' ' : xs) = (pos, xs)
locateTrailingWhitespace pos ('\t' : xs) = (pos, xs)
locateTrailingWhitespace pos (x : xs) = locateTrailingWhitespace (customAdvanceChr pos x) xs
locateTrailingWhitespace pos [] = (pos, "")

-- Locate the start of a line's indentation in a string of whitespace
indentationStart :: LineColPos -> String -> LineColPos
indentationStart pos = go pos pos
  where
    go :: LineColPos -> LineColPos -> String -> LineColPos
    go _ cur ('\n' : xs) = let next = customAdvanceChr cur '\n' in go next next xs
    go found cur (x : xs) = go found (customAdvanceChr cur x) xs
    go found _ [] = found

endOfTrailingWhitespace :: (LineColPos, String) -> LineColPos
endOfTrailingWhitespace (pos, ('\n' : _)) = pos
endOfTrailingWhitespace (pos, (x : xs)) = endOfTrailingWhitespace (customAdvanceChr pos x, xs)
endOfTrailingWhitespace (pos, []) = pos

{-# LINE 76 "src/GLuaFixer/AG/LexLint.hs" #-}

{-# LINE 237 "src/GLuaFixer/AG/LexLint.ag" #-}

inh_MTokenList :: LintSettings -> Inh_MTokenList
inh_MTokenList conf =
  Inh_MTokenList
    { config_Inh_MTokenList = conf
    , andSyntax_Inh_MTokenList = mempty
    , indentation_Inh_MTokenList = mempty
    , lineCommentSyntax_Inh_MTokenList = mempty
    , multilineCommentSyntax_Inh_MTokenList = mempty
    , neqSyntax_Inh_MTokenList = mempty
    , notSyntax_Inh_MTokenList = mempty
    , orSyntax_Inh_MTokenList = mempty
    , strSyntax_Inh_MTokenList = mempty
    , nextTokenPos_Inh_MTokenList = LineColPos 0 0 0
    }

lintWarnings :: LintSettings -> [MToken] -> [String -> LintMessage]
lintWarnings conf p = warnings_Syn_MTokenList (wrap_MTokenList (sem_MTokenList p) (inh_MTokenList conf))

-- Necessary because uu-parsinglib's LineColPos walks over tabs as though they are 8 spaces. Note
-- that this also applies when the code is lexed by the Parsec lexer.
fixedLexPositions :: [MToken] -> [MToken]
fixedLexPositions p = copy_Syn_MTokenList (wrap_MTokenList (sem_MTokenList p) (inh_MTokenList defaultLintSettings))
{-# LINE 104 "src/GLuaFixer/AG/LexLint.hs" #-}
-- 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 =
  SyntaxUsed
  -> LintSettings
  -> SyntaxUsed
  -> SyntaxUsed
  -> SyntaxUsed
  -> SyntaxUsed
  -> LineColPos
  -> SyntaxUsed
  -> SyntaxUsed
  -> SyntaxUsed
  -> (SyntaxUsed, MToken, SyntaxUsed, SyntaxUsed, SyntaxUsed, SyntaxUsed, LineColPos, SyntaxUsed, SyntaxUsed, SyntaxUsed, ([FilePath -> LintMessage]))
data Inh_MToken = Inh_MToken {andSyntax_Inh_MToken :: SyntaxUsed, config_Inh_MToken :: LintSettings, indentation_Inh_MToken :: SyntaxUsed, lineCommentSyntax_Inh_MToken :: SyntaxUsed, multilineCommentSyntax_Inh_MToken :: SyntaxUsed, neqSyntax_Inh_MToken :: SyntaxUsed, nextTokenPos_Inh_MToken :: LineColPos, notSyntax_Inh_MToken :: SyntaxUsed, orSyntax_Inh_MToken :: SyntaxUsed, strSyntax_Inh_MToken :: SyntaxUsed}
data Syn_MToken = Syn_MToken {andSyntax_Syn_MToken :: SyntaxUsed, copy_Syn_MToken :: MToken, indentation_Syn_MToken :: SyntaxUsed, lineCommentSyntax_Syn_MToken :: SyntaxUsed, multilineCommentSyntax_Syn_MToken :: SyntaxUsed, neqSyntax_Syn_MToken :: SyntaxUsed, nextTokenPos_Syn_MToken :: LineColPos, notSyntax_Syn_MToken :: SyntaxUsed, orSyntax_Syn_MToken :: SyntaxUsed, strSyntax_Syn_MToken :: SyntaxUsed, warnings_Syn_MToken :: ([FilePath -> LintMessage])}
wrap_MToken
  :: T_MToken
  -> Inh_MToken
  -> Syn_MToken
wrap_MToken sem (Inh_MToken _lhsIandSyntax _lhsIconfig _lhsIindentation _lhsIlineCommentSyntax _lhsImultilineCommentSyntax _lhsIneqSyntax _lhsInextTokenPos _lhsInotSyntax _lhsIorSyntax _lhsIstrSyntax) =
  ( let
      (_lhsOandSyntax, _lhsOcopy, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOwarnings) = sem _lhsIandSyntax _lhsIconfig _lhsIindentation _lhsIlineCommentSyntax _lhsImultilineCommentSyntax _lhsIneqSyntax _lhsInextTokenPos _lhsInotSyntax _lhsIorSyntax _lhsIstrSyntax
    in
      (Syn_MToken _lhsOandSyntax _lhsOcopy _lhsOindentation _lhsOlineCommentSyntax _lhsOmultilineCommentSyntax _lhsOneqSyntax _lhsOnextTokenPos _lhsOnotSyntax _lhsOorSyntax _lhsOstrSyntax _lhsOwarnings)
  )
sem_MToken_MToken
  :: T_Region
  -> T_Token
  -> T_MToken
sem_MToken_MToken mpos_ mtok_ =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIconfig
                 )
               ) of
            _mtokOconfig ->
              ( case ( ( _lhsIandSyntax
                       )
                     ) of
                  _mposOandSyntax ->
                    ( case ( ( _lhsIstrSyntax
                             )
                           ) of
                        _mposOstrSyntax ->
                          ( case ( ( _lhsIorSyntax
                                   )
                                 ) of
                              _mposOorSyntax ->
                                ( case ( ( _lhsInotSyntax
                                         )
                                       ) of
                                    _mposOnotSyntax ->
                                      ( case ( ( _lhsInextTokenPos
                                               )
                                             ) of
                                          _mposOnextTokenPos ->
                                            ( case ( ( _lhsIneqSyntax
                                                     )
                                                   ) of
                                                _mposOneqSyntax ->
                                                  ( case ( ( _lhsImultilineCommentSyntax
                                                           )
                                                         ) of
                                                      _mposOmultilineCommentSyntax ->
                                                        ( case ( ( _lhsIlineCommentSyntax
                                                                 )
                                                               ) of
                                                            _mposOlineCommentSyntax ->
                                                              ( case ( ( _lhsIindentation
                                                                       )
                                                                     ) of
                                                                  _mposOindentation ->
                                                                    ( case ( ( _lhsIconfig
                                                                             )
                                                                           ) of
                                                                        _mposOconfig ->
                                                                          ( case (mpos_ _mposOandSyntax _mposOconfig _mposOindentation _mposOlineCommentSyntax _mposOmultilineCommentSyntax _mposOneqSyntax _mposOnextTokenPos _mposOnotSyntax _mposOorSyntax _mposOstrSyntax) of
                                                                              (_mposIandSyntax, _mposIcopy, _mposIindentation, _mposIlineCommentSyntax, _mposImultilineCommentSyntax, _mposIneqSyntax, _mposInextTokenPos, _mposInotSyntax, _mposIorSyntax, _mposIstrSyntax, _mposIwarnings) ->
                                                                                ( case ( ( _mposIandSyntax
                                                                                         )
                                                                                       ) of
                                                                                    _mtokOandSyntax ->
                                                                                      ( case ( ( _mposIstrSyntax
                                                                                               )
                                                                                             ) of
                                                                                          _mtokOstrSyntax ->
                                                                                            ( case ( ( _mposIorSyntax
                                                                                                     )
                                                                                                   ) of
                                                                                                _mtokOorSyntax ->
                                                                                                  ( case ( ( _mposInotSyntax
                                                                                                           )
                                                                                                         ) of
                                                                                                      _mtokOnotSyntax ->
                                                                                                        ( case ( ( _mposInextTokenPos
                                                                                                                 )
                                                                                                               ) of
                                                                                                            _mtokOnextTokenPos ->
                                                                                                              ( case ( ( _mposIneqSyntax
                                                                                                                       )
                                                                                                                     ) of
                                                                                                                  _mtokOneqSyntax ->
                                                                                                                    ( case ( ( _mposImultilineCommentSyntax
                                                                                                                             )
                                                                                                                           ) of
                                                                                                                        _mtokOmultilineCommentSyntax ->
                                                                                                                          ( case ( ( _mposIlineCommentSyntax
                                                                                                                                   )
                                                                                                                                 ) of
                                                                                                                              _mtokOlineCommentSyntax ->
                                                                                                                                ( case ( ( _mposIindentation
                                                                                                                                         )
                                                                                                                                       ) of
                                                                                                                                    _mtokOindentation ->
                                                                                                                                      ( case (mtok_ _mtokOandSyntax _mtokOconfig _mtokOindentation _mtokOlineCommentSyntax _mtokOmultilineCommentSyntax _mtokOneqSyntax _mtokOnextTokenPos _mtokOnotSyntax _mtokOorSyntax _mtokOstrSyntax) of
                                                                                                                                          (_mtokIandSyntax, _mtokIcopy, _mtokIcustomWarnings, _mtokIindentation, _mtokIlineCommentSyntax, _mtokImultilineCommentSyntax, _mtokIneqSyntax, _mtokInextTokenPos, _mtokInotSyntax, _mtokIorSyntax, _mtokIstrSyntax, _mtokItokenWarnings, _mtokIwarnings) ->
                                                                                                                                            ( case ( ( _mtokIandSyntax
                                                                                                                                                     )
                                                                                                                                                   ) of
                                                                                                                                                _lhsOandSyntax ->
                                                                                                                                                  ( case ( ( Region _lhsInextTokenPos (customAdvanceToken _lhsInextTokenPos _mtokIcopy)
                                                                                                                                                           )
                                                                                                                                                         ) of
                                                                                                                                                      _mpos ->
                                                                                                                                                        ( case ( ( MToken _mpos _mtokIcopy
                                                                                                                                                                 )
                                                                                                                                                               ) of
                                                                                                                                                            _copy ->
                                                                                                                                                              ( case ( ( _copy
                                                                                                                                                                       )
                                                                                                                                                                     ) of
                                                                                                                                                                  _lhsOcopy ->
                                                                                                                                                                    ( case ( ( _mtokIindentation
                                                                                                                                                                             )
                                                                                                                                                                           ) of
                                                                                                                                                                        _lhsOindentation ->
                                                                                                                                                                          ( case ( ( _mtokIlineCommentSyntax
                                                                                                                                                                                   )
                                                                                                                                                                                 ) of
                                                                                                                                                                              _lhsOlineCommentSyntax ->
                                                                                                                                                                                ( case ( ( _mtokImultilineCommentSyntax
                                                                                                                                                                                         )
                                                                                                                                                                                       ) of
                                                                                                                                                                                    _lhsOmultilineCommentSyntax ->
                                                                                                                                                                                      ( case ( ( _mtokIneqSyntax
                                                                                                                                                                                               )
                                                                                                                                                                                             ) of
                                                                                                                                                                                          _lhsOneqSyntax ->
                                                                                                                                                                                            ( case ( ( _mtokInextTokenPos
                                                                                                                                                                                                     )
                                                                                                                                                                                                   ) of
                                                                                                                                                                                                _lhsOnextTokenPos ->
                                                                                                                                                                                                  ( case ( ( _mtokInotSyntax
                                                                                                                                                                                                           )
                                                                                                                                                                                                         ) of
                                                                                                                                                                                                      _lhsOnotSyntax ->
                                                                                                                                                                                                        ( case ( ( _mtokIorSyntax
                                                                                                                                                                                                                 )
                                                                                                                                                                                                               ) of
                                                                                                                                                                                                            _lhsOorSyntax ->
                                                                                                                                                                                                              ( case ( ( _mtokIstrSyntax
                                                                                                                                                                                                                       )
                                                                                                                                                                                                                     ) of
                                                                                                                                                                                                                  _lhsOstrSyntax ->
                                                                                                                                                                                                                    ( case ( ( _mtokIcustomWarnings ++ map (mTokenWarning _mpos) _mtokItokenWarnings
                                                                                                                                                                                                                             )
                                                                                                                                                                                                                           ) of
                                                                                                                                                                                                                        _lhsOwarnings ->
                                                                                                                                                                                                                          (_lhsOandSyntax, _lhsOcopy, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOwarnings)
                                                                                                                                                                                                                    )
                                                                                                                                                                                                              )
                                                                                                                                                                                                        )
                                                                                                                                                                                                  )
                                                                                                                                                                                            )
                                                                                                                                                                                      )
                                                                                                                                                                                )
                                                                                                                                                                          )
                                                                                                                                                                    )
                                                                                                                                                              )
                                                                                                                                                        )
                                                                                                                                                  )
                                                                                                                                            )
                                                                                                                                      )
                                                                                                                                )
                                                                                                                          )
                                                                                                                    )
                                                                                                              )
                                                                                                        )
                                                                                                  )
                                                                                            )
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )

-- 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 =
  SyntaxUsed
  -> LintSettings
  -> SyntaxUsed
  -> SyntaxUsed
  -> SyntaxUsed
  -> SyntaxUsed
  -> LineColPos
  -> SyntaxUsed
  -> SyntaxUsed
  -> SyntaxUsed
  -> (SyntaxUsed, MTokenList, SyntaxUsed, SyntaxUsed, SyntaxUsed, SyntaxUsed, LineColPos, SyntaxUsed, SyntaxUsed, SyntaxUsed, ([FilePath -> LintMessage]))
data Inh_MTokenList = Inh_MTokenList {andSyntax_Inh_MTokenList :: SyntaxUsed, config_Inh_MTokenList :: LintSettings, indentation_Inh_MTokenList :: SyntaxUsed, lineCommentSyntax_Inh_MTokenList :: SyntaxUsed, multilineCommentSyntax_Inh_MTokenList :: SyntaxUsed, neqSyntax_Inh_MTokenList :: SyntaxUsed, nextTokenPos_Inh_MTokenList :: LineColPos, notSyntax_Inh_MTokenList :: SyntaxUsed, orSyntax_Inh_MTokenList :: SyntaxUsed, strSyntax_Inh_MTokenList :: SyntaxUsed}
data Syn_MTokenList = Syn_MTokenList {andSyntax_Syn_MTokenList :: SyntaxUsed, copy_Syn_MTokenList :: MTokenList, indentation_Syn_MTokenList :: SyntaxUsed, lineCommentSyntax_Syn_MTokenList :: SyntaxUsed, multilineCommentSyntax_Syn_MTokenList :: SyntaxUsed, neqSyntax_Syn_MTokenList :: SyntaxUsed, nextTokenPos_Syn_MTokenList :: LineColPos, notSyntax_Syn_MTokenList :: SyntaxUsed, orSyntax_Syn_MTokenList :: SyntaxUsed, strSyntax_Syn_MTokenList :: SyntaxUsed, warnings_Syn_MTokenList :: ([FilePath -> LintMessage])}
wrap_MTokenList
  :: T_MTokenList
  -> Inh_MTokenList
  -> Syn_MTokenList
wrap_MTokenList sem (Inh_MTokenList _lhsIandSyntax _lhsIconfig _lhsIindentation _lhsIlineCommentSyntax _lhsImultilineCommentSyntax _lhsIneqSyntax _lhsInextTokenPos _lhsInotSyntax _lhsIorSyntax _lhsIstrSyntax) =
  ( let
      (_lhsOandSyntax, _lhsOcopy, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOwarnings) = sem _lhsIandSyntax _lhsIconfig _lhsIindentation _lhsIlineCommentSyntax _lhsImultilineCommentSyntax _lhsIneqSyntax _lhsInextTokenPos _lhsInotSyntax _lhsIorSyntax _lhsIstrSyntax
    in
      (Syn_MTokenList _lhsOandSyntax _lhsOcopy _lhsOindentation _lhsOlineCommentSyntax _lhsOmultilineCommentSyntax _lhsOneqSyntax _lhsOnextTokenPos _lhsOnotSyntax _lhsOorSyntax _lhsOstrSyntax _lhsOwarnings)
  )
sem_MTokenList_Cons
  :: T_MToken
  -> T_MTokenList
  -> T_MTokenList
sem_MTokenList_Cons hd_ tl_ =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIconfig
                 )
               ) of
            _tlOconfig ->
              ( case ( ( _lhsIconfig
                       )
                     ) of
                  _hdOconfig ->
                    ( case ( ( _lhsIandSyntax
                             )
                           ) of
                        _hdOandSyntax ->
                          ( case ( ( _lhsIstrSyntax
                                   )
                                 ) of
                              _hdOstrSyntax ->
                                ( case ( ( _lhsIorSyntax
                                         )
                                       ) of
                                    _hdOorSyntax ->
                                      ( case ( ( _lhsInotSyntax
                                               )
                                             ) of
                                          _hdOnotSyntax ->
                                            ( case ( ( _lhsInextTokenPos
                                                     )
                                                   ) of
                                                _hdOnextTokenPos ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _hdOneqSyntax ->
                                                        ( case ( ( _lhsImultilineCommentSyntax
                                                                 )
                                                               ) of
                                                            _hdOmultilineCommentSyntax ->
                                                              ( case ( ( _lhsIlineCommentSyntax
                                                                       )
                                                                     ) of
                                                                  _hdOlineCommentSyntax ->
                                                                    ( case ( ( _lhsIindentation
                                                                             )
                                                                           ) of
                                                                        _hdOindentation ->
                                                                          ( case (hd_ _hdOandSyntax _hdOconfig _hdOindentation _hdOlineCommentSyntax _hdOmultilineCommentSyntax _hdOneqSyntax _hdOnextTokenPos _hdOnotSyntax _hdOorSyntax _hdOstrSyntax) of
                                                                              (_hdIandSyntax, _hdIcopy, _hdIindentation, _hdIlineCommentSyntax, _hdImultilineCommentSyntax, _hdIneqSyntax, _hdInextTokenPos, _hdInotSyntax, _hdIorSyntax, _hdIstrSyntax, _hdIwarnings) ->
                                                                                ( case ( ( _hdIandSyntax
                                                                                         )
                                                                                       ) of
                                                                                    _tlOandSyntax ->
                                                                                      ( case ( ( _hdIstrSyntax
                                                                                               )
                                                                                             ) of
                                                                                          _tlOstrSyntax ->
                                                                                            ( case ( ( _hdIorSyntax
                                                                                                     )
                                                                                                   ) of
                                                                                                _tlOorSyntax ->
                                                                                                  ( case ( ( _hdInotSyntax
                                                                                                           )
                                                                                                         ) of
                                                                                                      _tlOnotSyntax ->
                                                                                                        ( case ( ( _hdInextTokenPos
                                                                                                                 )
                                                                                                               ) of
                                                                                                            _tlOnextTokenPos ->
                                                                                                              ( case ( ( _hdIneqSyntax
                                                                                                                       )
                                                                                                                     ) of
                                                                                                                  _tlOneqSyntax ->
                                                                                                                    ( case ( ( _hdImultilineCommentSyntax
                                                                                                                             )
                                                                                                                           ) of
                                                                                                                        _tlOmultilineCommentSyntax ->
                                                                                                                          ( case ( ( _hdIlineCommentSyntax
                                                                                                                                   )
                                                                                                                                 ) of
                                                                                                                              _tlOlineCommentSyntax ->
                                                                                                                                ( case ( ( _hdIindentation
                                                                                                                                         )
                                                                                                                                       ) of
                                                                                                                                    _tlOindentation ->
                                                                                                                                      ( case (tl_ _tlOandSyntax _tlOconfig _tlOindentation _tlOlineCommentSyntax _tlOmultilineCommentSyntax _tlOneqSyntax _tlOnextTokenPos _tlOnotSyntax _tlOorSyntax _tlOstrSyntax) of
                                                                                                                                          (_tlIandSyntax, _tlIcopy, _tlIindentation, _tlIlineCommentSyntax, _tlImultilineCommentSyntax, _tlIneqSyntax, _tlInextTokenPos, _tlInotSyntax, _tlIorSyntax, _tlIstrSyntax, _tlIwarnings) ->
                                                                                                                                            ( case ( ( _tlIandSyntax
                                                                                                                                                     )
                                                                                                                                                   ) of
                                                                                                                                                _lhsOandSyntax ->
                                                                                                                                                  ( case ( ( (:) _hdIcopy _tlIcopy
                                                                                                                                                           )
                                                                                                                                                         ) of
                                                                                                                                                      _copy ->
                                                                                                                                                        ( case ( ( _copy
                                                                                                                                                                 )
                                                                                                                                                               ) of
                                                                                                                                                            _lhsOcopy ->
                                                                                                                                                              ( case ( ( _tlIindentation
                                                                                                                                                                       )
                                                                                                                                                                     ) of
                                                                                                                                                                  _lhsOindentation ->
                                                                                                                                                                    ( case ( ( _tlIlineCommentSyntax
                                                                                                                                                                             )
                                                                                                                                                                           ) of
                                                                                                                                                                        _lhsOlineCommentSyntax ->
                                                                                                                                                                          ( case ( ( _tlImultilineCommentSyntax
                                                                                                                                                                                   )
                                                                                                                                                                                 ) of
                                                                                                                                                                              _lhsOmultilineCommentSyntax ->
                                                                                                                                                                                ( case ( ( _tlIneqSyntax
                                                                                                                                                                                         )
                                                                                                                                                                                       ) of
                                                                                                                                                                                    _lhsOneqSyntax ->
                                                                                                                                                                                      ( case ( ( _tlInextTokenPos
                                                                                                                                                                                               )
                                                                                                                                                                                             ) of
                                                                                                                                                                                          _lhsOnextTokenPos ->
                                                                                                                                                                                            ( case ( ( _tlInotSyntax
                                                                                                                                                                                                     )
                                                                                                                                                                                                   ) of
                                                                                                                                                                                                _lhsOnotSyntax ->
                                                                                                                                                                                                  ( case ( ( _tlIorSyntax
                                                                                                                                                                                                           )
                                                                                                                                                                                                         ) of
                                                                                                                                                                                                      _lhsOorSyntax ->
                                                                                                                                                                                                        ( case ( ( _tlIstrSyntax
                                                                                                                                                                                                                 )
                                                                                                                                                                                                               ) of
                                                                                                                                                                                                            _lhsOstrSyntax ->
                                                                                                                                                                                                              ( case ( ( _hdIwarnings ++ _tlIwarnings
                                                                                                                                                                                                                       )
                                                                                                                                                                                                                     ) of
                                                                                                                                                                                                                  _lhsOwarnings ->
                                                                                                                                                                                                                    (_lhsOandSyntax, _lhsOcopy, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOwarnings)
                                                                                                                                                                                                              )
                                                                                                                                                                                                        )
                                                                                                                                                                                                  )
                                                                                                                                                                                            )
                                                                                                                                                                                      )
                                                                                                                                                                                )
                                                                                                                                                                          )
                                                                                                                                                                    )
                                                                                                                                                              )
                                                                                                                                                        )
                                                                                                                                                  )
                                                                                                                                            )
                                                                                                                                      )
                                                                                                                                )
                                                                                                                          )
                                                                                                                    )
                                                                                                              )
                                                                                                        )
                                                                                                  )
                                                                                            )
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_MTokenList_Nil :: T_MTokenList
sem_MTokenList_Nil =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( []
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( _lhsIindentation
                                   )
                                 ) of
                              _lhsOindentation ->
                                ( case ( ( _lhsIlineCommentSyntax
                                         )
                                       ) of
                                    _lhsOlineCommentSyntax ->
                                      ( case ( ( _lhsImultilineCommentSyntax
                                               )
                                             ) of
                                          _lhsOmultilineCommentSyntax ->
                                            ( case ( ( _lhsIneqSyntax
                                                     )
                                                   ) of
                                                _lhsOneqSyntax ->
                                                  ( case ( ( _lhsInextTokenPos
                                                           )
                                                         ) of
                                                      _lhsOnextTokenPos ->
                                                        ( case ( ( _lhsInotSyntax
                                                                 )
                                                               ) of
                                                            _lhsOnotSyntax ->
                                                              ( case ( ( _lhsIorSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOorSyntax ->
                                                                    ( case ( ( _lhsIstrSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOstrSyntax ->
                                                                          ( case ( ( []
                                                                                   )
                                                                                 ) of
                                                                              _lhsOwarnings ->
                                                                                (_lhsOandSyntax, _lhsOcopy, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOwarnings)
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )

-- Region ------------------------------------------------------
-- cata
sem_Region
  :: Region
  -> T_Region
sem_Region (Region _start _end) =
  (sem_Region_Region _start _end)

-- semantic domain
type T_Region =
  SyntaxUsed
  -> LintSettings
  -> SyntaxUsed
  -> SyntaxUsed
  -> SyntaxUsed
  -> SyntaxUsed
  -> LineColPos
  -> SyntaxUsed
  -> SyntaxUsed
  -> SyntaxUsed
  -> (SyntaxUsed, Region, SyntaxUsed, SyntaxUsed, SyntaxUsed, SyntaxUsed, LineColPos, SyntaxUsed, SyntaxUsed, SyntaxUsed, ([FilePath -> LintMessage]))
data Inh_Region = Inh_Region {andSyntax_Inh_Region :: SyntaxUsed, config_Inh_Region :: LintSettings, indentation_Inh_Region :: SyntaxUsed, lineCommentSyntax_Inh_Region :: SyntaxUsed, multilineCommentSyntax_Inh_Region :: SyntaxUsed, neqSyntax_Inh_Region :: SyntaxUsed, nextTokenPos_Inh_Region :: LineColPos, notSyntax_Inh_Region :: SyntaxUsed, orSyntax_Inh_Region :: SyntaxUsed, strSyntax_Inh_Region :: SyntaxUsed}
data Syn_Region = Syn_Region {andSyntax_Syn_Region :: SyntaxUsed, copy_Syn_Region :: Region, indentation_Syn_Region :: SyntaxUsed, lineCommentSyntax_Syn_Region :: SyntaxUsed, multilineCommentSyntax_Syn_Region :: SyntaxUsed, neqSyntax_Syn_Region :: SyntaxUsed, nextTokenPos_Syn_Region :: LineColPos, notSyntax_Syn_Region :: SyntaxUsed, orSyntax_Syn_Region :: SyntaxUsed, strSyntax_Syn_Region :: SyntaxUsed, warnings_Syn_Region :: ([FilePath -> LintMessage])}
wrap_Region
  :: T_Region
  -> Inh_Region
  -> Syn_Region
wrap_Region sem (Inh_Region _lhsIandSyntax _lhsIconfig _lhsIindentation _lhsIlineCommentSyntax _lhsImultilineCommentSyntax _lhsIneqSyntax _lhsInextTokenPos _lhsInotSyntax _lhsIorSyntax _lhsIstrSyntax) =
  ( let
      (_lhsOandSyntax, _lhsOcopy, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOwarnings) = sem _lhsIandSyntax _lhsIconfig _lhsIindentation _lhsIlineCommentSyntax _lhsImultilineCommentSyntax _lhsIneqSyntax _lhsInextTokenPos _lhsInotSyntax _lhsIorSyntax _lhsIstrSyntax
    in
      (Syn_Region _lhsOandSyntax _lhsOcopy _lhsOindentation _lhsOlineCommentSyntax _lhsOmultilineCommentSyntax _lhsOneqSyntax _lhsOnextTokenPos _lhsOnotSyntax _lhsOorSyntax _lhsOstrSyntax _lhsOwarnings)
  )
sem_Region_Region
  :: LineColPos
  -> LineColPos
  -> T_Region
sem_Region_Region start_ end_ =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Region start_ end_
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( _lhsIindentation
                                   )
                                 ) of
                              _lhsOindentation ->
                                ( case ( ( _lhsIlineCommentSyntax
                                         )
                                       ) of
                                    _lhsOlineCommentSyntax ->
                                      ( case ( ( _lhsImultilineCommentSyntax
                                               )
                                             ) of
                                          _lhsOmultilineCommentSyntax ->
                                            ( case ( ( _lhsIneqSyntax
                                                     )
                                                   ) of
                                                _lhsOneqSyntax ->
                                                  ( case ( ( _lhsInextTokenPos
                                                           )
                                                         ) of
                                                      _lhsOnextTokenPos ->
                                                        ( case ( ( _lhsInotSyntax
                                                                 )
                                                               ) of
                                                            _lhsOnotSyntax ->
                                                              ( case ( ( _lhsIorSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOorSyntax ->
                                                                    ( case ( ( _lhsIstrSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOstrSyntax ->
                                                                          ( case ( ( []
                                                                                   )
                                                                                 ) of
                                                                              _lhsOwarnings ->
                                                                                (_lhsOandSyntax, _lhsOcopy, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOwarnings)
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )

-- 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 =
  SyntaxUsed
  -> LintSettings
  -> SyntaxUsed
  -> SyntaxUsed
  -> SyntaxUsed
  -> SyntaxUsed
  -> LineColPos
  -> SyntaxUsed
  -> SyntaxUsed
  -> SyntaxUsed
  -> (SyntaxUsed, Token, ([FilePath -> LintMessage]), SyntaxUsed, SyntaxUsed, SyntaxUsed, SyntaxUsed, LineColPos, SyntaxUsed, SyntaxUsed, SyntaxUsed, ([Issue]), ([FilePath -> LintMessage]))
data Inh_Token = Inh_Token {andSyntax_Inh_Token :: SyntaxUsed, config_Inh_Token :: LintSettings, indentation_Inh_Token :: SyntaxUsed, lineCommentSyntax_Inh_Token :: SyntaxUsed, multilineCommentSyntax_Inh_Token :: SyntaxUsed, neqSyntax_Inh_Token :: SyntaxUsed, nextTokenPos_Inh_Token :: LineColPos, notSyntax_Inh_Token :: SyntaxUsed, orSyntax_Inh_Token :: SyntaxUsed, strSyntax_Inh_Token :: SyntaxUsed}
data Syn_Token = Syn_Token {andSyntax_Syn_Token :: SyntaxUsed, copy_Syn_Token :: Token, customWarnings_Syn_Token :: ([FilePath -> LintMessage]), indentation_Syn_Token :: SyntaxUsed, lineCommentSyntax_Syn_Token :: SyntaxUsed, multilineCommentSyntax_Syn_Token :: SyntaxUsed, neqSyntax_Syn_Token :: SyntaxUsed, nextTokenPos_Syn_Token :: LineColPos, notSyntax_Syn_Token :: SyntaxUsed, orSyntax_Syn_Token :: SyntaxUsed, strSyntax_Syn_Token :: SyntaxUsed, tokenWarnings_Syn_Token :: ([Issue]), warnings_Syn_Token :: ([FilePath -> LintMessage])}
wrap_Token
  :: T_Token
  -> Inh_Token
  -> Syn_Token
wrap_Token sem (Inh_Token _lhsIandSyntax _lhsIconfig _lhsIindentation _lhsIlineCommentSyntax _lhsImultilineCommentSyntax _lhsIneqSyntax _lhsInextTokenPos _lhsInotSyntax _lhsIorSyntax _lhsIstrSyntax) =
  ( let
      (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings) = sem _lhsIandSyntax _lhsIconfig _lhsIindentation _lhsIlineCommentSyntax _lhsImultilineCommentSyntax _lhsIneqSyntax _lhsInextTokenPos _lhsInotSyntax _lhsIorSyntax _lhsIstrSyntax
    in
      (Syn_Token _lhsOandSyntax _lhsOcopy _lhsOcustomWarnings _lhsOindentation _lhsOlineCommentSyntax _lhsOmultilineCommentSyntax _lhsOneqSyntax _lhsOnextTokenPos _lhsOnotSyntax _lhsOorSyntax _lhsOstrSyntax _lhsOtokenWarnings _lhsOwarnings)
  )
sem_Token_Whitespace
  :: String
  -> T_Token
sem_Token_Whitespace space_ =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Whitespace space_
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _customWarnings_augmented_syn ->
                                ( case ( ( _lhsInextTokenPos
                                         )
                                       ) of
                                    _curTokenPos ->
                                      ( case ( ( customAdvanceStr _curTokenPos space_
                                               )
                                             ) of
                                          _nextTokenPos ->
                                            ( case ( ( Region (indentationStart _curTokenPos space_) _nextTokenPos
                                                     )
                                                   ) of
                                                _indentationRg ->
                                                  ( case ( ( locateTrailingWhitespace _curTokenPos space_
                                                           )
                                                         ) of
                                                      _whitespaceStart ->
                                                        ( case ( ( endOfTrailingWhitespace _whitespaceStart
                                                                 )
                                                               ) of
                                                            _whitespaceEnd ->
                                                              ( case ( ( _lhsIindentation <> SyntaxUsed (isInfixOf "\n " space_) (isInfixOf "\n\t" space_)
                                                                       )
                                                                     ) of
                                                                  _whitespaceUsed ->
                                                                    ( case ( ( luaUsed _whitespaceUsed && cUsed _whitespaceUsed
                                                                             )
                                                                           ) of
                                                                        _inconsistent ->
                                                                          ( case ( ( if not (lint_trailingWhitespace _lhsIconfig) || (not (isInfixOf " \n" space_) && not (isInfixOf "\t\n" space_)) then id else (:) $ mTokenWarning (Region (fst _whitespaceStart) _whitespaceEnd) TrailingWhitespace
                                                                                   )
                                                                                 ) of
                                                                              _customWarnings_augmented_f2 ->
                                                                                ( case ( ( if not (lint_whitespaceStyle _lhsIconfig) || not _inconsistent
                                                                                            then id
                                                                                            else (:) $ mTokenWarning _indentationRg InconsistentTabsSpaces
                                                                                         )
                                                                                       ) of
                                                                                    _customWarnings_augmented_f1 ->
                                                                                      ( case ( ( foldr ($) _customWarnings_augmented_syn [_customWarnings_augmented_f1, _customWarnings_augmented_f2]
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOcustomWarnings ->
                                                                                            ( case ( ( if _inconsistent then mempty else _whitespaceUsed
                                                                                                     )
                                                                                                   ) of
                                                                                                _indentation ->
                                                                                                  ( case ( ( _indentation
                                                                                                           )
                                                                                                         ) of
                                                                                                      _lhsOindentation ->
                                                                                                        ( case ( ( _lhsIlineCommentSyntax
                                                                                                                 )
                                                                                                               ) of
                                                                                                            _lhsOlineCommentSyntax ->
                                                                                                              ( case ( ( _lhsImultilineCommentSyntax
                                                                                                                       )
                                                                                                                     ) of
                                                                                                                  _lhsOmultilineCommentSyntax ->
                                                                                                                    ( case ( ( _lhsIneqSyntax
                                                                                                                             )
                                                                                                                           ) of
                                                                                                                        _lhsOneqSyntax ->
                                                                                                                          ( case ( ( _nextTokenPos
                                                                                                                                   )
                                                                                                                                 ) of
                                                                                                                              _lhsOnextTokenPos ->
                                                                                                                                ( case ( ( _lhsInotSyntax
                                                                                                                                         )
                                                                                                                                       ) of
                                                                                                                                    _lhsOnotSyntax ->
                                                                                                                                      ( case ( ( _lhsIorSyntax
                                                                                                                                               )
                                                                                                                                             ) of
                                                                                                                                          _lhsOorSyntax ->
                                                                                                                                            ( case ( ( _lhsIstrSyntax
                                                                                                                                                     )
                                                                                                                                                   ) of
                                                                                                                                                _lhsOstrSyntax ->
                                                                                                                                                  ( case ( ( []
                                                                                                                                                           )
                                                                                                                                                         ) of
                                                                                                                                                      _lhsOtokenWarnings ->
                                                                                                                                                        ( case ( ( []
                                                                                                                                                                 )
                                                                                                                                                               ) of
                                                                                                                                                            _lhsOwarnings ->
                                                                                                                                                              (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                                                                                        )
                                                                                                                                                  )
                                                                                                                                            )
                                                                                                                                      )
                                                                                                                                )
                                                                                                                          )
                                                                                                                    )
                                                                                                              )
                                                                                                        )
                                                                                                  )
                                                                                            )
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_DashComment
  :: String
  -> T_Token
sem_Token_DashComment comment_ =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( DashComment comment_
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( (not . lint_syntaxInconsistencies $ _lhsIconfig) || (not . cUsed $ _lhsIlineCommentSyntax)
                                               )
                                             ) of
                                          _consistent ->
                                            ( case ( ( SyntaxUsed _consistent False
                                                     )
                                                   ) of
                                                _lineCommentSyntax ->
                                                  ( case ( ( _lineCommentSyntax
                                                           )
                                                         ) of
                                                      _lhsOlineCommentSyntax ->
                                                        ( case ( ( _lhsImultilineCommentSyntax
                                                                 )
                                                               ) of
                                                            _lhsOmultilineCommentSyntax ->
                                                              ( case ( ( _lhsIneqSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOneqSyntax ->
                                                                    ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                             )
                                                                           ) of
                                                                        _lhsOnextTokenPos ->
                                                                          ( case ( ( _lhsInotSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOnotSyntax ->
                                                                                ( case ( ( _lhsIorSyntax
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOorSyntax ->
                                                                                      ( case ( ( _lhsIstrSyntax
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOstrSyntax ->
                                                                                            ( case ( ( []
                                                                                                     )
                                                                                                   ) of
                                                                                                _tokenWarnings_augmented_syn ->
                                                                                                  ( case ( ( if _consistent
                                                                                                              then id
                                                                                                              else (:) $ SyntaxInconsistency "--" "//"
                                                                                                           )
                                                                                                         ) of
                                                                                                      _tokenWarnings_augmented_f1 ->
                                                                                                        ( case ( ( foldr ($) _tokenWarnings_augmented_syn [_tokenWarnings_augmented_f1]
                                                                                                                 )
                                                                                                               ) of
                                                                                                            _lhsOtokenWarnings ->
                                                                                                              ( case ( ( []
                                                                                                                       )
                                                                                                                     ) of
                                                                                                                  _lhsOwarnings ->
                                                                                                                    (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                                              )
                                                                                                        )
                                                                                                  )
                                                                                            )
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_DashBlockComment
  :: Int
  -> String
  -> T_Token
sem_Token_DashBlockComment depth_ comment_ =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( DashBlockComment depth_ comment_
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( (not . lint_syntaxInconsistencies $ _lhsIconfig) || (not . cUsed $ _lhsImultilineCommentSyntax)
                                                     )
                                                   ) of
                                                _consistent ->
                                                  ( case ( ( SyntaxUsed _consistent False
                                                           )
                                                         ) of
                                                      _multilineCommentSyntax ->
                                                        ( case ( ( _multilineCommentSyntax
                                                                 )
                                                               ) of
                                                            _lhsOmultilineCommentSyntax ->
                                                              ( case ( ( _lhsIneqSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOneqSyntax ->
                                                                    ( case ( ( showString "--[" . showString (replicate depth_ '-') . showChar '[' . showString comment_ . showChar ']' . showString (replicate depth_ '-') . showChar ']' $ ""
                                                                             )
                                                                           ) of
                                                                        _str ->
                                                                          ( case ( ( customAdvanceStr _lhsInextTokenPos _str
                                                                                   )
                                                                                 ) of
                                                                              _lhsOnextTokenPos ->
                                                                                ( case ( ( _lhsInotSyntax
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOnotSyntax ->
                                                                                      ( case ( ( _lhsIorSyntax
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOorSyntax ->
                                                                                            ( case ( ( _lhsIstrSyntax
                                                                                                     )
                                                                                                   ) of
                                                                                                _lhsOstrSyntax ->
                                                                                                  ( case ( ( []
                                                                                                           )
                                                                                                         ) of
                                                                                                      _tokenWarnings_augmented_syn ->
                                                                                                        ( case ( ( if _consistent
                                                                                                                    then id
                                                                                                                    else (:) $ SyntaxInconsistency "--[[ ]]" "/* */"
                                                                                                                 )
                                                                                                               ) of
                                                                                                            _tokenWarnings_augmented_f1 ->
                                                                                                              ( case ( ( foldr ($) _tokenWarnings_augmented_syn [_tokenWarnings_augmented_f1]
                                                                                                                       )
                                                                                                                     ) of
                                                                                                                  _lhsOtokenWarnings ->
                                                                                                                    ( case ( ( []
                                                                                                                             )
                                                                                                                           ) of
                                                                                                                        _lhsOwarnings ->
                                                                                                                          (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                                                    )
                                                                                                              )
                                                                                                        )
                                                                                                  )
                                                                                            )
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_SlashComment
  :: String
  -> T_Token
sem_Token_SlashComment comment_ =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( SlashComment comment_
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( (not . lint_syntaxInconsistencies $ _lhsIconfig) || (not . luaUsed $ _lhsIlineCommentSyntax)
                                               )
                                             ) of
                                          _consistent ->
                                            ( case ( ( SyntaxUsed False _consistent
                                                     )
                                                   ) of
                                                _lineCommentSyntax ->
                                                  ( case ( ( _lineCommentSyntax
                                                           )
                                                         ) of
                                                      _lhsOlineCommentSyntax ->
                                                        ( case ( ( _lhsImultilineCommentSyntax
                                                                 )
                                                               ) of
                                                            _lhsOmultilineCommentSyntax ->
                                                              ( case ( ( _lhsIneqSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOneqSyntax ->
                                                                    ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                             )
                                                                           ) of
                                                                        _lhsOnextTokenPos ->
                                                                          ( case ( ( _lhsInotSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOnotSyntax ->
                                                                                ( case ( ( _lhsIorSyntax
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOorSyntax ->
                                                                                      ( case ( ( _lhsIstrSyntax
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOstrSyntax ->
                                                                                            ( case ( ( []
                                                                                                     )
                                                                                                   ) of
                                                                                                _tokenWarnings_augmented_syn ->
                                                                                                  ( case ( ( if _consistent
                                                                                                              then id
                                                                                                              else (:) $ SyntaxInconsistency "//" "--"
                                                                                                           )
                                                                                                         ) of
                                                                                                      _tokenWarnings_augmented_f1 ->
                                                                                                        ( case ( ( foldr ($) _tokenWarnings_augmented_syn [_tokenWarnings_augmented_f1]
                                                                                                                 )
                                                                                                               ) of
                                                                                                            _lhsOtokenWarnings ->
                                                                                                              ( case ( ( []
                                                                                                                       )
                                                                                                                     ) of
                                                                                                                  _lhsOwarnings ->
                                                                                                                    (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                                              )
                                                                                                        )
                                                                                                  )
                                                                                            )
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_SlashBlockComment
  :: String
  -> T_Token
sem_Token_SlashBlockComment comment_ =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( SlashBlockComment comment_
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( (not . lint_syntaxInconsistencies $ _lhsIconfig) || (not . luaUsed $ _lhsImultilineCommentSyntax)
                                                     )
                                                   ) of
                                                _consistent ->
                                                  ( case ( ( SyntaxUsed False _consistent
                                                           )
                                                         ) of
                                                      _multilineCommentSyntax ->
                                                        ( case ( ( _multilineCommentSyntax
                                                                 )
                                                               ) of
                                                            _lhsOmultilineCommentSyntax ->
                                                              ( case ( ( _lhsIneqSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOneqSyntax ->
                                                                    ( case ( ( showString "/*" . showString comment_ . showString "*/" $ ""
                                                                             )
                                                                           ) of
                                                                        _str ->
                                                                          ( case ( ( customAdvanceStr _lhsInextTokenPos _str
                                                                                   )
                                                                                 ) of
                                                                              _lhsOnextTokenPos ->
                                                                                ( case ( ( _lhsInotSyntax
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOnotSyntax ->
                                                                                      ( case ( ( _lhsIorSyntax
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOorSyntax ->
                                                                                            ( case ( ( _lhsIstrSyntax
                                                                                                     )
                                                                                                   ) of
                                                                                                _lhsOstrSyntax ->
                                                                                                  ( case ( ( []
                                                                                                           )
                                                                                                         ) of
                                                                                                      _tokenWarnings_augmented_syn ->
                                                                                                        ( case ( ( if _consistent
                                                                                                                    then id
                                                                                                                    else (:) $ SyntaxInconsistency "/* */" "--[[ ]]"
                                                                                                                 )
                                                                                                               ) of
                                                                                                            _tokenWarnings_augmented_f1 ->
                                                                                                              ( case ( ( foldr ($) _tokenWarnings_augmented_syn [_tokenWarnings_augmented_f1]
                                                                                                                       )
                                                                                                                     ) of
                                                                                                                  _lhsOtokenWarnings ->
                                                                                                                    ( case ( ( []
                                                                                                                             )
                                                                                                                           ) of
                                                                                                                        _lhsOwarnings ->
                                                                                                                          (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                                                    )
                                                                                                              )
                                                                                                        )
                                                                                                  )
                                                                                            )
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Semicolon :: T_Token
sem_Token_Semicolon =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Semicolon
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_TNumber
  :: String
  -> T_Token
sem_Token_TNumber num_ =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( TNumber num_
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_DQString
  :: String
  -> T_Token
sem_Token_DQString str_ =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( DQString str_
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceStr _lhsInextTokenPos str_
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( (not . lint_syntaxInconsistencies $ _lhsIconfig) || (not . cUsed $ _lhsIstrSyntax)
                                                                                   )
                                                                                 ) of
                                                                              _consistent ->
                                                                                ( case ( ( SyntaxUsed _consistent False
                                                                                         )
                                                                                       ) of
                                                                                    _strSyntax ->
                                                                                      ( case ( ( _strSyntax
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOstrSyntax ->
                                                                                            ( case ( ( []
                                                                                                     )
                                                                                                   ) of
                                                                                                _tokenWarnings_augmented_syn ->
                                                                                                  ( case ( ( if _consistent
                                                                                                              then id
                                                                                                              else (:) $ SyntaxInconsistency "double quoted strings" "single quoted strings"
                                                                                                           )
                                                                                                         ) of
                                                                                                      _tokenWarnings_augmented_f1 ->
                                                                                                        ( case ( ( foldr ($) _tokenWarnings_augmented_syn [_tokenWarnings_augmented_f1]
                                                                                                                 )
                                                                                                               ) of
                                                                                                            _lhsOtokenWarnings ->
                                                                                                              ( case ( ( []
                                                                                                                       )
                                                                                                                     ) of
                                                                                                                  _lhsOwarnings ->
                                                                                                                    (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                                              )
                                                                                                        )
                                                                                                  )
                                                                                            )
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_SQString
  :: String
  -> T_Token
sem_Token_SQString str_ =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( SQString str_
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceStr _lhsInextTokenPos str_
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( (not . lint_syntaxInconsistencies $ _lhsIconfig) || (not . luaUsed $ _lhsIstrSyntax) || isSingleChar str_
                                                                                   )
                                                                                 ) of
                                                                              _consistent ->
                                                                                ( case ( ( SyntaxUsed False (_consistent && not (isSingleChar str_))
                                                                                         )
                                                                                       ) of
                                                                                    _strSyntax ->
                                                                                      ( case ( ( _strSyntax
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOstrSyntax ->
                                                                                            ( case ( ( []
                                                                                                     )
                                                                                                   ) of
                                                                                                _tokenWarnings_augmented_syn ->
                                                                                                  ( case ( ( if _consistent
                                                                                                              then id
                                                                                                              else (:) $ SyntaxInconsistency "single quoted strings" "double quoted strings"
                                                                                                           )
                                                                                                         ) of
                                                                                                      _tokenWarnings_augmented_f1 ->
                                                                                                        ( case ( ( foldr ($) _tokenWarnings_augmented_syn [_tokenWarnings_augmented_f1]
                                                                                                                 )
                                                                                                               ) of
                                                                                                            _lhsOtokenWarnings ->
                                                                                                              ( case ( ( []
                                                                                                                       )
                                                                                                                     ) of
                                                                                                                  _lhsOwarnings ->
                                                                                                                    (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                                              )
                                                                                                        )
                                                                                                  )
                                                                                            )
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_MLString
  :: String
  -> T_Token
sem_Token_MLString str_ =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( MLString str_
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceStr _lhsInextTokenPos str_
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_TTrue :: T_Token
sem_Token_TTrue =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( TTrue
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_TFalse :: T_Token
sem_Token_TFalse =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( TFalse
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Nil :: T_Token
sem_Token_Nil =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Nil
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_VarArg :: T_Token
sem_Token_VarArg =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( VarArg
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Plus :: T_Token
sem_Token_Plus =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Plus
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Minus :: T_Token
sem_Token_Minus =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Minus
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Multiply :: T_Token
sem_Token_Multiply =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Multiply
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Divide :: T_Token
sem_Token_Divide =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Divide
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Modulus :: T_Token
sem_Token_Modulus =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Modulus
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Power :: T_Token
sem_Token_Power =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Power
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_TEq :: T_Token
sem_Token_TEq =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( TEq
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_TNEq :: T_Token
sem_Token_TNEq =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( TNEq
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( (not . lint_syntaxInconsistencies $ _lhsIconfig) || (not . cUsed $ _lhsIneqSyntax)
                                                           )
                                                         ) of
                                                      _consistent ->
                                                        ( case ( ( SyntaxUsed _consistent False
                                                                 )
                                                               ) of
                                                            _neqSyntax ->
                                                              ( case ( ( _neqSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOneqSyntax ->
                                                                    ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                             )
                                                                           ) of
                                                                        _lhsOnextTokenPos ->
                                                                          ( case ( ( _lhsInotSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOnotSyntax ->
                                                                                ( case ( ( _lhsIorSyntax
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOorSyntax ->
                                                                                      ( case ( ( _lhsIstrSyntax
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOstrSyntax ->
                                                                                            ( case ( ( []
                                                                                                     )
                                                                                                   ) of
                                                                                                _tokenWarnings_augmented_syn ->
                                                                                                  ( case ( ( if _consistent
                                                                                                              then id
                                                                                                              else (:) $ SyntaxInconsistency "~=" "!="
                                                                                                           )
                                                                                                         ) of
                                                                                                      _tokenWarnings_augmented_f1 ->
                                                                                                        ( case ( ( foldr ($) _tokenWarnings_augmented_syn [_tokenWarnings_augmented_f1]
                                                                                                                 )
                                                                                                               ) of
                                                                                                            _lhsOtokenWarnings ->
                                                                                                              ( case ( ( []
                                                                                                                       )
                                                                                                                     ) of
                                                                                                                  _lhsOwarnings ->
                                                                                                                    (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                                              )
                                                                                                        )
                                                                                                  )
                                                                                            )
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_TCNEq :: T_Token
sem_Token_TCNEq =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( TCNEq
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( (not . lint_syntaxInconsistencies $ _lhsIconfig) || (not . luaUsed $ _lhsIneqSyntax)
                                                           )
                                                         ) of
                                                      _consistent ->
                                                        ( case ( ( SyntaxUsed False _consistent
                                                                 )
                                                               ) of
                                                            _neqSyntax ->
                                                              ( case ( ( _neqSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOneqSyntax ->
                                                                    ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                             )
                                                                           ) of
                                                                        _lhsOnextTokenPos ->
                                                                          ( case ( ( _lhsInotSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOnotSyntax ->
                                                                                ( case ( ( _lhsIorSyntax
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOorSyntax ->
                                                                                      ( case ( ( _lhsIstrSyntax
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOstrSyntax ->
                                                                                            ( case ( ( []
                                                                                                     )
                                                                                                   ) of
                                                                                                _tokenWarnings_augmented_syn ->
                                                                                                  ( case ( ( if _consistent
                                                                                                              then id
                                                                                                              else (:) $ SyntaxInconsistency "!=" "~="
                                                                                                           )
                                                                                                         ) of
                                                                                                      _tokenWarnings_augmented_f1 ->
                                                                                                        ( case ( ( foldr ($) _tokenWarnings_augmented_syn [_tokenWarnings_augmented_f1]
                                                                                                                 )
                                                                                                               ) of
                                                                                                            _lhsOtokenWarnings ->
                                                                                                              ( case ( ( []
                                                                                                                       )
                                                                                                                     ) of
                                                                                                                  _lhsOwarnings ->
                                                                                                                    (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                                              )
                                                                                                        )
                                                                                                  )
                                                                                            )
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_TLEQ :: T_Token
sem_Token_TLEQ =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( TLEQ
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_TGEQ :: T_Token
sem_Token_TGEQ =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( TGEQ
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_TLT :: T_Token
sem_Token_TLT =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( TLT
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_TGT :: T_Token
sem_Token_TGT =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( TGT
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Equals :: T_Token
sem_Token_Equals =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Equals
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Concatenate :: T_Token
sem_Token_Concatenate =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Concatenate
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Colon :: T_Token
sem_Token_Colon =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Colon
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Dot :: T_Token
sem_Token_Dot =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Dot
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Comma :: T_Token
sem_Token_Comma =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Comma
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Hash :: T_Token
sem_Token_Hash =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Hash
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Not :: T_Token
sem_Token_Not =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Not
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( (not . lint_syntaxInconsistencies $ _lhsIconfig) || (not . cUsed $ _lhsInotSyntax)
                                                                       )
                                                                     ) of
                                                                  _consistent ->
                                                                    ( case ( ( SyntaxUsed _consistent False
                                                                             )
                                                                           ) of
                                                                        _notSyntax ->
                                                                          ( case ( ( _notSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOnotSyntax ->
                                                                                ( case ( ( _lhsIorSyntax
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOorSyntax ->
                                                                                      ( case ( ( _lhsIstrSyntax
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOstrSyntax ->
                                                                                            ( case ( ( []
                                                                                                     )
                                                                                                   ) of
                                                                                                _tokenWarnings_augmented_syn ->
                                                                                                  ( case ( ( if _consistent
                                                                                                              then id
                                                                                                              else (:) $ SyntaxInconsistency "not" "!"
                                                                                                           )
                                                                                                         ) of
                                                                                                      _tokenWarnings_augmented_f1 ->
                                                                                                        ( case ( ( foldr ($) _tokenWarnings_augmented_syn [_tokenWarnings_augmented_f1]
                                                                                                                 )
                                                                                                               ) of
                                                                                                            _lhsOtokenWarnings ->
                                                                                                              ( case ( ( []
                                                                                                                       )
                                                                                                                     ) of
                                                                                                                  _lhsOwarnings ->
                                                                                                                    (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                                              )
                                                                                                        )
                                                                                                  )
                                                                                            )
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_CNot :: T_Token
sem_Token_CNot =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( CNot
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( (not . lint_syntaxInconsistencies $ _lhsIconfig) || (not . luaUsed $ _lhsInotSyntax)
                                                                       )
                                                                     ) of
                                                                  _consistent ->
                                                                    ( case ( ( SyntaxUsed False _consistent
                                                                             )
                                                                           ) of
                                                                        _notSyntax ->
                                                                          ( case ( ( _notSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOnotSyntax ->
                                                                                ( case ( ( _lhsIorSyntax
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOorSyntax ->
                                                                                      ( case ( ( _lhsIstrSyntax
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOstrSyntax ->
                                                                                            ( case ( ( []
                                                                                                     )
                                                                                                   ) of
                                                                                                _tokenWarnings_augmented_syn ->
                                                                                                  ( case ( ( if _consistent
                                                                                                              then id
                                                                                                              else (:) $ SyntaxInconsistency "!" "not"
                                                                                                           )
                                                                                                         ) of
                                                                                                      _tokenWarnings_augmented_f1 ->
                                                                                                        ( case ( ( foldr ($) _tokenWarnings_augmented_syn [_tokenWarnings_augmented_f1]
                                                                                                                 )
                                                                                                               ) of
                                                                                                            _lhsOtokenWarnings ->
                                                                                                              ( case ( ( []
                                                                                                                       )
                                                                                                                     ) of
                                                                                                                  _lhsOwarnings ->
                                                                                                                    (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                                              )
                                                                                                        )
                                                                                                  )
                                                                                            )
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_And :: T_Token
sem_Token_And =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( (not . lint_syntaxInconsistencies $ _lhsIconfig) || (not . cUsed $ _lhsIandSyntax)
                 )
               ) of
            _consistent ->
              ( case ( ( SyntaxUsed _consistent False
                       )
                     ) of
                  _andSyntax ->
                    ( case ( ( _andSyntax
                             )
                           ) of
                        _lhsOandSyntax ->
                          ( case ( ( And
                                   )
                                 ) of
                              _copy ->
                                ( case ( ( _copy
                                         )
                                       ) of
                                    _lhsOcopy ->
                                      ( case ( ( []
                                               )
                                             ) of
                                          _lhsOcustomWarnings ->
                                            ( case ( ( _lhsIindentation
                                                     )
                                                   ) of
                                                _lhsOindentation ->
                                                  ( case ( ( _lhsIlineCommentSyntax
                                                           )
                                                         ) of
                                                      _lhsOlineCommentSyntax ->
                                                        ( case ( ( _lhsImultilineCommentSyntax
                                                                 )
                                                               ) of
                                                            _lhsOmultilineCommentSyntax ->
                                                              ( case ( ( _lhsIneqSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOneqSyntax ->
                                                                    ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                             )
                                                                           ) of
                                                                        _lhsOnextTokenPos ->
                                                                          ( case ( ( _lhsInotSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOnotSyntax ->
                                                                                ( case ( ( _lhsIorSyntax
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOorSyntax ->
                                                                                      ( case ( ( _lhsIstrSyntax
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOstrSyntax ->
                                                                                            ( case ( ( []
                                                                                                     )
                                                                                                   ) of
                                                                                                _tokenWarnings_augmented_syn ->
                                                                                                  ( case ( ( if _consistent
                                                                                                              then id
                                                                                                              else (:) $ SyntaxInconsistency "and" "&&"
                                                                                                           )
                                                                                                         ) of
                                                                                                      _tokenWarnings_augmented_f1 ->
                                                                                                        ( case ( ( foldr ($) _tokenWarnings_augmented_syn [_tokenWarnings_augmented_f1]
                                                                                                                 )
                                                                                                               ) of
                                                                                                            _lhsOtokenWarnings ->
                                                                                                              ( case ( ( []
                                                                                                                       )
                                                                                                                     ) of
                                                                                                                  _lhsOwarnings ->
                                                                                                                    (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                                              )
                                                                                                        )
                                                                                                  )
                                                                                            )
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_CAnd :: T_Token
sem_Token_CAnd =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( (not . lint_syntaxInconsistencies $ _lhsIconfig) || (not . luaUsed $ _lhsIandSyntax)
                 )
               ) of
            _consistent ->
              ( case ( ( SyntaxUsed False _consistent
                       )
                     ) of
                  _andSyntax ->
                    ( case ( ( _andSyntax
                             )
                           ) of
                        _lhsOandSyntax ->
                          ( case ( ( CAnd
                                   )
                                 ) of
                              _copy ->
                                ( case ( ( _copy
                                         )
                                       ) of
                                    _lhsOcopy ->
                                      ( case ( ( []
                                               )
                                             ) of
                                          _lhsOcustomWarnings ->
                                            ( case ( ( _lhsIindentation
                                                     )
                                                   ) of
                                                _lhsOindentation ->
                                                  ( case ( ( _lhsIlineCommentSyntax
                                                           )
                                                         ) of
                                                      _lhsOlineCommentSyntax ->
                                                        ( case ( ( _lhsImultilineCommentSyntax
                                                                 )
                                                               ) of
                                                            _lhsOmultilineCommentSyntax ->
                                                              ( case ( ( _lhsIneqSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOneqSyntax ->
                                                                    ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                             )
                                                                           ) of
                                                                        _lhsOnextTokenPos ->
                                                                          ( case ( ( _lhsInotSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOnotSyntax ->
                                                                                ( case ( ( _lhsIorSyntax
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOorSyntax ->
                                                                                      ( case ( ( _lhsIstrSyntax
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOstrSyntax ->
                                                                                            ( case ( ( []
                                                                                                     )
                                                                                                   ) of
                                                                                                _tokenWarnings_augmented_syn ->
                                                                                                  ( case ( ( if _consistent
                                                                                                              then id
                                                                                                              else (:) $ SyntaxInconsistency "&&" "and"
                                                                                                           )
                                                                                                         ) of
                                                                                                      _tokenWarnings_augmented_f1 ->
                                                                                                        ( case ( ( foldr ($) _tokenWarnings_augmented_syn [_tokenWarnings_augmented_f1]
                                                                                                                 )
                                                                                                               ) of
                                                                                                            _lhsOtokenWarnings ->
                                                                                                              ( case ( ( []
                                                                                                                       )
                                                                                                                     ) of
                                                                                                                  _lhsOwarnings ->
                                                                                                                    (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                                              )
                                                                                                        )
                                                                                                  )
                                                                                            )
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Or :: T_Token
sem_Token_Or =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Or
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( (not . lint_syntaxInconsistencies $ _lhsIconfig) || (not . cUsed $ _lhsIorSyntax)
                                                                             )
                                                                           ) of
                                                                        _consistent ->
                                                                          ( case ( ( SyntaxUsed _consistent False
                                                                                   )
                                                                                 ) of
                                                                              _orSyntax ->
                                                                                ( case ( ( _orSyntax
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOorSyntax ->
                                                                                      ( case ( ( _lhsIstrSyntax
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOstrSyntax ->
                                                                                            ( case ( ( []
                                                                                                     )
                                                                                                   ) of
                                                                                                _tokenWarnings_augmented_syn ->
                                                                                                  ( case ( ( if _consistent
                                                                                                              then id
                                                                                                              else (:) $ SyntaxInconsistency "or" "||"
                                                                                                           )
                                                                                                         ) of
                                                                                                      _tokenWarnings_augmented_f1 ->
                                                                                                        ( case ( ( foldr ($) _tokenWarnings_augmented_syn [_tokenWarnings_augmented_f1]
                                                                                                                 )
                                                                                                               ) of
                                                                                                            _lhsOtokenWarnings ->
                                                                                                              ( case ( ( []
                                                                                                                       )
                                                                                                                     ) of
                                                                                                                  _lhsOwarnings ->
                                                                                                                    (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                                              )
                                                                                                        )
                                                                                                  )
                                                                                            )
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_COr :: T_Token
sem_Token_COr =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( COr
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( (not . lint_syntaxInconsistencies $ _lhsIconfig) || (not . luaUsed $ _lhsIorSyntax)
                                                                             )
                                                                           ) of
                                                                        _consistent ->
                                                                          ( case ( ( SyntaxUsed False _consistent
                                                                                   )
                                                                                 ) of
                                                                              _orSyntax ->
                                                                                ( case ( ( _orSyntax
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOorSyntax ->
                                                                                      ( case ( ( _lhsIstrSyntax
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOstrSyntax ->
                                                                                            ( case ( ( []
                                                                                                     )
                                                                                                   ) of
                                                                                                _tokenWarnings_augmented_syn ->
                                                                                                  ( case ( ( if _consistent
                                                                                                              then id
                                                                                                              else (:) $ SyntaxInconsistency "||" "or"
                                                                                                           )
                                                                                                         ) of
                                                                                                      _tokenWarnings_augmented_f1 ->
                                                                                                        ( case ( ( foldr ($) _tokenWarnings_augmented_syn [_tokenWarnings_augmented_f1]
                                                                                                                 )
                                                                                                               ) of
                                                                                                            _lhsOtokenWarnings ->
                                                                                                              ( case ( ( []
                                                                                                                       )
                                                                                                                     ) of
                                                                                                                  _lhsOwarnings ->
                                                                                                                    (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                                              )
                                                                                                        )
                                                                                                  )
                                                                                            )
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Function :: T_Token
sem_Token_Function =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Function
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Local :: T_Token
sem_Token_Local =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Local
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_If :: T_Token
sem_Token_If =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( If
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Then :: T_Token
sem_Token_Then =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Then
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Elseif :: T_Token
sem_Token_Elseif =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Elseif
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Else :: T_Token
sem_Token_Else =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Else
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_For :: T_Token
sem_Token_For =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( For
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_In :: T_Token
sem_Token_In =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( In
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Do :: T_Token
sem_Token_Do =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Do
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_While :: T_Token
sem_Token_While =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( While
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Until :: T_Token
sem_Token_Until =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Until
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Repeat :: T_Token
sem_Token_Repeat =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Repeat
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Continue :: T_Token
sem_Token_Continue =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Continue
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Break :: T_Token
sem_Token_Break =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Break
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Return :: T_Token
sem_Token_Return =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Return
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_End :: T_Token
sem_Token_End =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( End
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_LRound :: T_Token
sem_Token_LRound =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( LRound
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_RRound :: T_Token
sem_Token_RRound =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( RRound
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_LCurly :: T_Token
sem_Token_LCurly =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( LCurly
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_RCurly :: T_Token
sem_Token_RCurly =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( RCurly
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_LSquare :: T_Token
sem_Token_LSquare =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( LSquare
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_RSquare :: T_Token
sem_Token_RSquare =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( RSquare
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Label
  :: String
  -> String
  -> String
  -> T_Token
sem_Token_Label whitespaceBefore_ lbl_ whitespaceAfter_ =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Label whitespaceBefore_ lbl_ whitespaceAfter_
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceStr _lhsInextTokenPos (show _copy)
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_Token_Identifier
  :: String
  -> T_Token
sem_Token_Identifier ident_ =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( Identifier ident_
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( []
                                   )
                                 ) of
                              _lhsOcustomWarnings ->
                                ( case ( ( _lhsIindentation
                                         )
                                       ) of
                                    _lhsOindentation ->
                                      ( case ( ( _lhsIlineCommentSyntax
                                               )
                                             ) of
                                          _lhsOlineCommentSyntax ->
                                            ( case ( ( _lhsImultilineCommentSyntax
                                                     )
                                                   ) of
                                                _lhsOmultilineCommentSyntax ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _lhsOneqSyntax ->
                                                        ( case ( ( customAdvanceToken _lhsInextTokenPos _copy
                                                                 )
                                                               ) of
                                                            _lhsOnextTokenPos ->
                                                              ( case ( ( _lhsInotSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOnotSyntax ->
                                                                    ( case ( ( _lhsIorSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOorSyntax ->
                                                                          ( case ( ( _lhsIstrSyntax
                                                                                   )
                                                                                 ) of
                                                                              _lhsOstrSyntax ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOtokenWarnings ->
                                                                                      ( case ( ( []
                                                                                               )
                                                                                             ) of
                                                                                          _lhsOwarnings ->
                                                                                            (_lhsOandSyntax, _lhsOcopy, _lhsOcustomWarnings, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _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 =
  SyntaxUsed
  -> LintSettings
  -> SyntaxUsed
  -> SyntaxUsed
  -> SyntaxUsed
  -> SyntaxUsed
  -> LineColPos
  -> SyntaxUsed
  -> SyntaxUsed
  -> SyntaxUsed
  -> (SyntaxUsed, TokenList, SyntaxUsed, SyntaxUsed, SyntaxUsed, SyntaxUsed, LineColPos, SyntaxUsed, SyntaxUsed, SyntaxUsed, ([Issue]), ([FilePath -> LintMessage]))
data Inh_TokenList = Inh_TokenList {andSyntax_Inh_TokenList :: SyntaxUsed, config_Inh_TokenList :: LintSettings, indentation_Inh_TokenList :: SyntaxUsed, lineCommentSyntax_Inh_TokenList :: SyntaxUsed, multilineCommentSyntax_Inh_TokenList :: SyntaxUsed, neqSyntax_Inh_TokenList :: SyntaxUsed, nextTokenPos_Inh_TokenList :: LineColPos, notSyntax_Inh_TokenList :: SyntaxUsed, orSyntax_Inh_TokenList :: SyntaxUsed, strSyntax_Inh_TokenList :: SyntaxUsed}
data Syn_TokenList = Syn_TokenList {andSyntax_Syn_TokenList :: SyntaxUsed, copy_Syn_TokenList :: TokenList, indentation_Syn_TokenList :: SyntaxUsed, lineCommentSyntax_Syn_TokenList :: SyntaxUsed, multilineCommentSyntax_Syn_TokenList :: SyntaxUsed, neqSyntax_Syn_TokenList :: SyntaxUsed, nextTokenPos_Syn_TokenList :: LineColPos, notSyntax_Syn_TokenList :: SyntaxUsed, orSyntax_Syn_TokenList :: SyntaxUsed, strSyntax_Syn_TokenList :: SyntaxUsed, tokenWarnings_Syn_TokenList :: ([Issue]), warnings_Syn_TokenList :: ([FilePath -> LintMessage])}
wrap_TokenList
  :: T_TokenList
  -> Inh_TokenList
  -> Syn_TokenList
wrap_TokenList sem (Inh_TokenList _lhsIandSyntax _lhsIconfig _lhsIindentation _lhsIlineCommentSyntax _lhsImultilineCommentSyntax _lhsIneqSyntax _lhsInextTokenPos _lhsInotSyntax _lhsIorSyntax _lhsIstrSyntax) =
  ( let
      (_lhsOandSyntax, _lhsOcopy, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings) = sem _lhsIandSyntax _lhsIconfig _lhsIindentation _lhsIlineCommentSyntax _lhsImultilineCommentSyntax _lhsIneqSyntax _lhsInextTokenPos _lhsInotSyntax _lhsIorSyntax _lhsIstrSyntax
    in
      (Syn_TokenList _lhsOandSyntax _lhsOcopy _lhsOindentation _lhsOlineCommentSyntax _lhsOmultilineCommentSyntax _lhsOneqSyntax _lhsOnextTokenPos _lhsOnotSyntax _lhsOorSyntax _lhsOstrSyntax _lhsOtokenWarnings _lhsOwarnings)
  )
sem_TokenList_Cons
  :: T_Token
  -> T_TokenList
  -> T_TokenList
sem_TokenList_Cons hd_ tl_ =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIconfig
                 )
               ) of
            _tlOconfig ->
              ( case ( ( _lhsIconfig
                       )
                     ) of
                  _hdOconfig ->
                    ( case ( ( _lhsIandSyntax
                             )
                           ) of
                        _hdOandSyntax ->
                          ( case ( ( _lhsIstrSyntax
                                   )
                                 ) of
                              _hdOstrSyntax ->
                                ( case ( ( _lhsIorSyntax
                                         )
                                       ) of
                                    _hdOorSyntax ->
                                      ( case ( ( _lhsInotSyntax
                                               )
                                             ) of
                                          _hdOnotSyntax ->
                                            ( case ( ( _lhsInextTokenPos
                                                     )
                                                   ) of
                                                _hdOnextTokenPos ->
                                                  ( case ( ( _lhsIneqSyntax
                                                           )
                                                         ) of
                                                      _hdOneqSyntax ->
                                                        ( case ( ( _lhsImultilineCommentSyntax
                                                                 )
                                                               ) of
                                                            _hdOmultilineCommentSyntax ->
                                                              ( case ( ( _lhsIlineCommentSyntax
                                                                       )
                                                                     ) of
                                                                  _hdOlineCommentSyntax ->
                                                                    ( case ( ( _lhsIindentation
                                                                             )
                                                                           ) of
                                                                        _hdOindentation ->
                                                                          ( case (hd_ _hdOandSyntax _hdOconfig _hdOindentation _hdOlineCommentSyntax _hdOmultilineCommentSyntax _hdOneqSyntax _hdOnextTokenPos _hdOnotSyntax _hdOorSyntax _hdOstrSyntax) of
                                                                              (_hdIandSyntax, _hdIcopy, _hdIcustomWarnings, _hdIindentation, _hdIlineCommentSyntax, _hdImultilineCommentSyntax, _hdIneqSyntax, _hdInextTokenPos, _hdInotSyntax, _hdIorSyntax, _hdIstrSyntax, _hdItokenWarnings, _hdIwarnings) ->
                                                                                ( case ( ( _hdIandSyntax
                                                                                         )
                                                                                       ) of
                                                                                    _tlOandSyntax ->
                                                                                      ( case ( ( _hdIstrSyntax
                                                                                               )
                                                                                             ) of
                                                                                          _tlOstrSyntax ->
                                                                                            ( case ( ( _hdIorSyntax
                                                                                                     )
                                                                                                   ) of
                                                                                                _tlOorSyntax ->
                                                                                                  ( case ( ( _hdInotSyntax
                                                                                                           )
                                                                                                         ) of
                                                                                                      _tlOnotSyntax ->
                                                                                                        ( case ( ( _hdInextTokenPos
                                                                                                                 )
                                                                                                               ) of
                                                                                                            _tlOnextTokenPos ->
                                                                                                              ( case ( ( _hdIneqSyntax
                                                                                                                       )
                                                                                                                     ) of
                                                                                                                  _tlOneqSyntax ->
                                                                                                                    ( case ( ( _hdImultilineCommentSyntax
                                                                                                                             )
                                                                                                                           ) of
                                                                                                                        _tlOmultilineCommentSyntax ->
                                                                                                                          ( case ( ( _hdIlineCommentSyntax
                                                                                                                                   )
                                                                                                                                 ) of
                                                                                                                              _tlOlineCommentSyntax ->
                                                                                                                                ( case ( ( _hdIindentation
                                                                                                                                         )
                                                                                                                                       ) of
                                                                                                                                    _tlOindentation ->
                                                                                                                                      ( case (tl_ _tlOandSyntax _tlOconfig _tlOindentation _tlOlineCommentSyntax _tlOmultilineCommentSyntax _tlOneqSyntax _tlOnextTokenPos _tlOnotSyntax _tlOorSyntax _tlOstrSyntax) of
                                                                                                                                          (_tlIandSyntax, _tlIcopy, _tlIindentation, _tlIlineCommentSyntax, _tlImultilineCommentSyntax, _tlIneqSyntax, _tlInextTokenPos, _tlInotSyntax, _tlIorSyntax, _tlIstrSyntax, _tlItokenWarnings, _tlIwarnings) ->
                                                                                                                                            ( case ( ( _tlIandSyntax
                                                                                                                                                     )
                                                                                                                                                   ) of
                                                                                                                                                _lhsOandSyntax ->
                                                                                                                                                  ( case ( ( (:) _hdIcopy _tlIcopy
                                                                                                                                                           )
                                                                                                                                                         ) of
                                                                                                                                                      _copy ->
                                                                                                                                                        ( case ( ( _copy
                                                                                                                                                                 )
                                                                                                                                                               ) of
                                                                                                                                                            _lhsOcopy ->
                                                                                                                                                              ( case ( ( _tlIindentation
                                                                                                                                                                       )
                                                                                                                                                                     ) of
                                                                                                                                                                  _lhsOindentation ->
                                                                                                                                                                    ( case ( ( _tlIlineCommentSyntax
                                                                                                                                                                             )
                                                                                                                                                                           ) of
                                                                                                                                                                        _lhsOlineCommentSyntax ->
                                                                                                                                                                          ( case ( ( _tlImultilineCommentSyntax
                                                                                                                                                                                   )
                                                                                                                                                                                 ) of
                                                                                                                                                                              _lhsOmultilineCommentSyntax ->
                                                                                                                                                                                ( case ( ( _tlIneqSyntax
                                                                                                                                                                                         )
                                                                                                                                                                                       ) of
                                                                                                                                                                                    _lhsOneqSyntax ->
                                                                                                                                                                                      ( case ( ( _tlInextTokenPos
                                                                                                                                                                                               )
                                                                                                                                                                                             ) of
                                                                                                                                                                                          _lhsOnextTokenPos ->
                                                                                                                                                                                            ( case ( ( _tlInotSyntax
                                                                                                                                                                                                     )
                                                                                                                                                                                                   ) of
                                                                                                                                                                                                _lhsOnotSyntax ->
                                                                                                                                                                                                  ( case ( ( _tlIorSyntax
                                                                                                                                                                                                           )
                                                                                                                                                                                                         ) of
                                                                                                                                                                                                      _lhsOorSyntax ->
                                                                                                                                                                                                        ( case ( ( _tlIstrSyntax
                                                                                                                                                                                                                 )
                                                                                                                                                                                                               ) of
                                                                                                                                                                                                            _lhsOstrSyntax ->
                                                                                                                                                                                                              ( case ( ( _hdItokenWarnings ++ _tlItokenWarnings
                                                                                                                                                                                                                       )
                                                                                                                                                                                                                     ) of
                                                                                                                                                                                                                  _lhsOtokenWarnings ->
                                                                                                                                                                                                                    ( case ( ( _hdIwarnings ++ _tlIwarnings
                                                                                                                                                                                                                             )
                                                                                                                                                                                                                           ) of
                                                                                                                                                                                                                        _lhsOwarnings ->
                                                                                                                                                                                                                          (_lhsOandSyntax, _lhsOcopy, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                                                                                                                                                    )
                                                                                                                                                                                                              )
                                                                                                                                                                                                        )
                                                                                                                                                                                                  )
                                                                                                                                                                                            )
                                                                                                                                                                                      )
                                                                                                                                                                                )
                                                                                                                                                                          )
                                                                                                                                                                    )
                                                                                                                                                              )
                                                                                                                                                        )
                                                                                                                                                  )
                                                                                                                                            )
                                                                                                                                      )
                                                                                                                                )
                                                                                                                          )
                                                                                                                    )
                                                                                                              )
                                                                                                        )
                                                                                                  )
                                                                                            )
                                                                                      )
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )
sem_TokenList_Nil :: T_TokenList
sem_TokenList_Nil =
  ( \_lhsIandSyntax
     _lhsIconfig
     _lhsIindentation
     _lhsIlineCommentSyntax
     _lhsImultilineCommentSyntax
     _lhsIneqSyntax
     _lhsInextTokenPos
     _lhsInotSyntax
     _lhsIorSyntax
     _lhsIstrSyntax ->
        ( case ( ( _lhsIandSyntax
                 )
               ) of
            _lhsOandSyntax ->
              ( case ( ( []
                       )
                     ) of
                  _copy ->
                    ( case ( ( _copy
                             )
                           ) of
                        _lhsOcopy ->
                          ( case ( ( _lhsIindentation
                                   )
                                 ) of
                              _lhsOindentation ->
                                ( case ( ( _lhsIlineCommentSyntax
                                         )
                                       ) of
                                    _lhsOlineCommentSyntax ->
                                      ( case ( ( _lhsImultilineCommentSyntax
                                               )
                                             ) of
                                          _lhsOmultilineCommentSyntax ->
                                            ( case ( ( _lhsIneqSyntax
                                                     )
                                                   ) of
                                                _lhsOneqSyntax ->
                                                  ( case ( ( _lhsInextTokenPos
                                                           )
                                                         ) of
                                                      _lhsOnextTokenPos ->
                                                        ( case ( ( _lhsInotSyntax
                                                                 )
                                                               ) of
                                                            _lhsOnotSyntax ->
                                                              ( case ( ( _lhsIorSyntax
                                                                       )
                                                                     ) of
                                                                  _lhsOorSyntax ->
                                                                    ( case ( ( _lhsIstrSyntax
                                                                             )
                                                                           ) of
                                                                        _lhsOstrSyntax ->
                                                                          ( case ( ( []
                                                                                   )
                                                                                 ) of
                                                                              _lhsOtokenWarnings ->
                                                                                ( case ( ( []
                                                                                         )
                                                                                       ) of
                                                                                    _lhsOwarnings ->
                                                                                      (_lhsOandSyntax, _lhsOcopy, _lhsOindentation, _lhsOlineCommentSyntax, _lhsOmultilineCommentSyntax, _lhsOneqSyntax, _lhsOnextTokenPos, _lhsOnotSyntax, _lhsOorSyntax, _lhsOstrSyntax, _lhsOtokenWarnings, _lhsOwarnings)
                                                                                )
                                                                          )
                                                                    )
                                                              )
                                                        )
                                                  )
                                            )
                                      )
                                )
                          )
                    )
              )
        )
  )