问题标签 [chaiscript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1218 浏览

c++ - 通过用户类型对象为 Chaiscript 变量赋值会产生意外行为

我对 C++ 和 Chaiscript 有一个特殊的问题,希望有人可以帮助我解决它,我会尽量提供所需的信息。

基本上,通过 chaiscript 调用在 c++ 中定义的 c++ 函数,它返回一个 Vector2 对象(用户类型对象),当我尝试直接从 Vector2 的成员变量(x 或 y)获取值时,将返回疯狂的值。如果我将整个 Vector2 分配给一个变量,它将按预期工作,访问成员变量将为我提供预期值。

我设法用尽可能少的代码重现了这个问题,摆脱了物理引擎和我正在使用的所有其他东西。

这是C++代码:

这是脚本:

此代码将重现以下内容:6.52556e-38 10

每次我运行代码时,getValue().x (6.52556e-38) 中的这个值实际上是不同的,但它通常会是 1.f~8.f 之间的某个疯狂值,它会变为指数 -36~-38。

我可以通过使用“var something = getValue()”,然后访问“something.x”来解决这个问题,但是了解为什么会发生这种情况以及如何修复它会很有帮助。

0 投票
1 回答
274 浏览

c++ - Mac / c++ 上的 ChaiScript std lib 在运行时寻找 dll

我正在尝试将 ChaiScript 集成到我的小型 Mac / c++ 项目中。虽然我可以通过构建 chaiscript_stdlib.hpp / 使用 ChaiScript chai(Std_Lib.library()) 来很好地使用它,但我真的很想单独构建这个库。

然而,在构建 dylib,确保安装路径/名称指向正确的位置,并用它构建我的项目之后,我总是会遇到一个运行时错误,它找不到 .dll ...不用说我很困惑至于为什么它甚至会在mac上寻找一个dll,但有人可以分享我做错了什么吗?

干杯!

PS:为了更加清楚,错误不是关于定位 .dylib (如果我不复制可执行路径中的 lib,它将首先出现),但是运行时加载 dylib 后它抱怨它找不到 .dylib。 dll

0 投票
1 回答
804 浏览

c++ - 是否可以在 ChaiScript 执行中添加断点?

ChaiScript是否支持类似调试器的行为?例如,我可以设置执行暂停的断点,并允许我在恢复之前检查堆栈吗?如果是这样,怎么做?

0 投票
2 回答
183 浏览

c++ - Chaiscript #include statement mapping in biicode.conf

I want to create a biicode block that depends on the chaiscript block (lefticus/ChaiScript). If I include the chaiscript headers this way

bii find works fine. But I would like to include them as

so I changed my biicode.conf such as this :

but then I got

How do I have to configure biicode to make it work with the "classic" chaiscript includes ?

Thanks

0 投票
1 回答
255 浏览

c++ - 使用 Chaiscript 的协程或有状态/可恢复任务

Chaiscript想让我的应用程序的用户使用脚本语言来实现任务或有状态算法。这些算法“取决于时间中的事件”。换句话说,应该允许由应用程序调度的算法yield在任何时候以及resume只要他们感兴趣的事件发生(在这种情况下任务被重新调度以恢复)执行。Chaiscript为实现这一目标提供了什么样的支持?

0 投票
1 回答
350 浏览

wstring - ChaiScript 中的 std::wstring

我是 ChaiScript 的初学者。

我尝试std::wstring在 ChaiScript 中使用类型。

std::string 类型效果很好。

std::wstring类型引发异常。

D:\TestWork\test_chaiscript>t2.exe
在抛出 'chaiscript::exception::eval_error'
what() 的实例后调用终止:错误:“找不到合适的 '==' 运算符。” 带参数:(NSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE, const string)

此应用程序已请求运行时以不寻常的方式终止它。
请联系应用程序的支持团队以获取更多信息。

使用 ChaiScript git 版本和 mingw-w64 构建 5.1.0。

vs2013也是一样。

如何std::wstring在 ChaiScript 中使用类型?

0 投票
2 回答
619 浏览

wstring - 比较 std::wstring 类型和 ChaiScript 中 wstring 文字的表示

我想使用 std::wstring 类型编写 ChaiScript 代码,如下面的 c++ 代码。

比较 std::wstring 类型的实例很好。

比较 wchar_t 类型的实例不起作用。

是否必须添加比较运算符方法?

将 std::wstring 类型的实例与字符串类型的文字进行比较是行不通的。我无法输入 wstring 类型的文字。

是否可以在 ChaiScript 中输入 wstring 类型的文字?

将 wchar_t 类型的实例与 wchar_t 类型的文字进行比较是行不通的。我无法输入 wchat_t 类型的文字。

是否可以在 ChaiScript 中输入 wchat_t 类型的文字?

0 投票
2 回答
479 浏览

c++ - 如何访问脚本中定义的类型的成员?

我正在尝试从我在脚本中定义的类型中访问 C++ 文件成员。问题是Boxed_Value::get_attr总是返回一个空值。

这是我的 C++ 文件:

script.chai

我希望它打印30,但它却抛出了bad_boxed_cast异常。在我的投资过程中,我发现这number.is_null()是真的。我显然做错了什么,但我找不到我的错误。
或者也许它不打算以这种方式使用?

0 投票
1 回答
774 浏览

c++ - 如何检查 chaiscript 中是否定义了函数以及如何使用类型化参数执行它?

我刚刚发现了 chaiscript,我非常喜欢它。现在我想添加对我非常简单的 opengl 3d 引擎的支持。

我有 C++ 数学类:vec2T、vec3T、vec4T、mat2T、mat3T、mat4T、...(它们实际上是模板类,并且有 typedef 使它们成为 vec4i、vec4f、vec4d、...)

我想我可以将它们添加到 chaiscript 中:

正确的?

现在,我想测试我的脚本是否包含一个名为“onFrame”的函数。如果是,我希望使用 vec4i 参数作为其第一个参数来调用它。我该怎么做呢?

我知道我可以做这样的事情:

如果脚本中未定义 onFrame,则这种方式将忽略异常。我什至可以通过这种方式传递一些整数或字符串参数。但是我如何继续将 vec4(x, y, z, w) 参数传递给它?

任何帮助表示赞赏!

0 投票
1 回答
264 浏览

chaiscript - ChaiScript:从内存中加载预处理的脚本文件

在 ChaiScript 中,有一个 .use() 函数,它接受文件路径并加载文件并使脚本中的每个函数和变量都可用。如果您想从磁盘中获取文件,这是一个很棒的功能,但是我希望从已加载、预处理为字符串并存储在内存中的文件中执行相同的操作。几乎等同于 .use 函数,它采用一个代表整个脚本的字符串,而不仅仅是一个路径。

这有可能吗?