gpt4 book ai didi

parsing - 如何在 Erlang 中解析 S 表达式?

转载 作者:行者123 更新时间:2023-12-02 04:08:56 25 4
gpt4 key购买 nike

我正在Erlang中实现Robocup足球模拟器的客户端代理。模拟器以S-表达式的形式向客户端发送感官信息。像这样

(see 15 ((f c) 2 0 0 0) ((f r t) 64.1 -32) ((f r b) 64.1 32) ((f g r b) 55.1 7) 
((g r) 54.6 0) ((b) 2 0 -0 0) ((l r) 54.6 90))
(see 16 ((f r t) 72.2 -44) ((f r b) 54.1 20) ((f g r b) 52.5 -10) ((g r) 54.1 -17)
((l r) 51.4 -89))

模拟器在每个周期(100-200 毫秒)发送此类传感器信息。信息的主要格式为:

(see Time ObjInfo ObjInfo . . . )

ObjInfos 的格式如下:

(ObjName Distance Direction [DistChange DirChange [BodyFac- ingDir HeadFacingDir]])

其中的对象如下:(b) 球,(g r) 右球门,(f ...) 代表各种旗帜。

我想要的是解析这些信息并存储/更新某些数据库(记录)以用于分析。我面临的主要困难是解析这些信息。请建议我一些方法来做到这一点? (Erlang 是否包含用于此类工作的任何库)

最佳答案

Yecc 和 Leex 是你的 friend :http://erlang.org/doc/apps/parsetools/index.html

Leex 是 Erlang 的词法分析器生成器,它将标记您的数据。 Yecc 是 LALR-1 解析器生成器,可以将您的标记解析为有意义的结构。

Relops 有一篇很好的博客文章,Leex And Yecc ,详细介绍了一些基础知识。

关于parsing - 如何在 Erlang 中解析 S 表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5348377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com