将 Flex/Bison 与外部程序集成

2023-12-28

我正在开发一个智能代理模型,该模型需要事件列表作为输入。这些事件来自另一个模型的输出,位于(大)文本文件中。文本文件是所有事件的列表(包括我不关心的不必要事件),因此我使用 flex 编写了一个扫描器,可以找到有用的位。智能代理模型的框架已经用C++编写。

每个事件都带有时间戳,并包含有关该事件的大量信息。输入文件的格式是不变的,所以我真的不需要检查语法。我不知道 Bison 是否真的会给我带来任何优势,因为语法实际上非常简单。没有真正的变化。

我只需要一种方法将每个事件(以及该事件的所有信息)放入堆栈中。智能代理按时间顺序作用于每个事件,因此我需要程序扫描整个输入文件,然后将每个事件以相反的顺序放入堆栈中(输入文件中的第一个事件应该是最后一个推送到堆栈上的事件)。这将允许智能代理将事件从堆栈中弹出并一次处理一个事件。

我的想法是 bison 对我帮助不大,因为语法只是按顺序列出所有标记的问题。它基本上看起来像这样:

eventlist: /* nothing */
| eventlist event EOL
;

event: token1 token2 token3 ... tokenN-1 tokenN

这是输入文件的一小段,因此您可以明白我的意思:

场景活动时间:DAY 1 00:00:00
[数据融合活动]新赛道形成
概括
实际目标:RF总部
融合中心位置:CVN Enterprise_0
融合中心名称:DEFAULT FUSION
感知目标 感知身份:未知
感知分类:未知
运营媒介:陆地

我有几个问题:

1)如何将flex生成的扫描仪与已经存在的更大的程序集成?
2)野牛会提供任何优势吗?或者我最好只是编写自己的程序来将所有令牌放在数据结构上并将它们放在堆栈上? 2a)如果 bison 更好,那么就解决了问题 1,但是我如何从程序中调用 bison,然后让 bison 返回指向堆栈的指针,以便程序可以使用它?

//编辑:我已经弄清楚如何从外部 C++ 程序调用 flex。到目前为止,我还无法创建一个野牛程序来执行我想要的操作(即返回指向事件堆栈的指针)。


如果你的语法那么简单,那么使用解析器似乎就大材小用了。只需处理每一行并将标记扫描到集合中即可。

