回答
我已經做了一些挖掘和發現這些資源:
一個
sh
教程位於here含猛砸2.0的BNF語法(從here消失)的有關一個bash書附錄still here
我查看了的來源,pdksh
和posh
,但在我所需要的抽象層次上沒有發現任何東西。
我希望sh,csh,ash,bash包含解析器。這些的GNU版本是開源的;你可能會去那裏看看。
這不是EBNF - http://git.savannah.gnu.org/cgit/bash.git/plain/parse.y – user1709408 2016-02-02 20:20:41
不是純粹的EBNF,而是Yacc的變體。如果你看,你可以找到語法規則。是的,他們被埋在YACC/Lex定義的其餘部分之中。歡迎使用真正的工作工具語法定義。 – 2016-02-02 22:19:22
POSIX標準定義了POSIX shell的grammar。該定義包括一個帶註釋的Yacc語法。因此,它可以或多或少機械地轉換成EBNF。
如果你想要一個'真正'的語法,那麼你必須看起來更難。選擇你的'真正的外殼',找到源頭,並從中找出語法。
請注意,EBNF並未廣泛使用。它的實用價值有限,並不是因爲基本上沒有支持它的工具。因此,你不可能找到現成的EBNF語法(幾乎任何東西)。
[BNF](https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form#History)很容易使用:[Grako](https://pypi.python.org/pypi/grako/)從[BNF語法]派生[AST](https://pypi.python.org/pypi/grako/3.6.6#abstract-syntax-trees-asts)(http://stackoverflow.com/questions/334479/repository (bash)(http://my.safaribooksonline.com/book/operating-systems-and-server-administration/unix/1565923472/syntax/lbs.appd.div.3)) [Python](https://docs.python.org/3.6/reference/grammar.html?highlight=grammar),[etc](https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form #Software_using_BNF) – jalanb 2015-12-05 15:50:52
- 1. EBNF語法解釋
- 2. POSIX sh的重定向
- 3. PHP的EBNF語法定義?
- 4. 虛構語言的EBNF語法
- 5. bash/sh if語句語法
- 6. 編譯成sh的語言
- 7. OData URI查詢的EBNF語法
- 8. 如何爲EBNF語法編寫解析?
- 9. EBNF語法爲一個空格
- 10. 提示編寫好的EBNF語法
- 11. 如何在POSIX sh中標記數組?
- 12. EBNF文法(ANTLR)
- 13. Shell sh,語法while(condition)
- 14. 將EBNF語法轉換爲上下文無關語法
- 15. 在/ bin/sh參數中處理' - ':POSIX與Bash/Dash/FreeBSD的實現sh
- 16. 如何更換「/」在POSIX sh的字符串
- 17. Java EBNF?
- 18. JavaCUP - 如何將這行EBNF轉換爲CFG語法?
- 19. Infragistics XamSyntaxEditor - 語法解析用於xml的EBNF
- 20. C#語法在BNF或EBNF F#的分析器發生器#
- 21. BNF/EBNF /其他語法規範格式存儲庫
- 22. 如何使用EBNF語法解析註釋
- 23. 爲什麼這個EBNF語法不明確?
- 24. 在POSIX中將stderr複製到文件和終端sh
- 25. 什麼POSIX系統接口依賴於/ bin/sh?
- 26. 在POSIX中對字符串中的字符進行迭代sh
- 27. 從POSIX SH轉換「測試」正確的舊普通的Bourne shell
- 28. Forth語言EBNF無限循環規則或者語句
- 29. ECNScript的EBNF?
- 30. EBNF遞歸
@ceving發現另一個副本並將其保存到WayBackMachine中,應該增加鏈接的使用壽命。 – rubenvb 2017-02-07 13:09:37