2014-02-21 78 views
1

我想創建一個允許輸入正則表達式的小語言。我將用(f)lex掃描。什麼(f)正則表達式的lex規則?

因此,我需要一個正則表達式的Lex規則。有沒有人做過這個?

+1

有趣的問題。任何角色都可以成爲正則表達式的一部分,所以大概你正在尋找比'。*'更具表現力的東西。由於正則表達式的元素可以或多或少嵌套到任意深度,所以我懷疑使用yacc這樣的工具解析會對您的項目有所幫助。由於您的正則表達式會嵌入一種小語言,因此您可能希望用特殊的分隔符(例如Perl和JavaScript的反斜槓)將它們設置爲一種語言。 –

+1

什麼是「正則表達式的lex規則」?這是沒有意義的。一個正則表達式(用你的語言)是lex在一個簡單字符串常量之外識別的東西。爲它定義lex規則是不可能的。任何_surrounding_東西(標記等)都可能是可標記的,例如Perl的#s regex#replace#flags'。 –

+0

@DavidGorsline有趣的評論,謝謝!事實上,正則表達式不能由詞法分析規則來指定。 –

回答

1

什麼是「正則表達式的lex規則」?這是沒有意義的。一個正則表達式(用你的語言)是lex在一個簡單字符串常量之外識別的東西。爲它定義lex規則是不可能的。任何周圍的東西(標記等)可能都是可標記的,例如Perl's#regex#replace#flags

+0

你是對的。你的回答使我從深度編碼中退步了一步;然後我看到了明顯的。謝謝。 –

+0

非常歡迎,謝謝! –