首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在使用Moo作为记号器/lexer时,从编译的Nearley语法生成的样例字符串中不包含标记?

为什么在使用Moo作为记号器/lexer时,从编译的Nearley语法生成的样例字符串中不包含标记?
EN

Stack Overflow用户
提问于 2018-02-01 17:34:10
回答 1查看 382关注 0票数 0

我不确定这是Nearley.js库Moo令牌器/lexer还是我自己的代码的问题。所以我可能需要把这个问题提交给尼利回购公司。所有引用的文件都可以在这个要旨中找到。

我正在尝试写一个Nearley语法,它将解析我的一个班级的家庭作业问题列表。问题出现在problems.txt中,如下所示:

代码语言:javascript
复制
Section 5.2 (Due 4/23)- #3, 5*, 8*, 9, 11, 14*, 15, 17*, 18*, 20, 21*, 22*, 24*, 25 (see example 5, not discussed in class)
Section 5.3 (Due 4/30)- #1, 3*, 4, 5, 6*, 7, 9*, 11, 13*, 16, 20*, 21*, 22*, 23, 24*, 25*, 27, 28*, 31, 32

这仅仅是两行作为一个例子,整个文件更大。

我写的Nearley语法是用problems-grammar.ne 这里写的,我还没有完全完成。根据Nearley文档中的这些指示,我正在使用Moo令牌器/lexer。

我目前正在使用nearley-unparse命令测试我的语法,如使用此命令解释的这里,其中problems-grammar.js是由Nearley编译的解析器。

代码语言:javascript
复制
nearley-unparse problems-grammar.js -o test.txt

不幸的是,除了换行符之外,非解析器似乎没有正确地用令牌的示例生成语法。这里nearley-unparse的一个输出

代码语言:javascript
复制
Section  (Due )- #*, , 
Section  (Due )- #, *, 
Section  (Due )- #*, , , *, 
Section  (Due )- #*, *
Section  (Due )- #*, *, *, *

我想知道这是我语法上的缺陷还是Nearley/Moo本身的缺陷。如果这是我的代码的问题,我如何解决它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-13 19:21:03

因为我没有收到来自这里的答复,我继续和尼利GitHub回购公司问

根据维护人员的说法,nearley-unparse目前无法生成字符串来匹配正则表达式。也没有任何增加该功能的计划,因为它本身就是一个项目。

以下是他们的充分答复:

嗨,这儿!谢谢你试图先发布一个StackOverflow问题,很抱歉没有人能帮上忙: 这是非解析器的一个限制:它不知道如何生成满足regexp的随机字符串,我们也不打算这样做(这本身就是一个项目!) 在我看来,您的语法很好,只要简单地看一下;如果您用近距离测试测试它,希望您能找到您所期望的解析树。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48568620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档