問題タブ [lpeg]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
368 参照

lua - 各試合のLPegインクリメント

Lua のシリアル化ライブラリを作成しており、LPeg を使用して文字列を解析しています。K/V ペアが機能しています (明示的に名前が付けられたキーを使用)。しかし、ここで自動インデックスを追加します。

次のように動作します。

に評価されます

すでに値のマッチングが機能しているので (文字列、テーブル、数値、およびブール値はすべて完全に機能します)、それについての助けは必要ありません。私が探しているのはインデックスです。@[値パターン] の一致ごとに、見つかった @[値パターン] の数を取得する必要があります。つまり、値のシーケンス ("@"value1" @"value2") を一致させることはできますが、一致させることはできません。一致の数に応じてインデックスを割り当てる方法がわからない. それが十分に明確でない場合は、コメントしてください.

これが私の現在のパターンの一部です(圧縮表記を使用):

コードの最後の行でわかるように、これを行う関数があります。

0 投票する
2 に答える
1353 参照

lua - Windows で luarocks を介して Moonscript をインストールする

luarocks を使用して Moonscript をインストールしようとすると、moonscript の依存関係をインストールする際にプロセスがエラーになり、「cl」はインストール済みまたは認識済みのプログラムではないと表示されます。

ここで何をすべきかわかりません。過去数日間、解決策をグーグルで検索してきましたが、関連するものは見つかりませんでした。それが役立つ場合、 Lua for Windowsが提供する Lua 5.1.4 インストールを使用しています。

0 投票する
1 に答える
451 参照

lua - lpeg による TeX ライクな言語の解析

LPEG について理解するのに苦労しています。私は自分のやりたいことをする 1 つの文法を作成することができましたが、これには頭を悩ませていて、うまくいきませんでした。アイデアは、TeX の簡略化された形式であるドキュメントを解析することです。ドキュメントを次のように分割したい:

  • \begin{cmd}と の\end{cmd}ペアであるEnvironments 。
  • so: のように引数を取ること\foo{bar}も、bare: にすることもできるコマンド\foo
  • 環境とコマンドの両方に、次のようなパラメーターを指定できます\command[color=green,background=blue]{content}
  • その他のもの

また、エラー処理のために行番号情報を追跡したいと思います。これが私がこれまでに持っているものです:

それはほとんど動作します!

しかし!まず、行番号処理部分がまったく機能しません。内の関数incrementlineが起動されることはありません。

また、ネストされたキャプチャ情報が処理関数にどのように渡されるかを完全に理解することもできません (これがCgCCt散らばらせ、文法上で半ランダムにした理由です)。これは、 内から 1 つのアイテムのみが返されることを意味しますcommand_with

また、環境の開始と終了が一致することを確認できるようにしたいのですが、そうしようとすると、「開始」からの後方参照が「終了」に到達するまでに範囲内にありませんでした。ここからどこへ行けばいいのかわからない。

0 投票する
2 に答える
1577 参照

regex - Lua パターンで任意の番号を照合する

diff3 コマンドからの出力を解析しています。いくつかの行は次のようになります。

真ん中の数字が気になります。単一の数値またはコンマで区切られた数値のペアのいずれかです。正規表現を使用すると、次のように両方をキャプチャできます。

Luaで最も単純に同等のものは何ですか? オプションの 2 番目の数値があるため、その正規表現を string.match に直接変換することはできません。

0 投票する
2 に答える
736 参照

lua - 再帰的な LPeg パターンの作成

通常の PEG (構文解析式文法) では、これは有効な文法です。

ただし、LPeg を使用してこれを記述しようとすると、そのルールの再帰的な性質が失敗します。

この単純な例では、再帰を使用しないようにルールを書き直すことができますが、書き直したくない既存の文法がいくつかあります。

LPeg で自己参照ルールを作成するにはどうすればよいですか?

0 投票する
1 に答える
388 参照

lua - Luaでパターンのn回の繰り返しを正確に一致させる方法は?

正確に 3 つのアルファベット文字を含む文法を書いています。これが私のコードです:

私が照合している入力は次のとおりです。

[4/23/15 4:49:49:371 CDT]

タイムゾーンの 3 文字のアルファベットのみに一致する式を取得するにはどうすればよいですか? このコードが現在機能する方法は、3つ以上のアルファベット文字に一致することです。


変!これは機能しますか?

そのようですが、ここで参照されている構文が見つかりません。

http://www.inf.puc-rio.br/~roberto/lpeg/lpeg.html