2017-02-13 11 views
1

常に一致するLPegパターンを作成する方法はありますか?私は空の文字列にマッチすることについて話していません、私は常に失敗するパターンについて話していますので、あなたがそれを順序付けられた選択肢に入れれば、常に第2の選択肢に落ちます。何も一致しないLPegパターンを書くにはどうしたらいいですか?

この理由は、私がLPEGの小さなパーサを書いていますし、私は私が代わりに

operators = lpeg.P("==") + "~=" + "<=" + ">=" + "<" + ">" 
+0

lpeg.reでは '(&。!)'を試すこともできます。つまり、次の文字があり、次の文字はありません。これらの2つのシナリオは相互に排他的です。 – greatwolf

答えて

1

lpeg.P(false)

operators = empty_pattern + "==" + "~=" + "<=" + ">=" + "<" + ">" 

を書くことがしたいことは、最も簡単な方法であるということです。

引数がブール値の場合、結果は入力を消費することなく、常に成功するか、常に(ブール値に従って)失敗するパターンになります。

+0

ありがとう!これはまさに私が必要としていたものです。 – hugomg

関連する問題