grammar

    2熱度

    1回答

    我試圖在Java中創建一個語法分析器(使用CUP),可以承認這段代碼: Instr ::= ... | IF CONOP Exp:e CONCL THEN CondInstrList:l ... ; ... CondInstrList ::= CondInstrList CondInstr | /*empty*/ ; ... Co

    0熱度

    1回答

    我想知道如何獲取語言{0^m 1^m 2^n | n> = 0,m> n}。 這是我所知道的,我不確定它是否正確。請糾正我,如果我錯了: S -> 01A | 0B1A | 00B11A A -> 2A | 2 | λ B -> 01 謝謝。

    0熱度

    1回答

    我對JAPE語法有很大的麻煩。對於需要與5種類型的文檔匹配的單詞,我有一個小的令牌字典。 一種字典適用於一種類型:例如作業,該人的字典將包含{ "Engineer" , "Doctor", "Manager"}。我需要閱讀這本字典,爲此創建JAPE規則。這是我第一次嘗試 階段:JOBTITLE 輸入:查找 選項:控制= appelt調試=真 Rule: Jobs ( {Lookup.major

    1熱度

    1回答

    我在試着翻譯一個VHDL BNF定義here到標記的BNF與BNFC 使用運行bnfc vhdl93-bnf.cf結果後: bnfc: user error (syntax error at line 22 before { , element_association }) 我不確定錯誤是什麼。我已經通過了BNFC和LBNF報告的文檔,但我一定錯過了一些東西。 這是我到目前爲止有: rules

    0熱度

    1回答

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

    4熱度

    1回答

    Perl6標準語法比較大。儘管一旦掌握了這種表達方式,它就會形成一個掌握障礙。例如,核心構造通常具有支持不同編程範例的多種形式。一個基本的例子是創建Pairs各種語法: Pair.new('key', 'value'); # The canonical way 'key' => 'value'; # this... :key<value>; # ...means the same a

    3熱度

    1回答

    我想創建一些代碼,可以採取任何遞歸語法數據類型和該數據類型的任何表達式,併產生一個相同類型的所有子表達式的列表,建立起來的,種類就像一個scan這個類型的遞歸。 我已經爲伴隨的玩具計算器語法類型EExp編寫了兩個手動示例。第一個示例使用Lens庫中的棱鏡和透鏡,僅適用於一個eg1示例表達式,而第二個函數僅使用手動代碼,但可用於任何EExp表達式。 理想情況下,我可以使用模板哈希克爾或其他東西來自動

    0熱度

    1回答

    我似乎無法找到等價的LR語法: S→aSbS | bSaS | ε 其中我認爲識別字符串與'b'相同的數字比'b'。 這將是一個解決方法?是否有可能找到和LR語法呢? 在此先感謝! 編輯: 我發現什麼,我認爲是等效的語法,但我一直沒能證明這一點。 我想我需要證明原語法生成上面的語言,然後證明語言是爲以下等價語法生成的。但我不知道該怎麼做。我應該怎麼做? S→aBS | bAS | ε B→b |

    0熱度

    1回答

    所以我我試圖解決其中我有兩個基礎類CMIX和ç問題,因此CMIX包含Ç實例的列表: [C1,C2,... Cn]將由一個自定義語法(字符串值操作符 - 「+」,「 - 」,「」,「(」,「)」操縱,但在某種意義上例如,一個[C1 + C2 + ... + Cn]組合可以爲每個C1,C2,... Cn調用C.foo(),然後然後將這些邏輯添加到操作中結果類似地,用對象集合來構成語法術語,例如:[C1

    0熱度

    1回答

    我正在嘗試爲JFlex和Cup編寫javascript-ish語言的解析器,但是我遇到了致命移位/減少問題以及減少/減少問題的一些問題。 我已經徹底搜索並發現了大量的例子,但我無法將這些推斷到我的語法。我迄今爲止的理解是,這些問題是因爲解析器無法確定它應該採用哪種方式,因爲它無法區分。 我的語法如下: 以INPUT開頭; INPUT::= PROGRAM; PROGRAM::= FUNCTIO