bison

    1熱度

    1回答

    我已經正確下載並在C:\中安裝了flex,bison和Dev C++。然後我嘗試在命令提示符下編譯myfile.l,但它給出了錯誤: flex: can't open myfile.l. 問題是什麼?

    0熱度

    1回答

    我正在嘗試關注http://gnuu.org/2009/09/18/writing-your-own-toy-compiler教程。我收到以下錯誤。 我錯過了什麼? Invoking: GCC C++ Compiler g++ -std=c++0x -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -I/u

    1熱度

    1回答

    我有一個C文件中像這樣的字符串: char *test = "print x"; 我想解析與Bison分析器我寫。可能嗎?

    0熱度

    1回答

    我有以下語法: expr : FUNC '(' expr ')' { ... } | FUNC '(' expr ',' expr ')' { ... } | expr '+' expr { ... } | expr '-' expr { ... } | NUM { ... } 而且我想進入EXPR,根據不同的規則之前執行的FUNC規則不同中旬規則行動。

    0熱度

    1回答

    我想用Flex /野牛生成的解析器與Rust結合使用玩具語言。爲了簡單起見,我希望Bison只需爲每個匹配的規則調用一個Rust定義的createCstNode()函數來創建一個具體的語法樹(它將被翻譯成Rust中的AST以供進一步處理)。函數調用將需要包含匹配的規則類型作爲參數,以便我的Rust代碼知道它是什麼類型的節點(表達式,if語句,while語句,函數調用,文字字符串,數字等)。 通過查

    1熱度

    2回答

    我有一個Jison一段代碼,看起來像這樣: %lex %options flex %{ if (!('regions' in yy)) { yy.regions = []; } %} text [a-zA-Z][a-zA-Z0-9]* %% \s+ /* skip whitespace */ \n+ return 'NL'; ","

    0熱度

    1回答

    所以我是新來的野牛,我想做一個簡單的計算器。 當我執行bison -d命令時,它說有7個減少/減少衝突,我不確定這是爲什麼,我知道這是因爲我的語法中存在一些錯誤的邏輯,我無法找到它。因此,這裏的代碼中不間斷文件: %{ #include <stdio.h> #include <stdlib.h> #include <Math.h> char** nizVarijabliI; int*

    0熱度

    3回答

    我有一條700行長的Bison語法文件,我試圖儘可能地將其分開,但隨着我的語言複雜度的增加,管理和組織所有規則變得越來越困難。我嘗試尋找某種方法來做野牛相當於#include或類似的東西,這樣我至少可以將它分解成文字,但幹得不錯。有沒有辦法讓我的語法分割成更小的模塊而不訴諸makefile hack之類的?

    2熱度

    2回答

    我正在用flex和野牛來修補,以創建一個小型計算器程序。令牌將是這樣的: read A read B sum := A + B write sum 讀,寫將關鍵字指示讀取值或寫入輸出值。 「:=」是賦值運算符。 A,B是標識符,可以是字符串。還會有評論//comment和塊註釋/* asdfsd */ 請問這些正則表達式是否正確以指定我指定的小文法? [:][=] //assignme

    0熱度

    2回答

    我正在研究RDDL的解析器,正如我之前所做的那樣,當我定義包含我使用的類型的聯合時,我使用了指針。例如。 %union { double d; int i; std::string *str; std::vector<std::string> *vectorStr; RDDLBlock *rddlBlock; Domain *domai