definition module Sil.Error from StdFile import class <<< from StdOverloaded import class toString, class < from Sil.Syntax import :: Expression from Sil.Types import :: Type from Sil.Util.Parser import :: ParsePosition, class getPos :: ErrorPosition instance < ErrorPosition :: Error // Parser errors = E.a: P_Invalid String a & toString a | E.a: P_Expected ErrorPosition String a & toString a // Type errors | T_IllegalApplication ErrorPosition Type Type | T_IllegalField ErrorPosition String Type | T_TooHighTupleArity ErrorPosition Int // Check errors | Ck_NoMainFunction | Ck_MainFunctionInvalidType ErrorPosition Type | Ck_DuplicateFunctionName ErrorPosition String | Ck_DuplicateLocalName ErrorPosition String String | Ck_ReturnExpressionFromVoid ErrorPosition String | Ck_NoReturnFromNonVoid ErrorPosition String | Ck_LocalVoid ErrorPosition String | Ck_BasicGlobal ErrorPosition String // Compile errors | C_UndefinedName ErrorPosition String | C_UndefinedField ErrorPosition String | C_CouldNotDeduceType Expression | C_TypeMisMatch Type Expression Type | C_BasicInitWithoutValue ErrorPosition String // Miscellaneous | UnknownError String instance toString Error instance <<< Error instance < Error // Based on position in file, to choose the furthest error in the parser getErrorPosition :: Error -> ?ErrorPosition errpos :: a -> ErrorPosition | getPos a