NewLang Project
Yet another programm language
Loading...
Searching...
No Matches
builtin.h File Reference
#include "nlc-rt.h"
Include dependency graph for builtin.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  newlang::BuiltInTorchDirect
 

Namespaces

namespace  newlang
 

Macros

#define INCLUDED_NEWLANG_BUILTIN_
 
#define FUNC_DIRECT(NAME, FUNC)
 
#define FUNC_TRANSPARENT(NAME, FUNC)
 
#define NEWLANG_FUNCTION(NAME)   newlang::ObjPtr NAME(newlang::Context *ctx, newlang::Obj &in)
 
#define NEWLANG_TRANSPARENT(NAME)   newlang::ObjPtr NAME(const newlang::Context *ctx, const newlang::Obj &in)
 
#define CALSS_METHOD_NAME(CLASS, NAME)   "::" TO_STR(CLASS ## _ ## NAME)
 
#define CALSS_METHOD_DEF(NAME)   static newlang::ObjPtr NAME (newlang::Context *ctx, newlang::Obj &in)
 
#define CALSS_METHOD(CLASS, NAME)   newlang::ObjPtr CLASS :: NAME (newlang::Context *ctx, newlang::Obj &in)
 

Functions

newlang::ObjPtr newlang::min (const newlang::Context *ctx, const newlang::Obj &in)
 
newlang::ObjPtr newlang::newlang_min (const newlang::Context *ctx, const newlang::ObjPtr in)
 
template<typename... T>
std::enable_if< newlang::is_all< newlang::Obj::PairType, T... >::value, newlang::ObjPtr >::type newlang::newlang_newlang_min (newlang::Context *ctx, T ... args)
 
newlang::ObjPtr newlang::max (const newlang::Context *ctx, const newlang::Obj &in)
 
newlang::ObjPtr newlang::newlang_max (const newlang::Context *ctx, const newlang::ObjPtr in)
 
template<typename... T>
std::enable_if< newlang::is_all< newlang::Obj::PairType, T... >::value, newlang::ObjPtr >::type newlang::newlang_newlang_max (newlang::Context *ctx, T ... args)
 
newlang::ObjPtr newlang::newlang_maks (const newlang::Context *ctx, const newlang::ObjPtr in)
 
template<typename... T>
std::enable_if< newlang::is_all< newlang::Obj::PairType, T... >::value, newlang::ObjPtr >::type newlang::newlang_newlang_maks (newlang::Context *ctx, T ... args)
 
newlang::ObjPtr newlang::clone (const newlang::Context *ctx, const newlang::Obj &in)
 
newlang::ObjPtr newlang::newlang_clone (const newlang::Context *ctx, const newlang::ObjPtr in)
 
template<typename... T>
std::enable_if< newlang::is_all< newlang::Obj::PairType, T... >::value, newlang::ObjPtr >::type newlang::newlang_newlang_clone (newlang::Context *ctx, T ... args)
 
newlang::ObjPtr newlang::const_ (const newlang::Context *ctx, const newlang::Obj &in)
 
newlang::ObjPtr newlang::newlang_const_ (const newlang::Context *ctx, const newlang::ObjPtr in)
 
template<typename... T>
std::enable_if< newlang::is_all< newlang::Obj::PairType, T... >::value, newlang::ObjPtr >::type newlang::newlang_newlang_const_ (newlang::Context *ctx, T ... args)
 
newlang::ObjPtr newlang::mutable_ (const newlang::Context *ctx, const newlang::Obj &in)
 
newlang::ObjPtr newlang::newlang_mutable_ (const newlang::Context *ctx, const newlang::ObjPtr in)
 
template<typename... T>
std::enable_if< newlang::is_all< newlang::Obj::PairType, T... >::value, newlang::ObjPtr >::type newlang::newlang_newlang_mutable_ (newlang::Context *ctx, T ... args)
 
newlang::ObjPtr newlang::help (const newlang::Context *ctx, const newlang::Obj &in)
 
newlang::ObjPtr newlang::newlang_help (const newlang::Context *ctx, const newlang::ObjPtr in)
 
template<typename... T>
std::enable_if< newlang::is_all< newlang::Obj::PairType, T... >::value, newlang::ObjPtr >::type newlang::newlang_newlang_help (newlang::Context *ctx, T ... args)
 

Macro Definition Documentation

◆ INCLUDED_NEWLANG_BUILTIN_

#define INCLUDED_NEWLANG_BUILTIN_

Definition at line 3 of file builtin.h.

◆ FUNC_DIRECT

#define FUNC_DIRECT ( NAME,
FUNC )
Value:
ASSERT(in);\
return FUNC(ctx, *in);\
}\
template <typename... T> \
typename std::enable_if<newlang::is_all<newlang::Obj::PairType, T ...>::value, newlang::ObjPtr>::type \
NAME(newlang::Context *ctx, T ... args) { \
return FUNC(ctx, list); \
}
static PairType ArgNull(const std::string name="")
Definition object.h:363
Dict::PairType PairType
Definition object.h:356
std::shared_ptr< Obj > ObjPtr
Definition variable.h:28

Definition at line 10 of file builtin.h.

◆ FUNC_TRANSPARENT

#define FUNC_TRANSPARENT ( NAME,
FUNC )
Value:
newlang::ObjPtr FUNC(const newlang::Context *ctx, const newlang::Obj &in);\
inline newlang::ObjPtr NAME(const newlang::Context *ctx, const newlang::ObjPtr in){\
ASSERT(in);\
return FUNC(ctx, *in);\
}\
template <typename... T> \
typename std::enable_if<newlang::is_all<newlang::Obj::PairType, T ...>::value, newlang::ObjPtr>::type \
newlang_##NAME(newlang::Context *ctx, T ... args) { \
return FUNC(ctx, list); \
}

Definition at line 23 of file builtin.h.

◆ NEWLANG_FUNCTION

#define NEWLANG_FUNCTION ( NAME)    newlang::ObjPtr NAME(newlang::Context *ctx, newlang::Obj &in)

Definition at line 36 of file builtin.h.

◆ NEWLANG_TRANSPARENT

#define NEWLANG_TRANSPARENT ( NAME)    newlang::ObjPtr NAME(const newlang::Context *ctx, const newlang::Obj &in)

Definition at line 37 of file builtin.h.

◆ CALSS_METHOD_NAME

#define CALSS_METHOD_NAME ( CLASS,
NAME )   "::" TO_STR(CLASS ## _ ## NAME)

Definition at line 39 of file builtin.h.

◆ CALSS_METHOD_DEF

#define CALSS_METHOD_DEF ( NAME)    static newlang::ObjPtr NAME (newlang::Context *ctx, newlang::Obj &in)

Definition at line 42 of file builtin.h.

◆ CALSS_METHOD

#define CALSS_METHOD ( CLASS,
NAME )   newlang::ObjPtr CLASS :: NAME (newlang::Context *ctx, newlang::Obj &in)

Definition at line 43 of file builtin.h.