問題タブ [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.
parsing - PEG.js で空でない行をグループ化する方法
PEG.jsでカテゴリ ファイルを解析しようとしています。
カテゴリをグループ化するにはどうすればよいですか (空白行が続く空でない行のセット)
今のところ、次のコードで行ごとに解析できます。
私が得た:
しかし、私は(グループごとに)欲しい:
私もこれを試しましたが、グループ化されず、いくつかの行の先頭に \n がありました。
javascript - pegjsを使用したブール式チェーンの解析
この文字列を peg.js で解析しようとしています。
関連する文法の抜粋は次のようになります。
問題は、ブール チェーンが 2 つ以上の式 (expr1 または expr2) に対して認識されず、それ以上の "または exprN" 部分を解析する方法がわからないことです。「ブール」ルールを導入しましたが、これも機能しません。これを解決し、任意の長いブール式を解析する方法について何か考えはありますか?
grammar - PEGJS述語文法
述語を使用して文法を作成する必要があります。以下の文法は、特定のケースでは失敗します。
指定された入力に対して失敗します
結果部分の「name」キーの値として「create」を指定する必要があります。
どんな助けでも素晴らしいでしょう。
javascript - Pegjs: 予約済みのキーワードを変数名として許可しない
私は自分の言語を Pegjs で書いています。いつものように、私の言語には、、、、などのtrue
キーワードfalse
がif
ありelse
ますtoday
。今、変数を宣言したいのですが、変数名を予約済みのキーワードにすることはできないようです。language キーワードを除いて、任意の英字の後に英数字を続けることができます。
私は次のことを行いました(Pegjs Onlineでテスト可能):
今true
は違法ですが、true1
そうではありません。これで問題ありません。しかし、boolean
自分の言語の別の場所で構造を定義したので、定義内の許可されていないキーワードを手動で再定義する代わりに、その定義を再利用することはできませんvariable
か?
私のソリューションがエラーを起こしやすい理由を想像できます。私はいくつかのことを試しましたが、うまくいきませんでした。
ご協力いただきありがとうございます!
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?
grammar - Peg.JS の左再帰エラー
私は現在、サイエンス フェア用のプログラミング言語を作成しています。
これは私の PEG.js 文法です:
次のエラーが表示されます:「ルール 'ステートメント' で左再帰が検出されました。」しかし、なぜこれが起こっているのかわかりません。
javascript - peg.js が ParseError をスローしないようにする
解析エラーをスローする代わりに、PEG.js がデフォルト値を返すようにすることはできますか?
基本的に私は持っていたい
私の文法では、ルールが部分的に一致する場合でも、解析エラーがスローされます。
そう
「546aueu」で解析エラーがスローされます。http://pegjs.org/onlineでお試しください
エラーをスローする代わりに、パーサーに何かを返すように指示するにはどうすればよいでしょうか。
私の知る限り、最初のルールと一致するように試み、失敗した場合は 2 番目のルールと一致する必要があります。
助けと提案をありがとう。
javascript - pegjsでネストされたコメントをどのように解析しますか?
pegjs でどのようにコメントを解析するのか (たとえば、Haskell 風に) 疑問に思っていました。
目標:
たとえば、次は解析すべきではありません。
ただし、エスケープメカニズムも必要です。
これは s 式を解析しているように見えますが、s 式を使用すると簡単です。
閉じ括弧は1文字に過ぎず、ニンジンと一緒に「できない」からです。余談ですが、pegjsで1文字よりも長いものを「できない」のはどうしてだろうと思っています。
ご協力いただきありがとうございます。