|
data_expression | operator() (const data_expression &data_expr, const detail::variable_context &context) const |
| Type check a data expression. Throws a mcrl2::runtime_error exception if the expression is not well typed.
|
|
void | read_sort (const sort_expression &SortExpr) |
|
void | read_constructors_and_mappings (const function_symbol_vector &constructors, const function_symbol_vector &mappings, const function_symbol_vector &normalized_constructors) |
|
void | add_function (const data::function_symbol &f, const std::string &msg, bool allow_double_decls=false) |
|
void | add_constant (const data::function_symbol &f, const std::string &msg) |
|
void | initialise_system_defined_functions (void) |
|
void | add_system_constant (const data::function_symbol &f) |
|
void | add_system_function (const data::function_symbol &f) |
|
void | add_system_constants_and_functions (const std::vector< data::function_symbol > &v) |
|
bool | TypeMatchA (const sort_expression &Type_in, const sort_expression &PosType_in, sort_expression &result) const |
|
bool | TypeMatchL (const sort_expression_list &TypeList, const sort_expression_list &PosTypeList, sort_expression_list &result) const |
|
sort_expression | UnwindType (const sort_expression &Type) const |
|
variable | UnwindType (const variable &v) const |
|
template<class T > |
atermpp::term_list< T > | UnwindType (const atermpp::term_list< T > &l) |
|
sort_expression | TraverseVarConsTypeD (const detail::variable_context &DeclaredVars, data_expression &DataTerm, const sort_expression &PosType, const bool strictly_ambiguous=true, const bool warn_upcasting=false, const bool print_cast_error=true) const |
|
sort_expression | TraverseVarConsTypeDN (const detail::variable_context &DeclaredVars, data_expression &DataTerm, sort_expression PosType, const bool strictly_ambiguous=true, const std::size_t nFactPars=std::string::npos, const bool warn_upcasting=false, const bool print_cast_error=true) const |
|
bool | InTypesA (const sort_expression &Type, sort_expression_list Types) const |
|
bool | EqTypesA (const sort_expression &Type1, const sort_expression &Type2) const |
|
bool | InTypesL (const sort_expression_list &Type, atermpp::term_list< sort_expression_list > Types) const |
|
bool | EqTypesL (sort_expression_list Type1, sort_expression_list Type2) const |
|
bool | MaximumType (const sort_expression &Type1, const sort_expression &Type2, sort_expression &result) const |
|
sort_expression | ExpandNumTypesUp (sort_expression Type) const |
|
sort_expression_list | ExpandNumTypesUpL (const sort_expression_list &type_list) const |
|
sort_expression | ExpandNumTypesDown (sort_expression Type) const |
|
bool | UnifyMinType (const sort_expression &Type1, const sort_expression &Type2, sort_expression &result) const |
|
sort_expression | determine_allowed_type (const data_expression &d, const sort_expression &proposed_type) const |
|
bool | MatchIf (const function_sort &type, sort_expression &result) const |
|
bool | MatchEqNeqComparison (const function_sort &type, sort_expression &result) const |
|
bool | MatchSqrt (const function_sort &type, sort_expression &result) const |
|
bool | MatchListOpCons (const function_sort &type, sort_expression &result) const |
|
bool | MatchListOpSnoc (const function_sort &type, sort_expression &result) const |
|
bool | MatchListOpConcat (const function_sort &type, sort_expression &result) const |
|
bool | MatchListOpEltAt (const function_sort &type, sort_expression &result) const |
|
bool | MatchListOpHead (const function_sort &type, sort_expression &result) const |
|
bool | MatchListOpTail (const function_sort &type, sort_expression &result) const |
|
bool | MatchSetOpSet2Bag (const function_sort &type, sort_expression &result) const |
|
bool | MatchFalseFunction (const function_sort &type, sort_expression &result) const |
|
bool | MatchListSetBagOpIn (const function_sort &type, sort_expression &result) const |
|
bool | match_fset_insert (const function_sort &type, sort_expression &result) const |
|
bool | match_fbag_cinsert (const function_sort &type, sort_expression &result) const |
|
bool | UnifyElementSort (sort_expression &Arg1, sort_expression &Arg2, sort_expression &result) const |
|
bool | MatchSetBagOpUnionDiffIntersect (const core::identifier_string &data_term_name, const function_sort &type, sort_expression &result) const |
|
bool | MatchSetOpSetCompl (const function_sort &type, sort_expression &result) const |
|
bool | MatchBagOpBag2Set (const function_sort &type, sort_expression &result) const |
|
bool | MatchBagOpBagCount (const function_sort &type, sort_expression &result) const |
|
bool | MatchFuncUpdate (const function_sort &type, sort_expression &result) const |
|
bool | MatchSetConstructor (const function_sort &type, sort_expression &result) const |
|
bool | MatchBagConstructor (const function_sort &type, sort_expression &result) const |
|
bool | UnArrowProd (const sort_expression_list &ArgTypes, sort_expression PosType, sort_expression &result) const |
|
bool | UnFSet (sort_expression PosType, sort_expression &result) const |
|
bool | UnFBag (sort_expression PosType, sort_expression &result) const |
|
bool | UnList (sort_expression PosType, sort_expression &result) const |
|
void | ErrorMsgCannotCast (sort_expression CandidateType, data_expression_list Arguments, sort_expression_list ArgumentTypes, std::string previous_reason) const |
|
sort_expression | UpCastNumericType (sort_expression NeededType, sort_expression Type, data_expression &Par, const detail::variable_context &DeclaredVars, const bool strictly_ambiguous, bool warn_upcasting=false, const bool print_cast_error=false) const |
|
void | TransformVarConsTypeData (data_specification &data_spec) |
|
sort_expression_list | GetNotInferredList (const atermpp::term_list< sort_expression_list > &TypeListList) const |
|
sort_expression_list | InsertType (const sort_expression_list &TypeList, const sort_expression &Type) const |
|
std::pair< bool, sort_expression_list > | AdjustNotInferredList (const sort_expression_list &PosTypeList, const atermpp::term_list< sort_expression_list > &TypeListList) const |
|
bool | IsTypeAllowedA (const sort_expression &Type, const sort_expression &PosType) const |
|
bool | IsTypeAllowedL (const sort_expression_list &TypeList, const sort_expression_list &PosTypeList) const |
|
bool | IsNotInferredL (sort_expression_list TypeList) const |
|
bool | strict_type_check (const data_expression &d) const |
|
data_expression | upcast_numeric_type (const data_expression &x, const sort_expression &expected_sort, const detail::variable_context &variable_context) |
|
void | check_alias_circularity (const data::basic_sort &lhs, const data::sort_expression &rhs, std::set< basic_sort > sort_already_seen, const std::map< basic_sort, sort_expression > &alias_map) |
|
void | check_sorts () |
|
void | check_aliases () |
|
void | check_for_sort_alias_loop_through_function_sort (const basic_sort &end_search, const sort_expression &start_search, std::set< basic_sort > &visited, const bool observed_a_sort_constructor, const std::map< basic_sort, sort_expression > &alias_map) |
|
void | check_basic_sort_is_declared (const basic_sort &x) const |
|
void | check_sort_list_is_declared (const sort_expression_list &SortExprList) const |
|
void | check_sort_is_declared (const sort_expression &x) const |
|
void | check_for_empty_constructor_domains (const function_symbol_vector &constructors) |
|
Definition at line 26 of file typecheck.h.