packages feed

tiger-1.0: derived/TigerError.hs

-- UUAGC 0.9.5 (src/TigerError.ag)
module TigerError where


import TigerTypes
import UU.Scanner.Position
  
showField ident = show (getName ident)  
-- Error -------------------------------------------------------
data Error = AssignLoopcounter (Pos)
           | CompareOp (Pos) (String)
           | CyclicType (Ident)
           | DupRecordFieldDecl (Ident) (Pos)
           | DuplicateArg (Ident) (Ident) (Pos)
           | DuplicateFun (Ident) (Pos)
           | DuplicateType (Ident) (Pos)
           | FieldNotInit (Ident)
           | InitWithVoid (Pos)
           | NoSuchField (Pos) (Ident)
           | NotArrayType (Pos)
           | NotFunType (Ident)
           | NotRecordType (Pos)
           | NotVarType (Ident)
           | TooFewArguments (Ident)
           | TooManyArguments (Ident)
           | TypeMisMatch (TYPE) (TYPE)
           | UndeclaredFun (Ident)
           | UndeclaredType (Ident)
           | UndeclaredVar (Ident)
           | UnknownType (Pos)
-- cata
sem_Error :: Error ->
             T_Error
sem_Error (AssignLoopcounter _pos) =
    (sem_Error_AssignLoopcounter _pos)
sem_Error (CompareOp _pos _op) =
    (sem_Error_CompareOp _pos _op)
sem_Error (CyclicType _ident) =
    (sem_Error_CyclicType _ident)
sem_Error (DupRecordFieldDecl _ident _pos2) =
    (sem_Error_DupRecordFieldDecl _ident _pos2)
sem_Error (DuplicateArg _fun _ident _pos2) =
    (sem_Error_DuplicateArg _fun _ident _pos2)
sem_Error (DuplicateFun _ident _pos2) =
    (sem_Error_DuplicateFun _ident _pos2)
sem_Error (DuplicateType _ident _pos2) =
    (sem_Error_DuplicateType _ident _pos2)
sem_Error (FieldNotInit _field) =
    (sem_Error_FieldNotInit _field)
sem_Error (InitWithVoid _pos) =
    (sem_Error_InitWithVoid _pos)
sem_Error (NoSuchField _pos _field) =
    (sem_Error_NoSuchField _pos _field)
sem_Error (NotArrayType _pos) =
    (sem_Error_NotArrayType _pos)
sem_Error (NotFunType _ident) =
    (sem_Error_NotFunType _ident)
sem_Error (NotRecordType _pos) =
    (sem_Error_NotRecordType _pos)
sem_Error (NotVarType _ident) =
    (sem_Error_NotVarType _ident)
sem_Error (TooFewArguments _fun) =
    (sem_Error_TooFewArguments _fun)
sem_Error (TooManyArguments _fun) =
    (sem_Error_TooManyArguments _fun)
sem_Error (TypeMisMatch _expect _tp) =
    (sem_Error_TypeMisMatch _expect _tp)
sem_Error (UndeclaredFun _ident) =
    (sem_Error_UndeclaredFun _ident)
sem_Error (UndeclaredType _ident) =
    (sem_Error_UndeclaredType _ident)
sem_Error (UndeclaredVar _ident) =
    (sem_Error_UndeclaredVar _ident)
sem_Error (UnknownType _pos) =
    (sem_Error_UnknownType _pos)
-- semantic domain
type T_Error = ( String)
sem_Error_AssignLoopcounter :: Pos ->
                               T_Error
sem_Error_AssignLoopcounter pos_ =
    (let _lhsOmsg :: String
         _lhsOmsg =
             "at: " ++ show pos_ ++ ":" ++ "cannot assign to loop variable"
     in  ( _lhsOmsg))
sem_Error_CompareOp :: Pos ->
                       String ->
                       T_Error
sem_Error_CompareOp pos_ op_ =
    (let _lhsOmsg :: String
         _lhsOmsg =
             "at: " ++ show pos_ ++ ":" ++ " operator " ++ show op_ ++ " only defined for int and string"
     in  ( _lhsOmsg))
sem_Error_CyclicType :: Ident ->
                        T_Error
sem_Error_CyclicType ident_ =
    (let _lhsOmsg :: String
         _lhsOmsg =
             "cyclic type synonym: " ++ show ident_
     in  ( _lhsOmsg))
sem_Error_DupRecordFieldDecl :: Ident ->
                                Pos ->
                                T_Error
sem_Error_DupRecordFieldDecl ident_ pos2_ =
    (let _lhsOmsg :: String
         _lhsOmsg =
             "duplicate record field declaration: " ++ show ident_ ++ " other occurrence at: " ++ show pos2_
     in  ( _lhsOmsg))
sem_Error_DuplicateArg :: Ident ->
                          Ident ->
                          Pos ->
                          T_Error
