left-recursion

    0熱度

    1回答

    我有這些語法來解決左遞歸。但爲什麼這些語法是遞歸的呢?他們沒有關注架構A -> Aa | b: 1,S → 0S1 | 01 2,S → + SS | * SS

    0熱度

    2回答

    我寫布爾表達式的遞歸下降解析器的布爾表達式,例如: (1 * 0) (0 + ~1) (0 * (1 + c) 其中1爲「真」,0是「假」,+是'或',*是'和',〜是'不是','c'只是一些變量名(可以是任何單個字母)。我計劃使用括號而不是實施某種操作順序。 我現在的分析器可以識別表達 Expression ::= 1 | 0 | Character

    0熱度

    1回答

    我遇到了稍微不同的語法問題,它是帶有單個規則的語法(一個巨大的語法),並且有幾次調用自身。我不知道如何用Xtext來表示這種語法,它是一門學術工作,是一種用來指定需求的語言。始發語法,從文章獲得的是: 和我的沮喪嘗試如下所示: Relax: root+=General+; //nao tinha o tipo boleano terminal BOOLEAN returns ecore::

    1熱度

    2回答

    所以我定義了一個語法解析的空調風格語法語言: grammar mygrammar; program : (declaration)* (statement)* EOF ; declaration : INT ID '=' expression ';' ; assignment : ID '=' expression ';' ; expression

    0熱度

    1回答

    使用ANTLR 4.6,2016年11月23日的快照。 我有兩個規則,每個是左遞歸。我擴展了幾個替代方法來公開左遞歸。 ANTLR4處理這個問題,因爲左遞歸是明確的。但是,這兩條規則也是相互左遞歸的。 如何解決相互左遞歸,並這樣做,使規則不是一團糟?現在我有很好的評論,展示了擴展的內容,並將其移至primary2和constant_primary2中,這些參數並不涉及相互左遞歸。 constant

    2熱度

    1回答

    我在prolog中編寫了DCG(形容詞短語和介詞短語),當我試圖運行它時,通過輸入ip([every,boy,loved,some,girl]),它顯示出本地堆棧。我意識到nbar有問題。有人可以幫我嗎?非常感謝。 %tree treeP(Term):- % Print the tree assuming indentation 0 treeP(0,Term), %

    2熱度

    2回答

    我試圖匹配一些語句(例如001 [0,0,1],(1+(1/0))['(',1,+,' ( '1/0 ')', ')'],等等。 我自己做了下面的小DCG。 g3 --> s3. s3 --> e3. e3 --> eAdd. e3 --> eMin. e3 --> eMul. e3 --> eDiv. e3 --> n3. eAdd --> ['('],e3,['+'],e3,

    1熱度

    1回答

    我有兩個以下維基百科的defintions: 左遞歸 文法是左遞歸的當且僅當存在一個非終結 符號A可派生出一個句子形式與其自身作爲 最左邊的符號。象徵性地, A⇒Aα其中⇒表示進行一個或多個替換的操作,並且α是任何序列的終端和非終端符號。發生 和 直接左遞歸 直接左遞歸時,定義可以得到滿意的只有一個替代。它需要形式的⇒Aα其中α是非終結符和終端的序列的規則, https://en.wikipedi

    0熱度

    1回答

    我目前正在研究Xtext語法,並用左遞歸圖得到了一些問題。我已經消除了所有直接左遞歸在我的語法,但現在我有一些間接的左遞歸,這是在與消息This rule call is part of a left recursive call graph. 這裏的IDE顯示的是我的問題的一個例子: grammar com.stackoverflow.Example with org.eclipse.xtext

    0熱度

    1回答

    我正在寫一本語法使用ANTLR的sintaxe語言LUA,但我越來越exp_prefixo,variavel和chamada_de_funcao之間的相互左遞歸誤差。我閱讀了其他帖子中給出的很多解決方案,但無法使其適用於我的具體情況,因爲其中大多數都是直接遞歸或只有兩個相互遞歸的規則。 這裏是相互左遞歸的一套規則: exp_prefixo : variavel |