PEG.js を使用して C++ パーサーを作成していますが、cin
. After-match JS で を使用するprompt()
と、(代替)オンライン バージョンで「解析エラー: プロンプトが定義されていません」というエラーがスローされます。イニシャライザを使用してレプリケートする関数を作成しようとしていますprompt
(おそらく最適化されていないため、解決策として試しただけです)。ただし、これを行うと、まだエラーが発生します。私も使用window.prompt
してみましたが、やはりうまくいきません。これが私がやっていることの例です:
{
function cin() {
window.prompt("");
}
function changeVar(variable, newValue) {
if(typeof variable === typeof newValue) {
variable = newValue;
} else if(typeof variable === 'undefined') {
alert("You can't assign a value to a variable if the variable isn't declared yet!");
} else {
alert("Bad assignment. In C++, a variable *must* have the same type *all the time*.");
}
}
}
stdin =
whitespace* "std::cin" whitespace* ">>" whitespace* varToBeChanged:[a-zA-Z_]+ ";" whitespace*
{ changeVar(varToBeChanged, cin('')); return varToBeChanged; }
whitespace =
space:[ \t]
{ return space; }
次に、パーサー テスト フィールドで:
std::cin >> variable;
ご覧いただきありがとうございます。これをグーグルで検索し、これを検索してみましたが、結果が見つかりませんでした。
また、ここにコードの主要部分があり、誰もが必要とするすべての (現在の) 追加情報が含まれています。これにもいくつか問題がありますが、別の質問を投稿する前に、自分で解決しようとします。