簡體   English   中英

野牛逗號分隔值的語義

[英]Semantic of comma-separated values with bison

我正在嘗試將語義值賦予以逗號分隔的值列表。 實際上,我已經定義了野牛使用的減少規則

commasv : exp
        | commasv "," exp

其中, exp是一個數字,變量或函數指針,或者是帶有其各自的語法和語義規則的commasv令牌。 exp的類型為double,因此commasv的類型必須為double。

問題是我想存儲列表以便在例如函數調用中使用它。 例如

h = create_object()
compute_list(h,1,cos(3.14159))

將給出特定的compute_list函數的預期結果。

作為基礎的野牛文件,我使用了野牛手冊中的 mfcalc示例,並將yylex函數替換為使用flex生成的其他函數。 現在我可以做類似的事情

pi = 3.14159
sin(pi)
ln(exp(5))

使用帶有flex的yylex函數的修改版本,但我想將逗號分隔的值用於函數調用,列表創建等操作。

感謝您的回答。

然后創建一個列表以存儲結果。 commasv規則的結果返回實際值,而是讓它返回列表頭。

通常,一旦您掌握了某種程度適中的語法(例如,它結合了諸如列表之類的東西),您就不再能夠真正使用值來表示解析,而是必須轉到某種抽象語法樹

暫無
暫無

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

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