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))