add jinja-value.cpp

This commit is contained in:
Xuan Son Nguyen 2025-12-28 22:49:31 +01:00
parent c7f246e7a5
commit 55fe96a9df
3 changed files with 17 additions and 17 deletions

View File

@ -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)

View File

@ -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.
*/

View File

@ -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) {