我想在JavaScript中爲Lilypond語言的音樂符號編寫解析器。我的第一個手動嘗試工作,但只能處理該語言的一小部分。由於Lilypond使用野牛文件來定義它的語法[1],JISON聲稱能夠從野牛文件中工作,我的想法是可能使用這些定義在JavaScript中生成解析器。如何使用JISON從野牛文件生成解析器
我找不到任何地方的任何例子,並試圖將這些文件直接送入JISON只是拋出錯誤。
什麼是最好的方法來解決這個問題?
[1]:見https://github.com/lilypond/lilypond/blob/master/lily/lexer.ll和https://github.com/lilypond/lilypond/blob/master/lily/parser.yy),
你可以更具體的步驟,我將不得不通過?由於Bison文檔和JISON缺乏細節,我甚至不知道使用哪種文件或哪種類型的野牛輸出,以及哪些文件可用作JISON的輸入。 (編輯:我同意Lilypond語法怪異。) – mauritslamers
我不能更具體,沒有太具體,那是我自己做的整個港口。是的,這很糟糕。首先:我剛剛剝離了Bison文件中的C代碼,並且JISON在第一個產品(文件中最頂層的產品)中發現了堵塞。順便說一句:JISON確實會返回任何有用的診斷信息,直到您對第163行中的四個解析器調用和後面的'jison/lib/cli.js'中的'try ... catch'構造進行註釋爲止。所以......我該怎麼說呢......你給了EMScripten一個嘗試嗎? – deamentiaemundi
我剛纔發現Bison語法定義是使用解析器需要寫入的語言編寫的。我認爲該語法是抽象的,並且可以「移植」到任何語言,我現在看到的語言顯然不是案子。順便說一句,我試着用-t參數運行JISON,但它沒有任何區別。 – mauritslamers