Parsing jade-like语法的Jison语法

Parsing jade-like语法的Jison语法,parsing,jison,Parsing,Jison,我正在尝试使用indent/dedent实现类似于jade的语法: div p id="text" 但我的EOF有问题: Error: Parse error on line 4: div p id="text" ----------------^ Expecting 'DEDENT', 'IDENTIFIER', got 'EOF' 语法: 我做错了什么 只有在看到行中的第一个非空白字符时,才能生成DEDENT标记。在EOF中,没有这样的字符,因此永远不会生成最终的dedent。DE

我正在尝试使用indent/dedent实现类似于jade的语法:

div
  p id="text"
但我的EOF有问题:

Error: Parse error on line 4:
div  p id="text"
----------------^
Expecting 'DEDENT', 'IDENTIFIER', got 'EOF'
语法:


我做错了什么

只有在看到行中的第一个非空白字符时,才能生成DEDENT标记。在EOF中,没有这样的字符,因此永远不会生成最终的dedent。DEDENT是语法所必需的,因此在EOF中会出现语法错误


在报告文件结尾之前,您的EOF规则必须刷新缩进堆栈。

因此,我们要求问题是自包含的(不指向其他服务上的代码),并且代码示例必须完整且最少。我已经回答了你的问题,但是如果你把它编辑成包含一个而不是github链接,对未来的读者会有帮助。谢谢。我修复了缺失的dedents,但仍然出现相同的错误,你能帮我解决吗?@Anton:如果没有看到你的代码,这将很困难:-)你读过我对你的问题的评论了吗?无论如何,我认为您的第一个调试练习是重写lexer,以便打印它生成的标记,并验证它们(a)是否如您所期望的那样,以及(b)是否满足语法要求。(事实上,您应该能够反复调用lexer来打印令牌流;您不需要实现完整的调试接口:))谢谢。将尝试打印每个令牌,或者自己实现lexer。