Go 佩格语法中的贪婪匹配?
我使用(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 <- '\
'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] (')