20 月 2 日星期一,發布了快速詞法分析器生成器 reXNUMXc。
主要變化:
-
增加了對 Go 語言的支持
(通過 re2c 的 --lang go 選項啟用,或作為獨立的 re2go 程序啟用)。
C 和 Go 的文檔是從相同的文本生成的,但使用不同的
代碼示例。 re2c 中的代碼生成子系統已經完全重新設計,這
應該會讓以後更容易支持新的語言。 -
在 CMake 上添加了替代構建系統(感謝 利福克斯!)。
將 re2c 轉換為 CMake 的嘗試已經進行了很長時間,但是在 ligfx 之前沒有人
提供了完整的解決方案。
繼續支持和使用 Autotools 上的舊構建系統,
並且在可預見的未來沒有放棄它的計劃(部分是為了不創造
分發開發人員的問題,部分原因是舊的構建系統
比新的更穩定和簡潔)。
這兩個系統同樣使用 Travis CI 進行持續測試。 -
添加使用時在配置中設置接口代碼的功能
通用API(generic API)。 以前,大多數 API 必須在表單中指定
函數或函數宏。 現在它們可以以任意的形式設置
具有 @@{name} 或 @@ 形式的命名模板參數的字符串(如果
只有一個參數,沒有歧義)。 API風格可配置
re2c:api:style(函數值指定功能樣式,而自由格式值是任意的)。 -
改進了 -c, --start-conditions 選項的操作,它允許您組合多個
一個 re2c 塊中的互連詞法分析器。 現在你可以使用
普通塊與條件塊相提並論,並設置幾個不相關的條件
塊在一個文件中。
改進的 -r, --reuse 選項(重複使用一個塊中的代碼
在其他塊中)結合 -c, --start-conditions 和 -f, --storable-state 選項
(可以在任意位置中斷的有狀態詞法分析器
稍後繼續執行)。 -
修復了新添加的處理輸入數據結束的算法中的一個錯誤
(EOF 規則),在極少數情況下會導致不正確的處理
重疊的規則。 -
簡化的引導過程。 以前,構建系統試圖動態查找已經
構建了可用於重建自身的 re2c。
這導致了不正確的依賴關係(因為依賴關係圖原來是
動態的,大多數構建系統不喜歡)。
現在,要重建詞法分析器,明確要求
配置構建系統並設置 RE2C_FOR_BUILD 變量。
感謝所有為此版本做出貢獻的人!
來源: linux.org.ru