Go 佩格语法中的贪婪匹配?

Go 佩格语法中的贪婪匹配?,go,grammar,greedy,peg,Go,Grammar,Greedy,Peg,我使用(go)来提取撇号之间的文本,它本身可能包含一个或多个撇号,例如 'Jack's Giant' 我想我因此需要一种非盲贪婪匹配。我用这个语法递归地处理这个问题: root <- WordGroup WordGroup <- Apostrophe WordGroupRecursive WordGroupRecursive <- Word WordGroupRecursive / Apostrophe Word <- . Apostrophe <- '\

我使用(go)来提取撇号之间的文本,它本身可能包含一个或多个撇号,例如

'Jack's Giant'
我想我因此需要一种非盲贪婪匹配。我用这个语法递归地处理这个问题:

root <- WordGroup

WordGroup <- Apostrophe WordGroupRecursive

WordGroupRecursive <- Word WordGroupRecursive / Apostrophe

Word <- .

Apostrophe <- '\''


有没有办法以非递归方式提取
Word
,这样我就不需要展平应用程序代码中的节点树?

这看起来像是用go编写的程序而不是go代码本身的问题。我建议您在库的github页面上打开一个问题
+ root/0[WordGroup]
  - Apostrophe (')
  + WordGroupRecursive/0
    - Word (J)
    + WordGroupRecursive/0
      - Word (a)
      + WordGroupRecursive/0
        - Word (c)
        + WordGroupRecursive/0
          - Word (k)
          + WordGroupRecursive/0
            - Word (')
            + WordGroupRecursive/0
              - Word (s)
              + WordGroupRecursive/0
                - Word ( )
                + WordGroupRecursive/0
                  - Word (G)
                  + WordGroupRecursive/0
                    - Word (i)
                    + WordGroupRecursive/0
                      - Word (a)
                      + WordGroupRecursive/0
                        - Word (n)
                        + WordGroupRecursive/0
                          - Word (t)
                          - WordGroupRecursive/1[Apostrophe] (')