ArkScript
A small, fast, functional and scripting language for video games
TypeChecker.hpp File Reference
#include <limits>
#include <string>
#include <vector>
#include <type_traits>
#include <Ark/VM/Value.hpp>
+ Include dependency graph for TypeChecker.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Ark::types::Typedef
 A type definition within a contract. More...
 
struct  Ark::types::Contract
 A contract is a list of typed arguments that a function can follow. More...
 

Namespaces

 Ark
 
 Ark::types
 
 Ark::types::details
 

Macros

#define NOMINMAX
 

Typedefs

template<typename T , typename... Ts>
using Ark::types::details::AllSame = std::enable_if_t< std::conjunction_v< std::is_same< T, Ts >... > >
 

Functions

template<int I>
bool Ark::types::details::checkN ([[maybe_unused]] const std::vector< Value > &args)
 
template<int I, typename T , typename... Ts>
bool Ark::types::details::checkN (const std::vector< Value > &args, T type, Ts... xs)
 
template<typename... Ts, typename = details::AllSame<ValueType, Ts...>>
bool Ark::types::check (const std::vector< Value > &args, Ts... types)
 Helper to see if a builtin has been given a wanted set of types. More...
 
ARK_API void Ark::types::generateError (std::string_view funcname, const std::vector< Contract > &contracts, const std::vector< Value > &args)
 Generate an error message based on a given set of types contracts provided argument list. More...
 

Detailed Description

Author
Alexandre Plateau (lexpl.nosp@m.t.de.nosp@m.v@gma.nosp@m.il.c.nosp@m.om)
Version
0.3
Date
2022-01-16

Definition in file TypeChecker.hpp.

Macro Definition Documentation

◆ NOMINMAX

#define NOMINMAX

Definition at line 20 of file TypeChecker.hpp.