【发布时间】:2019-02-07 07:56:38
【问题描述】:
关于 perl6 语法和光栅(一般是二进制)数据的几个问题让人很头疼。据我了解,文本方法是在字素级别通过语法工作,我们可以这样处理栅格数据吗?我们可以自定义字素定义来处理栅格数据或二进制数据的基本单元,以便使用语法来解析它们吗?
看到 perl6 是由 perl6 语法定义的,我们是否可以将类似的语法定义为一种“验证”测试,其基本情况是语法是否可以解析数据,数据是否格式正确并且经过结构验证?将这种方法用于文本数据,语法作为基本单元是面向文本的,但我们可以自定义那些后端定义(例如,可以覆盖 :sigspace 以使 rules 和 @ 987654331@ parse with a another separator for grapheme) 以在二进制数据领域启用语法的力量?
谢谢!
对于背景部分:
在过去的几周里,我开始出于个人兴趣学习 Perl6。在seeing this talk at FOSDEM 2019 之后,我开始问自己(和我周围的人)关于使用语法检查/解析二进制数据的问题。例如,我的用例将在不支持 GDAL 绑定的情况下复制 Cloud Optimized Geotiff validator(我在 perl6 中还没有看到)。这对我来说显然是一个学习项目。
The Spec for Cloud Optimized Geotiff
目前,基本思路是在可能的情况下借助 perl6 语法解析二进制结构作为第一步,希望能够将检查数据和元数据作为主要目标。
注意:不是母语,如果某些部分需要重写/精度,请随时指出。
【问题讨论】:
-
“例如到 ... 没有 ... 绑定的支持(我在 perl6 中还没有看到)。”。 cf stackoverflow.com/questions/54465122/… 和 stackoverflow.com/questions/54487122/… 以及附近的 cmets。
-
不久前,这篇文章发表在使用 Perl 6 语法处理 GFX3 文件blogs.perl.org/users/sylvain_colinet/2019/01/…,我理解为二进制格式。所以我知道它是可以做到的,虽然你当然必须把 GeoTIFF 放在语法形式来解析它。
-
@jjmerelo 没有找到那个链接,谢谢,我会挖掘它。但据我了解,perl6.c 实际上并没有原生管理二进制数据。例如,在链接的博客文章中:“由于语法并不真正支持纯二进制数据,因此您必须将最初存储在 buf 中的数据作为 latin1 编码字符串传递。”文章中的逻辑是我正在寻找的,谢谢!
-
@notagoodidea 这是对“perl6 对字形的定义是什么?”的答案; perl6 遵循 unicode 的字素集群规则算法;这是简洁显示的算法的链接:unicode.org/reports/tr29/#Grapheme_Cluster_Boundary_Rules - 我希望这能让事情变得清晰! perl6 中没有机制可以改变字素对字符串的工作方式,至少据我所知