fsyacc

    1熱度

    2回答

    我試圖編譯這個項目: http://ramon.org.il/Here.zip ,但我得到了一堆無感的錯誤。他們得到了我熟悉的文字,但是在這個位置上沒有像這樣的東西(比如在一個空行上的意外')'。 請幫幫我!

    1熱度

    1回答

    fsyacc是否有辦法處理在解析時引入的運算符?我正在嘗試爲萬花筒打造一個解析器,這是一個玩具語言,用作LLVM tutorial的示例。萬花筒允許運營商與優先級一起定義。例如: # Logical unary not. def unary!(v) if v then 0 else 1; # Define > with the same precede

    3熱度

    2回答

    我正在研究使用F#的玩具編譯器,即FsLex和FsYacc的組合。爲了熟悉它們,我已經閱讀了Expert F#(v2)書的Lexer/Parser章節(一本好書btw)。現在,我已經完成了推薦的ocamlyacc教程的一半,並停留在最後一個示例多功能計算器mfcalc。特別是,在分析器文件下面的語句 %token <float->float> FNCT 不斷收到錯誤「錯誤:解析錯誤」在我F#

    4熱度

    1回答

    我使用F#Power Pack中的fsyacc/fslex來解析某些源代碼。 爲了檢測我用下面的代碼中的錯誤: use inputChannel = new StreamReader(File.OpenRead tempFileName) let lexbuf = Lexing.LexBuffer<_>.FromTextReader inputChannel let ast = try

    4熱度

    3回答

    我需要解析簡單的DSL語言類似如下: import "library.txt" def <int, bool, byte> main(int param1, bool param2) { var a = f4(param1); // or var d = f1(f2(f3(f4(param1)))); var b = f3(a); var c = f2(b);

    1熱度

    1回答

    我正在執行兩種語言L1和L2的解析和表達式評估。 重要的是,L1可以作爲單獨的語言使用,也可以作爲L2的一部分使用,L2僅包含幾個關鍵字,這些關鍵字在L1中不存在。 我已經樂星做 - >解析 - > AST生產 - > AST處理過程L1和用於此F#與FsLex,FsYacc工具。 是否可以使用已經開發的解析過程(我的意思是令牌,在L1解析器定義AST生產)解析另一種語言L2中? AST:L1的A

    2熱度

    1回答

    我想將C應用程序翻譯成.Net,並考慮如何自動執行任務。我不需要「解析」和編譯C文件,而是我想重新創建一個項目結構,創建一個與C文件相對應的.Net類。是否有意義查看YACC/LEX工具和其他解析器發電機?如果我能夠從C代碼創建AST,也許我可以從它得到一個C#代碼?

    4熱度

    1回答

    我開始玩Fslex/Fsyacc。當嘗試使用該輸入 Parser.fsy生成解析器: %{ open Ast %} // The start token becomes a parser function in the compiled code: %start start // These are the terminal tokens of the grammar along w

    1熱度

    2回答

    我試圖擴展作爲「F#解析語言啓動器」的一部分的示例語法來支持一元減號(用於2 * -5等表達式)。 我打一個塊等Samsdram here 基本上,我延長.fsy文件的標頭,以包括像這樣的優先級: ...... %nonassoc UMINUS .... ,然後,像這樣的語法規則: ... Expr: | MINUS Expr %prec UMINUS { Negative ($2)

    9熱度

    1回答

    我爲F#Lexer和Parser使用fslex/fsyacc實用程序。如果輸入文本的語法不正確,就必須知道它發生的地方。 有可能確定在詞法不正確語義(令牌),並拋出一個異常,如果它使用了不正確的符號或文字: rule token = parse ... | integer { INT (Int32.Parse(lexeme lexbuf)) } | "*="