問題タブ [pegjs]

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 に答える
552 参照

angular - Angular 2+ アプリの PEG.js

PEG.js を使用してパーサーを生成しましたが、そのパーサーをサービス クラスで使用しようとしています。タイプスクリプトクラスにインポートする方法がわかりません。

typescript 定義ファイルを作成するだけでよいですか? 私はタイプスクリプトが初めてで、そもそもJavaScriptが得意ではないので、これはばかげた質問だと確信しています。

追加情報が必要な場合はお知らせください。

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

javascript - Peg.JS での段落の解析

私は peg.js を学習しようとしており、テキストの単純な「ブロック」を解析したいと考えていますが、構文から「無限ループの可能性」エラーが発生することなく連続行をグループ化する方法に苦労しています。

ゴール:

解析されると、次のようになります。

言い換えると:

  • 1 行目は空白行が続くため、それ自体が段落です。
  • 3 行目と 4 行目は、その後に空白行があるため、段落です。
  • 6 行目は最後の行 (1 つまたは複数) であるため、段落です。

行と空白行に一致する文法を書くことはできます ( http://peg.arcanis.fr/4f4NdP/を参照)。段落は再帰エラーで終わります。これは、以前に PEG を使用したことがないため、見逃している非常に単純な n00b のような気がします。

イニシャライザ ブロックにグローバル関数を記述して、最後の要素を追跡し、コンテキストに応じたものにすることができることはわかっていますが、それは本来あるべき文法を実際に使用していないように感じます。

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

parsing - バックトラックなしでオプションの式を許可するように文法を変更するにはどうすればよいですか

簡単な文法は次のとおりです。

また、次のように一致する必要があります。

ただし、PEG.js はバックトラックを許可せず、単純に文字fillを消費します。<

文法を機能させるにはどのように変更すればよいですか?