我正在使用 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;
谢谢你的关注。我试过用谷歌搜索这个和搜索这个,但我没有找到任何结果。
此外,这里是主要代码段,用于任何人需要的所有(当前)额外信息。我对此也有一些问题,但在发布另一个问题之前,我会尝试自己解决这些问题。