1
我正在使用Parsekit for XCode,但此問題可能適用於大多數解析器生成器。我用gammer解析腳本,它工作正常。但是,我遇到了下一步的問題。考慮一下:使用Parsekit構造解析樹
@start = line +; line = tree;
tree ='tree'fruits branches;
fruits ='with''fruits'Number; branches ='with''branches'Number;
和腳本傳遞:
樹果實8設有分支機構12
如果我再implemenet方法來搭配,水果和分支機構將一次匹配,這是預期。
但是樹會匹配兩次,爲什麼?這阻止了我構建我想要的分析樹。
感謝您的幫助!
嗨託德, 謝謝,但我不能讓我的頭解決方案。將我正在製作的目標存儲在程序集的目標中? 我看到它的方式,我會匹配'樹',將其添加到傳遞樹,匹配'水果'和'分支',並將它們添加爲兒童等... 是否可能有一些示例某處顯示如何使用目標解決方案?對於Parsekit btw的好工作:) – FBryant87
我認爲答案是將您正在構建的抽象樹/圖的根對象(我認爲是「傳遞樹」)存儲爲當前PKAssembly的目標,而不是作爲ivar。當前的PKAssembly或者是您創建的開始的或者是傳入-didMatchXXX:方法的。你通過解析構建的「東西」應該始終是當前程序集的目標。你正在建設的「東西」不應該是一個伊娃或全球變種。 –