sem_Error_DuplicateArg fun_ ident_ pos2_ =
    (let _lhsOmsg :: String
         _lhsOmsg =
             "duplicate formal argument declaration: " ++ show ident_ ++ " other occurrence at: " ++ show pos2_
     in  ( _lhsOmsg))
sem_Error_DuplicateFun :: Ident ->
                          Pos ->
                          T_Error
sem_Error_DuplicateFun ident_ pos2_ =
    (let _lhsOmsg :: String
         _lhsOmsg =
             "duplicate function declaration: " ++ show ident_ ++ " other occurrence at: " ++ show pos2_
     in  ( _lhsOmsg))
sem_Error_DuplicateType :: Ident ->
                           Pos ->
                           T_Error
sem_Error_DuplicateType ident_ pos2_ =
    (let _lhsOmsg :: String
         _lhsOmsg =
             "duplicate type declaration: " ++ show ident_ ++ " other occurrence at: " ++ show pos2_
     in  ( _lhsOmsg))
sem_Error_FieldNotInit :: Ident ->
                          T_Error
sem_Error_FieldNotInit field_ =
    (let _lhsOmsg :: String
         _lhsOmsg =
             "field not initialized: " ++ showField field_
     in  ( _lhsOmsg))
sem_Error_InitWithVoid :: Pos ->
                          T_Error
sem_Error_InitWithVoid pos_ =
    (let _lhsOmsg :: String
         _lhsOmsg =
             "at: " ++ show pos_ ++ ":" ++ "cannot initialize with no value"
     in  ( _lhsOmsg))
sem_Error_NoSuchField :: Pos ->
                         Ident ->
                         T_Error
sem_Error_NoSuchField pos_ field_ =
    (let _lhsOmsg :: String
         _lhsOmsg =
             "at: " ++ show pos_ ++ " record type  does not have a field named: " ++ showField field_
     in  ( _lhsOmsg))
sem_Error_NotArrayType :: Pos ->
                          T_Error
sem_Error_NotArrayType pos_ =
    (let _lhsOmsg :: String
         _lhsOmsg =
             "at: " ++ show pos_ ++ " subscript of non-array type"
     in  ( _lhsOmsg))
sem_Error_NotFunType :: Ident ->
                        T_Error
sem_Error_NotFunType ident_ =
    (let _lhsOmsg :: String
         _lhsOmsg =
             "identifier: " ++ show ident_ ++ " is not a function"
     in  ( _lhsOmsg))
sem_Error_NotRecordType :: Pos ->
                           T_Error
sem_Error_NotRecordType pos_ =
    (let _lhsOmsg :: String
         _lhsOmsg =
             "at: " ++ show pos_ ++ " field selection of non-record type"
     in  ( _lhsOmsg))
sem_Error_NotVarType :: Ident ->
                        T_Error
sem_Error_NotVarType ident_ =
    (let _lhsOmsg :: String
         _lhsOmsg =
             "identifier: " ++ show ident_ ++ " is not a variable"
     in  ( _lhsOmsg))
sem_Error_TooFewArguments :: Ident ->
                             T_Error
sem_Error_TooFewArguments fun_ =
    (let _lhsOmsg :: String
         _lhsOmsg =
             "not enough arguments for: " ++ show fun_
     in  ( _lhsOmsg))
sem_Error_TooManyArguments :: Ident ->
                              T_Error
sem_Error_TooManyArguments fun_ =
    (let _lhsOmsg :: String
         _lhsOmsg =
             "too many arguments for: " ++ show fun_
     in  ( _lhsOmsg))
sem_Error_TypeMisMatch :: TYPE ->
                          TYPE ->
                          T_Error
sem_Error_TypeMisMatch expect_ tp_ =
    (let _lhsOmsg :: String
         _lhsOmsg =
             "type: " ++ show tp_ ++ " does not match: " ++ show expect_
     in  ( _lhsOmsg))
sem_Error_UndeclaredFun :: Ident ->
                           T_Error
sem_Error_UndeclaredFun ident_ =
    (let _lhsOmsg :: String
         _lhsOmsg =
             "undeclared function: " ++ show ident_
     in  ( _lhsOmsg))
sem_Error_UndeclaredType :: Ident ->
                            T_Error
sem_Error_UndeclaredType ident_ =
    (let _lhsOmsg :: String
         _lhsOmsg =
             "undeclared type: " ++ show ident_
     in  ( _lhsOmsg))
sem_Error_UndeclaredVar :: Ident ->
                           T_Error
sem_Error_UndeclaredVar ident_ =
    (let _lhsOmsg :: String
         _lhsOmsg =
             "undeclared variable: " ++ show ident_
     in  ( _lhsOmsg))
sem_Error_UnknownType :: Pos ->
                         T_Error
sem_Error_UnknownType pos_ =
    (let _lhsOmsg :: String
         _lhsOmsg =
             "unable to determine type for expression at: " ++ show pos_
     in  ( _lhsOmsg))