GameApi 28
Library used by GameApi Builder tool
Loading...
Searching...
No Matches
chaiscript_tracer.hpp
Go to the documentation of this file.
1// This file is distributed under the BSD License.
2// See "license.txt" for details.
3// Copyright 2009-2012, Jonathan Turner (jonathan@emptycrate.com)
4// Copyright 2009-2017, Jason Turner (jason@emptycrate.com)
5// http://www.chaiscript.com
6
7#ifndef CHAISCRIPT_TRACER_HPP_
8#define CHAISCRIPT_TRACER_HPP_
9
10namespace chaiscript {
11 namespace eval {
12
13
15 {
16 template<typename T>
20 };
21
22 template<typename ... T>
23 struct Tracer : T...
24 {
25 Tracer() = default;
26 explicit Tracer(T ... t)
27 : T(std::move(t))...
28 {
29 }
30
32 (void)std::initializer_list<int>{ (static_cast<T&>(*this).trace(ds, node), 0)... };
33 }
34
36 ds->get_parser().get_tracer<Tracer<T...>>().do_trace(ds, node);
37 }
38 };
39
41
42 }
43}
44
45#endif
46
parser::ChaiScript_Parser_Base & get_parser()
Definition dispatchkit.hpp:1289
Definition dispatchkit.hpp:1513
T & get_tracer()
Definition chaiscript_common.hpp:635
Classes and functions that are part of the runtime eval system.
Definition chaiscript_common.hpp:647
Tracer< Noop_Tracer_Detail > Noop_Tracer
Definition chaiscript_tracer.hpp:40
Namespace chaiscript contains every API call that the average user will be concerned with.
STL namespace.
Definition GameApi.h:42
Definition chaiscript_eval.hpp:112
Definition chaiscript_tracer.hpp:15
void trace(const chaiscript::detail::Dispatch_State &, const AST_Node_Impl< T > *)
Definition chaiscript_tracer.hpp:17
Definition chaiscript_tracer.hpp:24
Tracer(T ... t)
Definition chaiscript_tracer.hpp:26
void do_trace(const chaiscript::detail::Dispatch_State &ds, const AST_Node_Impl< Tracer< T... > > *node)
Definition chaiscript_tracer.hpp:31
static void trace(const chaiscript::detail::Dispatch_State &ds, const AST_Node_Impl< Tracer< T... > > *node)
Definition chaiscript_tracer.hpp:35