我不确定这是Nearley.js库、Moo令牌器/lexer还是我自己的代码的问题。所以我可能需要把这个问题提交给尼利回购公司。所有引用的文件都可以在这个要旨中找到。
我正在尝试写一个Nearley语法,它将解析我的一个班级的家庭作业问题列表。问题出现在problems.txt中,如下所示:
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编译的解析器。
nearley-unparse problems-grammar.js -o test.txt不幸的是,除了换行符之外,非解析器似乎没有正确地用令牌的示例生成语法。这里是nearley-unparse的一个输出
Section (Due )- #*, ,
Section (Due )- #, *,
Section (Due )- #*, , , *,
Section (Due )- #*, *
Section (Due )- #*, *, *, *我想知道这是我语法上的缺陷还是Nearley/Moo本身的缺陷。如果这是我的代码的问题,我如何解决它?
发布于 2018-02-13 19:21:03
因为我没有收到来自这里的答复,我继续和尼利GitHub回购公司问。
根据维护人员的说法,nearley-unparse目前无法生成字符串来匹配正则表达式。也没有任何增加该功能的计划,因为它本身就是一个项目。
以下是他们的充分答复:
嗨,这儿!谢谢你试图先发布一个StackOverflow问题,很抱歉没有人能帮上忙: 这是非解析器的一个限制:它不知道如何生成满足regexp的随机字符串,我们也不打算这样做(这本身就是一个项目!) 在我看来,您的语法很好,只要简单地看一下;如果您用近距离测试测试它,希望您能找到您所期望的解析树。
https://stackoverflow.com/questions/48568620
复制相似问题