add jinja-value.cpp
This commit is contained in:
parent
c7f246e7a5
commit
55fe96a9df
|
|
@ -89,7 +89,9 @@ add_library(${TARGET} STATIC
|
|||
jinja/jinja-parser.h
|
||||
jinja/jinja-vm.cpp
|
||||
jinja/jinja-vm.h
|
||||
jinja/jinja-vm-builtins.cpp
|
||||
jinja/jinja-value.cpp
|
||||
jinja/jinja-value.h
|
||||
jinja/jinja-string.h
|
||||
)
|
||||
|
||||
target_include_directories(${TARGET} PUBLIC . ../vendor)
|
||||
|
|
|
|||
|
|
@ -13,6 +13,20 @@
|
|||
|
||||
namespace jinja {
|
||||
|
||||
// func_args method implementations
|
||||
|
||||
value func_args::get_kwarg(const std::string & key) const {
|
||||
for (const auto & arg : args) {
|
||||
if (is_val<value_kwarg>(arg)) {
|
||||
auto * kwarg = cast_val<value_kwarg>(arg);
|
||||
if (kwarg->key == key) {
|
||||
return kwarg->val;
|
||||
}
|
||||
}
|
||||
}
|
||||
return mk_val<value_undefined>();
|
||||
}
|
||||
|
||||
/**
|
||||
* Function that mimics Python's array slicing.
|
||||
*/
|
||||
|
|
@ -19,22 +19,6 @@ void enable_debug(bool enable) {
|
|||
g_jinja_debug = enable;
|
||||
}
|
||||
|
||||
// func_args method implementations
|
||||
|
||||
value func_args::get_kwarg(const std::string & key) const {
|
||||
for (const auto & arg : args) {
|
||||
if (is_val<value_kwarg>(arg)) {
|
||||
auto * kwarg = cast_val<value_kwarg>(arg);
|
||||
if (kwarg->key == key) {
|
||||
return kwarg->val;
|
||||
}
|
||||
}
|
||||
}
|
||||
return mk_val<value_undefined>();
|
||||
}
|
||||
|
||||
// utils
|
||||
|
||||
static value_array exec_statements(const statements & stmts, context & ctx) {
|
||||
auto result = mk_val<value_array>();
|
||||
for (const auto & stmt : stmts) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue