[英]I have a grammar in my vscode extension. I want to programmatically identify comments in a TextLine or TextDocument object
我正在為ChucK音樂編程語言開發VSCode擴展。 我發布了一個僅使用.tmLanguage.json
文件進行語法高亮顯示的版本。 現在,我正在研究語法檢查器。
ChucK標識的語法錯誤位置有些混亂,如果我將范圍擴展到前一個語句或塊的末尾,這將更清楚,這意味着向后看前一個;
或}
字符。
這很簡單,除了我需要跳過評論的事實。 ChucK具有C ++樣式的注釋,並帶有//
行注釋和/* */
塊注釋。 這些由我的語法文件正確突出顯示。
我有什么辦法可以獲取語法所產生的語法信息來識別這些注釋? 掃描文檔后,看來我也許能夠抓住諸如文字顏色之類的視覺屬性,但這似乎與主題相關且容易出錯。 我的代碼如何直接了解語法如何識別特定字符或區域?
如果要對自定義語言進行錯誤檢查,則必須為此編寫一個完整的解析器。 許多擴展作者已經做到了這一點(或者使用外部解析器,例如C ++的clang)。 一旦獲得了語法結構,就很容易找到一定范圍的語法元素,並且解析器將為您提供錯誤位置(如果有錯誤)。
我成功地使用了ANTLR4(通過antlr4ts打字稿運行時)來解析和處理自定義語言(以我的情況為ANTLR4語法)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.