我目前正在學習有關編譯器和我在LR理解(0)有,我們有「移位/減少」或「降低/減少」衝突的情況下,但它是不可能有「移位/轉移」的衝突!爲什麼我們不能有「轉變/轉變」衝突?當解析器不能告訴是否轉移(推下一個輸入令牌解析棧的頂上)或減少(從解析棧中彈出一個系列終端和非終結點的)爲什麼編譯器不能有「移位/移位」衝突?
8
A
回答
18
移位/減少衝突發生。減少/減少衝突是當解析器知道要減少時,但不知道要執行哪種減少。
如果你有移進/移衝突,解析器會知道,它需要THR下一個標記推到它的解析堆棧,但不知道如何做到這一點。由於只有一種方法可以將令牌推送到解析堆棧中,所以通常不會有任何此形式的衝突。
也就是說,如果您有一個奇怪的設置,其中存在兩個或更多個從給定解析狀態導出並用相同終端符號標記的轉換,理論上可能存在移位/移位衝突。在這種情況下,衝突將是是轉移到一個國家還是轉移到另一個國家。如果您嘗試將自動機壓縮到更少的狀態並且執行不正確,或者您嘗試構建非確定性分析自動機,則可能會發生這種情況。在實踐中,這絕不會發生。
希望這會有所幫助!
+0
第三段非常有用,謝謝! – alcuadrado
相關問題
- 1. 移位/減少衝突yacc
- 2. 移位減少衝突
- 3. 移位/減少衝突byaccj
- 4. 移位減少衝突
- 5. 解析器 - 移位/減少衝突
- 6. 爲什麼位移?
- 7. BISON:沒有移位/減少衝突
- 8. 將Delphi代碼移植到64位 - 爲什麼沒有編譯器警告?
- 9. 在CUP中移位/減少衝突
- 10. 移位/減少衝突野牛
- 11. 解決移位/減少衝突
- 12. 在YACC中移位減少衝突
- 13. 野牛移位/減少衝突
- 14. 野牛移位/減少衝突
- 15. 級聯移位減少衝突
- 16. 爲什麼我的位沒有左移?
- 17. 爲什麼編譯器不會給出相沖突的錯誤?
- 18. 爲什麼〜0 >> 1不移位?
- 19. 奇怪移位/減少不含糊衝突(我認爲)語法
- 20. 爲什麼有些ARM指令不使用桶式移位器?
- 21. 爲什麼編譯器在除以2時產生右移31位?
- 22. 在緩衝區中移位/不移位數組的元素
- 23. 爲什麼移位超過允許位仍然有效?
- 24. 爲什麼在這個PIC彙編代碼中不會移位?
- 25. 當編譯爲64位時,P/Inovke參數偏移32位
- 26. 解決LALR解析器中的移位/減少衝突
- 27. 移位/減少在命題邏輯分析器衝突快樂
- 28. 分析器移位/減少減少/減少衝突
- 29. 6502彙編移位位
- 30. 爲什麼我的元素會移位?
有減少減少衝突,因爲它們是可以選擇減少處理的2個產品。 由於您可以通過一些生產轉移和減少,所以存在轉換減少衝突,並且顯然仍然需要進行解析。 移動只是意味着1件事,你提前輸入流,所以不能有移位衝突。 – axiom