2024 年日本 PHP 研討會

簡介

警告

此擴充套件為實驗性。 此擴充套件的行為,包括其函式名稱和圍繞此擴充套件的任何其他文件,都可能在未來的 PHP 版本中更改,恕不另行通知。 使用此擴充套件的風險需自行承擔。

parle 擴充套件提供通用的詞法分析和語法分析功能。 此實作基於 » Ben Hanson 的函式庫,並且需要 » C++14 相容的編譯器。 詞法分析器基於正規表示式比對,語法分析器是 LALR(1)。 詞法分析器和語法分析器會即時產生,並可在完成後立即使用。 Parle 處理語法分析和詞法分析,適當的資料結構表示和處理是實作者的任務。 序列化和程式碼產生目前不受此擴充套件支援。

詞法分析(Lexer analysis)是將字元序列分割成詞素(lexeme)列表的過程。接著,詞素列表可以用於根據形式文法進行語法分析。這些操作也稱為詞法分析(lexing)和語法分析(parsing)。本文件並非旨在提供關於詞法分析和語法分析的詳盡資訊。網路上有許多資源提供了這方面的優質資訊。文件中包含幾個使用範例,以展示其功能。此擴展功能對於想要學習或利用語法分析和詞法分析的 PHP 程式設計師來說非常有用。狀態機和文法分析不需要手動實作,parle 替您處理了這些複雜的任務。因此,開發可以專注於實際問題的解決。

parle 的常見用例是,當資料格式過於複雜,以至於無法使用 PCRE 的正規表達式匹配來處理時。實際應用範圍相當廣泛。無論是特定的資料格式、現有函式的行為修改,甚至是自定義程式語言等等。輔助方法,例如用於檢查生成的狀態機的 Parle\Lexer::dump(),或用於檢查生成的文法的 Parle\Parser::dump() 都非常有用。 Parle\Parser::trace() 方法也可用於追蹤語法分析操作。

新增註解

使用者貢獻的註解

此頁面沒有使用者貢獻的註解。
To Top