你为什么认为你需要一个解析器?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Flex/Bison 与外部程序集成 的相关文章

  • Windows 上使用 g++ 的 Makefile,链接库

    我已经厌倦了 MSVC 6 以及每个人总是告诉我它是一个蹩脚的编译器等等 所以现在我决定尝试使用 vim 加 g 和 makefile 这是我的问题 我有以下 makefile This is supposed to be a commen
  • SL4 AutoCompleteBox 重复筛选结果问题

    我在 AutoCompleteBox 过滤方面遇到问题 它似乎记住了之前的过滤器 例如 我输入 A 它会返回 1 项 我删除 A 并输入 Z 这应该返回 1 项 问题是它返回 A 过滤器加上 Z 的结果 我删除 Z 并输入 S 这会带回 2
  • 为什么opencv videowriter这么慢?

    你好 stackoverflow 社区 我有一个棘手的问题 我需要你的帮助来了解这里发生了什么 我的程序从视频采集卡 Blackmagic 捕获帧 到目前为止 它工作得很好 同时我用 opencv cv imshow 显示捕获的图像 它也工
  • 没有 Unicode 字节顺序标记。无法切换到 Unicode

    我正在使用 XSD 编写 XML 验证器 下面是我所做的 但是当验证器到达该线时while list Read 它给了我错误 没有 Unicode 字节顺序标记 无法切换到 Unicode 有人可以帮我解决吗 public class Va
  • 检查列表是否包含另一个列表。 C#

    编辑 只是说 ContainsAllItem 中的注释解释得最好 很抱歉问这个问题 我知道以前有人问过这个问题 但我只是不明白 好的 所以我想检查一个列表是否包含另一个列表中的所有项目WITHOUT重叠 以及根据类字符串 名称变量 称为项目
  • 使用不带参数的 Split() 时,默认分隔符是什么?

    所以我看了看String Split 今天 C 中的方法 我意识到你也可以向它传递零参数 这是我从未考虑过的 使用时默认的分隔符是什么Split 没有任何参数 如果没有值 则为空白 来源自here https msdn microsoft
  • 为什么假设 send 可能返回的数据少于在阻塞套接字上传输的请求数据?

    在流套接字上发送数据的标准方法始终是调用 send 并写入一大块数据 检查返回值以查看是否发送了所有数据 然后再次调用 send 直到整个消息被接受 例如 这是一个常见方案的简单示例 int send all int sock unsign
  • 将 C# 反射代码移植到 Metro-Ui

    我正在尝试移植使用反射的现有 C 类 通用工厂 但我无法编译这段代码 Type types Assembly GetAssembly typeof TProduct GetTypes foreach Type type in types i
  • C 中的模仿函数重写

    具体来说 函数重写能够调用基本重写方法 这有两部分 一个是预编译的库代码 1 另一个是库的用户代码 2 我在这里实现了一个尽可能最小的经典 Person 和 Employee 示例 非常感谢了解 OOP 概念的铁杆 C 开发人员的回应 我正
  • 使用反射获取基类的受保护属性值

    I would like to know if it is possible to access the value of the ConfigurationId property which is located in the base
  • 抽象类或接口。哪种方式是正确的?

    有两种方法可以选择抽象类或接口 微软解决方案和Oracle解决方案 微软 设计指南 请使用抽象 在 Visual Basic 中为 MustInherit 类而不是接口来将协定与实现分离 http msdn microsoft com en
  • 指示泛型返回动态类型的对象

    这个问题是我原来问题的后续问题here https stackoverflow com questions 2541184 using a type object to create a generic 假设我有以下泛型类 简化 class
  • 为什么重载方法在 ref 仅符合 CLS 方面有所不同

    公共语言规范对方法重载非常严格 仅允许根据其参数的数量和类型来重载方法 如果是泛型方法 则根据其泛型参数的数量进行重载 根据 csc 为什么此代码符合 CLS 无 CS3006 警告 using System assembly CLSCom
  • 数据损坏 C++ 和 Python 之间的管道

    我正在编写一些代码 从 Python 获取二进制数据 将其通过管道传输到 C 对数据进行一些处理 在本例中计算互信息度量 然后将结果通过管道传输回 Python 在测试时 我发现如果我发送的数据是一组尺寸小于 1500 X 1500 的 2
  • C# 中处理 SQL 死锁的模式?

    我正在用 C 编写一个访问 SQL Server 2005 数据库的应用程序 该应用程序是数据库密集型的 即使我尝试优化所有访问 设置适当的索引等 我预计迟早会遇到死锁 我知道为什么会发生数据库死锁 但我怀疑我能否在某个时候发布不发生死锁的
  • 如何不在类中实现接口的功能?

    面试时面试官问了我以下问题 但我不知道这个问题的答案是什么 请帮忙 如果我不想 我必须做什么 在我的类中实现一个函数 在接口中声明为 由我班实施 Edited 我正在使用 NET 和 C 如果有人可以提供 C 示例代码示例 那就太好了 Th
  • 是什么原因导致 Linq 错误:此方法无法转换为存储表达式?

    我有一堆具有相同 select 语句的 Linq to Entity 方法 所以我想我会很聪明 并将其分离到它自己的方法中以减少冗余 但是当我尝试运行代码时 我得到了以下内容错误 该方法不能转化为 商店表达式 这是我创建的方法 public
  • realloc():重新分配为 char * 上的 strcat 腾出空间时下一个大小无效 [重复]

    这个问题在这里已经有答案了 我在以下代码中收到无效内存错误 printf s n FINE 5 printf s LENGTH IS d n FINE 6 strlen buffer char realloc buffer strlen b
  • 你能解释一下这个C++删除问题吗?

    我有以下代码 std string F WideString ws GetMyWideString std string ret StringUtils ConvertWideStringToUTF8 ws ret return ret W
  • 使用剪贴板 SetText 换行

    如何使用 SetText 方法添加换行符 I tried Clipboard SetText eee n xxxx 但当我将剪贴板数据粘贴到记事本中时 它没有给我预期的结果 预期结果 eee xxxx 我怎样才能做到这一点 Windows

