回答
左側的雙向條(「||」)可以被視爲一個函數的「輸入」,右側的雙向條被視爲「輸出」。因此,在這種情況下,字符或行是輸入,而雙條之間的路徑是測試。如果任何測試將字符/行視爲「空白」,則函數的輸出將爲「真」,否則將爲「假」。
特別是,假設您遵循第四條路徑。在這條路上,你將首先遇到一個「/」,隨後跟着另一個「/」,接着是任何其他字符,直到EOL字符。在這種情況下,如果代碼行是「//示例」,那麼輸出將爲真。
好吧,這有幫助,但我卡在第三行後,但。出於某種原因,我認爲該圖試圖告訴第三行/ *// * /的空白。 感謝您的幫助。 – RufioLJ
認爲它好像你是解析器或語言,你需要一套規則來理解輸入的字符流。
通過思考解析器是如何工作的,您可以準確理解什麼是JavaScript語言的標記。
從最左側的||
開始並繼續。因爲曲線不是從左邊開始(你正在旅行的方向),所以不能遵循第一個橫條(緊接着你的起始點)。如果你看它來自哪裏,應該很容易將它表示爲while
循環:
while (!EOF) {} // While there's still text to parse
第二行可以遵循,因爲曲線從左邊(繼當前目錄)該線始於表示該if-else語句:
if (char == '/') {} // Forward slash
else if (char == '\n') {} // Line end
else if (char == '\t') {} // Tab
else if (char == ' ') {} // Space
空格,製表和結束線都立即結束該功能,並立即結束return
或continue
。但是,如果字符是一個正斜槓,它需要檢查它是否是單行(//
)或者多(/* */
):
*char++; // Move to next character
if (char == '*') {} // Multi line
else if (char == '/') {} // Single line
如果這是它讀取一行,直到行的結束和繼續。如果它是多行,則以類似的方式讀取,直到找到'*'後跟'/',然後繼續。
您引用的語法圖被廣泛用於記錄Pascal語法。它基本上是解析源代碼的流程圖。在您的示例中,圖表中的每個「塊」都是一個函數調用。從技術上講,我們正在討論遞歸下降解析器。
所以,我想它的方式是:
解析器會從輸入流的字符。所以我們去「嘗試」空白函數,如果那個字符是空格,製表符,行結束符或'/'字符,我們將進入下一步,如果不是我們用'未找到'返回值退出。
如果它是'/',那麼我們得到下一個字符。如果它是另一個'/',那麼我們讀取字符,直到我們得到一個行結束,然後用'找到'返回值退出。
如果下一個字符是'',那麼我們看看任何不是'/'或''的東西。 etc ...
基本上流程是從左到右,但是當一條線循環回到左側時,我們有一個重複。關於這些圖的簡潔之處在於,一旦掌握了它,就可以快速編寫語法正確的代碼。您可以按照'流程圖'輕鬆編寫遞歸下降解析器。
(參見this answer)
要學會如何閱讀鐵路圖,你需要了解圖的差異在這三種情況:
零個或多個,零或一個,一個或更多。
要了解它們的不同之處(如下圖所示),點爲「您從左邊緣開始,沿着軌道到達右邊緣。」所以想象你是火車,你只是右轉,不能左轉。
通過http://bottlecaps.de/rr/ 創建的上述圖象在「編輯語法」選項卡,輸入以下語法:
zeroormore ::= element*
zeroorone ::= element?
oneormore ::= element+
- 1. 如何閱讀此列表?
- 2. 如何閱讀此lambda表達式
- 3. 如何閱讀此功能?
- 4. 如何閱讀此XML?
- 5. 如何閱讀此標題?
- 6. 如何閱讀此代碼
- 7. 如何閱讀JavaScript對象
- 8. PHP ganon如何閱讀javascript
- 9. 如何閱讀的JavaScript
- 10. 如何閱讀Javascript文檔?
- 11. 如何閱讀此高級return語句?
- 12. LINQ to XML - 如何閱讀此XML?
- 13. 如何閱讀此條形碼?
- 14. 如何在PHP中閱讀此方法?
- 15. 如何閱讀此php代碼?
- 16. 如何閱讀表 - TD內容與htmlagilitypack - 此表 - TD有一定bacgkround圖像 - xpath
- 17. 如何閱讀來自此URL的文字和圖片?
- 18. 如何閱讀嵌套表
- 19. 如何閱讀表關係?
- 20. 如何閱讀本表/ Json
- 21. 如何閱讀此列表並解析它?
- 22. 閱讀從Javascript
- 23. 閱讀的JavaScript
- 24. 閱讀的JavaScript
- 25. 閱讀的JavaScript
- 26. 的JavaScript的形式項閱讀的閱讀列表
- 27. 如何閱讀壓縮的JavaScript?
- 28. 如何閱讀JavaScript事件編程
- 29. 如何閱讀使用JavaScript的JSON?
- 30. 如何閱讀使用PHP的Javascript cookie
基本上,空格,製表符和新行字符都被認爲是空白,以及任何意見。 – Brad
我在試圖弄清楚註釋語法與白色空間有什麼關係時遇到了麻煩,但是現在用Brad的答案是有道理的。 –
我現在有點了解。但是結構呢?仍然有點混淆與下一節例子:/我應該跳過語法章節,並與對象? – RufioLJ