lpeg

    5

    1答えて

    私のLuaアプリケーションの一部は検索バーです。私はブール式を理解しようとしています。私はLPegを使用していますが、現在の文法は奇妙な結果を与える:は > re, yajl = require're', require'yajl' > querypattern = re.compile[=[ QUERY <- (EXPR/TERM)? S? !. -> {} EXPR

    3

    1答えて

    私は、文字列と一致するようにLPegパターンを書き込むしようとしている: はその後 が二つが含まれていない文字の英数字の文字 で始まるを以上の連続したハイフン(例えば禁止しtest--string)参考のために 、私が探しているものと一致[a-zA-Z](-?[a-zA-Z0-9])*正規表現。 ここ 私は参考のために、と働いているコードです: require "lpeg" P,R,C = lp

    1

    1答えて

    私はLPegベースのパーサーを書いています。構文解析エラーがnil, errmsgを返すようにするにはどうすればよいですか? 私はerror()を使用することができますが、私が知る限り、通常のエラーを生成するのはnil, errmsgではありません。 コードがpretty longですが、関連する部分はこれです: local eof = lpeg.P(-1) local nl = (lpeg.P

    1

    1答えて

    常に一致するLPegパターンを作成する方法はありますか?私は空の文字列にマッチすることについて話していません、私は常に失敗するパターンについて話していますので、あなたがそれを順序付けられた選択肢に入れれば、常に第2の選択肢に落ちます。 この理由は、私がLPEGの小さなパーサを書いていますし、私は私が代わりに operators = lpeg.P("==") + "~=" + "<=" + ">="

    2

    2答えて

    私はa text editorで、LPEGを使って構文強調表示を実装しています。物事を稼働させることはかなりシンプルでしたが、私は最低限必要な作業しか行っていませんでした。 私はこのようなパターンの束を定義しました: -- Keywords local keyword = C( P"auto" + P"break" + P"case" + P"char" +

    0

    1答えて

    グループ内に内部グループを持つコンマ区切りグループ(角カッコで囲んである)を解析する必要があります。外部のグループのみを分離する必要があります。 私はこれを行う機能を持っている: function lpeg.commaSplit(arg) local P,C,V,sep = lpeg.P, lpeg.C, lpeg.V, lpeg.P(",") local p = P{

    0

    1答えて

    明確な説明と、このエラーを示す簡単な例は誰でも、明らかにマッチタイムキャプチャ(Cmt)に関連付けることはできますか? 私は http://lua-users.org/lists/lua-l/2013-06/msg00086.html おかげ