簡體   English   中英

使用正則表達式解析規則CF語法(如何使用模板)

[英]Parse rules CF-grammar using Regular Expressions (how using templates)

我有CF語法。 它的規則如下:

S-> a | AS

A-> AB | a | b

B-> b

我想使用正則表達式解析這些規則。

我的正則表達式:

\\ b([AZ])->(?:([A-Za-z] +)\\ |?)+

對於:“ A-> AB | a | b”結果:

0:A-> AB | a | b

1:A

2:b

但我想這樣:

0:A-> AB | a | b

1:A

2:AB

3:

4:b

正則表達式的功能不足以完成任務,但是正則表達式在EBFN中用於增強語法的表達能力。 您可以考慮使用自上而下的解析器(通過遞歸調用進行成形)來解析您的輸入。 在所有允許相互遞歸調用的語言中,這很容易實現。 它要求語法有一些限制(如果您有興趣,請參見Wikipedia)。 乍一看,您的語法應為LL(1),即需要1個令牌超前。

您可以使用->|\\|拆分所有規則 獲得所需的列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM