問題タブ [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 投票する
2 に答える
220 参照

parsing - PEG.js で空でない行をグループ化する方法

PEG.jsでカテゴリ ファイルを解析しようとしています。

カテゴリをグループ化するにはどうすればよいですか (空白行が続く空でない行のセット)

今のところ、次のコードで行ごとに解析できます。

私が得た:

しかし、私は(グループごとに)欲しい:

私もこれを試しましたが、グループ化されず、いくつかの行の先頭に \n がありました。

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

javascript - pegjsを使用したブール式チェーンの解析

この文字列を peg.js で解析しようとしています。

関連する文法の抜粋は次のようになります。

問題は、ブール チェーンが 2 つ以上の式 (expr1 または expr2) に対して認識されず、それ以上の "または exprN" 部分を解析する方法がわからないことです。「ブール」ルールを導入しましたが、これも機能しません。これを解決し、任意の長いブール式を解析する方法について何か考えはありますか?

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

grammar - PEGJS述語文法

述語を使用して文法を作成する必要があります。以下の文法は、特定のケースでは失敗します。

指定された入力に対して失敗します

結果部分の「name」キーの値として「create」を指定する必要があります。

どんな助けでも素晴らしいでしょう。

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

javascript - Pegjs: 予約済みのキーワードを変数名として許可しない

私は自分の言語を Pegjs で書いています。いつものように、私の言語には、、、、などのtrueキーワードfalseifありelseますtoday。今、変数を宣言したいのですが、変数名を予約済みのキーワードにすることはできないようです。language キーワードを除いて、任意の英字の後に英数字を続けることができます。

私は次のことを行いました(Pegjs Onlineでテスト可能):

trueは違法ですが、true1そうではありません。これで問題ありません。しかし、boolean自分の言語の別の場所で構造を定義したので、定義内の許可されていないキーワードを手動で再定義する代わりに、その定義を再利用することはできませんvariableか?

私のソリューションがエラーを起こしやすい理由を想像できます。私はいくつかのことを試しましたが、うまくいきませんでした。

ご協力いただきありがとうございます!

0 投票する
3 に答える
438 参照

pegjs - How to use PEGjs for validation, instead of parsing?

I have the following PEGjs productions:

I'd like to somehow get true if my input string matches Name, and false otherwise. I also don't care about parsing out the component parts.

However, PEGjs really wants to throw an exception if the match fails.

I could of course wrap it in a try/catch, but I'd prefer to avoid that. And I'd like to avoid collecting the parsed components as well (i.e., I don't need ["a", ["b", "c", "d"]] when matching "abcd", I just need true).

Is there some hidden PEGjs feature that will make this work? Maybe a clever action, or an innovative use of combinators?

Or perhaps I should be using an entirely different tool, and not a parser-generator? If so, does anyone know what I should be using?

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

grammar - Peg.JS の左再帰エラー

私は現在、サイエンス フェア用のプログラミング言語を作成しています。

これは私の PEG.js 文法です:

次のエラーが表示されます:「ルール 'ステートメント' で左再帰が検出されました。」しかし、なぜこれが起こっているのかわかりません。

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

javascript - peg.js が ParseError をスローしないようにする

解析エラーをスローする代わりに、PEG.js がデフォルト値を返すようにすることはできますか?

基本的に私は持っていたい

私の文法では、ルールが部分的に一致する場合でも、解析エラーがスローされます。

そう

「546aueu」で解析エラーがスローされます。http://pegjs.org/onlineでお試しください

エラーをスローする代わりに、パーサーに何かを返すように指示するにはどうすればよいでしょうか。

私の知る限り、最初のルールと一致するように試み、失敗した場合は 2 番目のルールと一致する必要があります。

助けと提案をありがとう。

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

javascript - pegjsでネストされたコメントをどのように解析しますか?

pegjs でどのようにコメントを解析するのか (たとえば、Haskell 風に) 疑問に思っていました。

目標:

たとえば、次は解析すべきではありません。

ただし、エスケープメカニズムも必要です。

これは s 式を解析しているように見えますが、s 式を使用すると簡単です。

閉じ括弧は1文字に過ぎず、ニンジンと一緒に「できない」からです。余談ですが、pegjsで1文字よりも長いものを「できない」のはどうしてだろうと思っています。

ご協力いただきありがとうございます。