我目前正致力于將我的一個決議器專案從 java 重寫為 C。我喜歡堅持使用 ANTLR,因為我發現它易于使用,但不幸的是 ANTLR4 不再支持 C 目標。幸運的是,ANTLR3 可以,而且我已經撰寫了一個快速語法來測驗東西,但我不清楚如何生成代碼。我在 macOS Monterey 上,并且嘗試了 CLI 工具(使用antlr <file>)。但是代碼不會生成,我收到一條錯誤訊息說ANTLR cannot generate C code as of version 4.11.1。這是例外,但沒有用于 ANTLR3 的命令列工具(據我所知)。
Brew 支持安裝antlr@2,但不支持 3,而且我在 VSCode 中找不到任何擴展來生成 C 目標。如果重要的話,我的語法如下:
grammar Q;
options
{
language = C;
}
program
: PRINT
;
// Tokens.
PRINT
: 'printf' '<' ID '>'
;
WS : (' '|'\t'|'\n')
;
fragment
ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*
;
uj5u.com熱心網友回復:
ANTLR3 和 ANTLR4 之間的方法沒有改變。您仍然可以通過使用 ANTLR jar 呼叫 Java 來啟動生成程序,例如:
java -Xmx1024m -jar antlr-3.4-complete.jar -make MySQL.g
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/535544.html
