簡體   English   中英

PEG.js:如何使用提示?

[英]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 ”字面意思是沒有聲明windowprompt

如果將代碼粘貼到http://pegjs.majda.cz/online ,則該代碼將在網頁環境中執行且可以正常運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM