aef25u 发表于 2019-04-14 09:45

perl6 Grammar解释结构化文本只能解释第一个

本帖最后由 aef25u 于 2019-04-14 09:57 编辑



解释结构化文本只能解释第一个“Obs:”,运行到第二个“Obs:”时出错,请各位帮忙分析一下错误原因。
1、结构化文本样式:
Obs:
1921 -4.4 -7.1 -6.8 -4.3 -0.8 2.2 4.7 5.8 2.7 -2.0 -2.1 -4.0
1922 -0.9 -1.7 -6.2 -3.7 -1.6 2.9 4.8 6.3 2.7 -0.2 -3.8 -2.6
1923 -2.8 -2.7 -4.6 -1.8 1.1 3.3 6.1 6.9 5.8 1.2 -3.5 -0.8
1924 -2.3 -5.3 -3.2 -1.6 2.0 2.9 6.7 7.2 3.8 0.6 -0.3 -1.3
Obs:
1925 -4.3 -7.1 -6.8 -4.3 -0.8 2.2 4.7 5.8 2.7 -2.0 -2.1 -4.0
1926 -0.9 -1.7 -6.2 -3.7 -1.6 2.9 4.8 6.3 2.7 -0.2 -3.8 -2.6
1927 -2.9 -2.7 -4.6 -1.8 1.1 3.3 6.1 6.9 5.8 1.2 -3.5 -0.8
1928 -3.3 -5.3 -3.2 -1.6 2.0 2.9 6.7 7.2 3.8 0.6 -0.3 -1.3


2、我的代码(直接粘代码有些字符会出错,所以只能上传图片):





aef25u 发表于 2019-04-17 16:16

Grammar真的好难调试,一点未注意就出错了。要这样改写:

token TOP{ ^ ['Obs:' \n <observations>]+ $ }


523066680 发表于 2019-06-02 22:08

感觉 perl 6 可以直接写 Parser 好梦幻,但是英文不好 看文档很吃力。

aef25u 发表于 2021-03-07 23:25

回复 3# 523066680

是很梦幻,但perl6或raku实现了。

aef25u 发表于 2021-03-07 23:29

回复 2# aef25u

是很梦幻,但perl6或者说raku实现了。
页: [1]
查看完整版本: perl6 Grammar解释结构化文本只能解释第一个