随机推荐

  • iphone-非全局uiimageview检测

    背景 我使用的是 XCode 3 1 4 请记住这一点 但请不要对此发表评论 我必须按下按钮 点火并启动 当按下火时 会使用 IBAction 函数创建一个名为 one 的 UIImageView 当按下开始键时 会创建一个名为 2 的 U
  • 无需 GUI 即可获取字体规格(控制台模式)

    假设一些图像必须由 Qt 控制台程序生成 并且字体规格内部算法需要 它们使用文字宽度 高度作为计算应发生绘图的位置的输入 该程序必须可以在没有任何 GUI 的 Linux 上运行 运行级别 3 基本上是没有任何显示服务器的集群 Proble
  • 如何在 PHP 中验证表单

    是使用 php 验证 PHP 表单然后出现错误进行重定向更好 还是使用 javascript 验证然后在启用 javascript 的情况下允许表单提交更好 You must验证服务器端的值 因为客户端不可信 You may验证客户端的值
  • 对 PHP 文件使用括号

    我目前正在运行 wampserver 并且正在尝试使用 Brackets io 实时预览 php 文件 但是 当我单击实时预览时 我得到了 Project settings for Getting Started Live preview
  • 在自定义元素 Shadow DOM 中选择槽文本

    我用常规的 html css js 制作了一个简单的复制粘贴组件 我尝试将其变成 Web 组件 但无法再使复制粘贴行为发挥作用 Shadow DOM 内的标记基本上是 span span
  • Mac OS X 想要在编译项目时使用系统钥匙串

    当我编译 Xcode 项目时 系统要求我输入系统管理员用户名和密码 整个消息是 Mac OS X 想要做出改变 输入管理员的名称和密码以允许执行此操作 Mac OS X 希望使用系统钥匙串 有人有解决方案吗 打开钥匙串访问 在左上角 解锁钥
  • 如何将内联 JavaScript 合并为一个?

    我正在修复我们在一个网站上使用的模板 其中包含以下代码 这个片段有效
  • C/C++ 函数指针的 UML 表示

    UML 结构图中 C C 函数指针 fp 的最佳表示是什么 我正在考虑使用接口元素 即使是 退化 但最多只能声明一个操作 I found some proposal in this document But this sounds quit
  • Android - getResources().getIdentifier 替换

    在 android 中 我循环遍历数据库并分配文本和图像 Cursor res myDb getAllData while res moveToNext Actors actor new Actors actor setName res g
  • XAML 相当于 HTML 中的 DIV?

    我想要更具体的是一个可以用于对一组其他元素进行分组的元素 而不影响它们的布局 除了通过将相关元素分组到其自己的父标记中来提供更好的 XAML 之外 它唯一应该做的就是传播环境属性 例如 DataContext 它应该是一个纯粹的逻辑元素 没
  • 从张量流模型获取权重

    您好 我想从张量流中微调 VGG 模型 我有两个问题 如何从网络获取权重 trainable variables 为我返回空列表 我使用了这里的现有模型 https github com ry tensorflow vgg16 https
  • 如何在播放框架中隐藏文本字段

    如何在播放框架中隐藏文本字段 例如如何隐藏该字段 inputText userProfileForm name label gt Name 这应该适用于所有浏览器 inputText userProfileForm name label g
  • Jenkins节点连接问题

    您好 我收到以下错误 但我的节点已启动 并且在詹金斯日志中一切正常 但在我的一些在节点上进行的作业中 我遇到了以下问题 12 59 29 EnvInject Loading node environment variables 12 59
  • PHP 和重音字符 (Ba\u015f\u00e7\u0131l)

    我有一个像 Ba u015f u00e7 u0131l 这样的字符串 我假设这些是一些特殊的重音字符 我如何能 1 显示带有重音符号的字符串 即用实际字符替换代码 2 存储这样的字符串的最佳实践是什么 2 如果我不想允许这样的字符 如何将其
  • 从 ASP.net Web 应用程序扫描文档

    我有一个 ASP Net C 4 0 Web 应用程序 我需要为我的用户添加扫描功能 这就是我想要实现的目标 在我的网络应用程序上 用户单击按钮 打开一个窗口 其中可预览连接到客户端系统的扫描设备中的文档 用户确认扫描 这将以 jpg pd
  • UIImageView子类需要处理resize

    我正在创建一个 UIImageView 子类来显示音频波形 方法是加载文件 进行数学计算 保存 PNG 文件 然后self image thePNG 这样做的好处是 在调整大小或重新绘制时 UIImageView 将拉伸 PNG 并快速拉伸
  • 动态规划和 0/1 背包

    尽管我已经阅读了很多资源试图理解动态编程 但我在理解动态编程方面遇到了一些困难 我理解使用斐波那契算法给出的动态规划的示例 我明白如果你使用分而治之的方法 你最终会多次解决一些子问题 而动态编程通过解决这些重叠的子问题但只解决一次 并存储它
  • Kafka CommitFailedException 消费者异常

    创建多个消费者 使用 Kafka 0 9 java API 并且每个线程启动后 我收到以下异常 Consumer has failed with exception org apache kafka clients consumer Com
  • 如何按重复值拆分数组?

    我有一个对象数组 我必须按重复值将其拆分index财产 对于像下一个这样的对象示例数组 index 0 value 3 index 0 value 3 index 0 value 3 index 1 value 3 index 1 valu
  • 将 Flex/Bison 与外部程序集成

    我正在开发一个智能代理模型 该模型需要事件列表作为输入 这些事件来自另一个模型的输出 位于 大 文本文件中 文本文件是所有事件的列表 包括我不关心的不必要事件 因此我使用 flex 编写了一个扫描器 可以找到有用的位 智能代理模型的框架已经