[英]PEG.js: how to use prompt?
我正在使用PEG.js創建C ++解析器,並且我需要能夠使用cin
。 使用賽后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;
謝謝您的光臨。 我已經嘗試使用Google搜索,並對此進行了搜索,但未找到任何結果。
另外,這是主要的代碼段 ,其中包含任何人需要的所有(當前)額外信息。 我對此也有一些問題,但是在發布另一個問題之前,我會嘗試自己解決這些問題。
如果使用的是http://peg.arcanis.fr/ ,則解析器代碼在Web Worker內執行-Web Worker無法訪問任何UI(如window
或DOM)。 錯誤“ undefined variable
”字面意思是沒有聲明window
或prompt
。
如果將代碼粘貼到http://pegjs.majda.cz/online ,則該代碼將在網頁環境中執行且可以正常運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.