yacc

    0熱度

    1回答

    寫lambda表達式解析器的序列, data expr = Symbol of string | Lambda of string * expr | App of expr * expr 當寫.mly文件裏如何表達的想法,表達序列 e1 e2 e3 e4 應被解析爲 App ((App (App e1 e2) e3) e4) 使用規則: %public expr_expr:

    0熱度

    1回答

    即時嘗試爲Csimple構建編譯器當我運行命令 「cc -o test y.tab.c - 我知道我的yacc文件沒有解析得很好,但是我首先需要它運行,所以我可以看到輸出結果。 錯誤出現在在YACC文件的中間線 「%{」 法: %option yylineno %pointer %{ #include <stdlib.h> #include <string.h>

    -1熱度

    1回答

    我們有一個任務來編譯一個lex和一個yacc praser代碼,然後使用cc tab.yc -ll -Ly命令將它們一起運行,當我們分開它們時編譯得很好,但是將兩個部分編譯爲一個給出了10行錯誤。 第一部分是萊克斯代碼: %option yylineno %pointer %{ #include <stdlib.h> #include <string.h

    0熱度

    1回答

    我正在爲簡單的C編寫一個編譯器的解析器,我試圖理解爲什麼我有 yacc:22移位/減少衝突,15減少/減少衝突。 法文件 letter [a-zA-Z] Hexdigits [A-F|0-9] OctalDigit [0-7] digit [0-9] digitMZ [1-9] newline (\n) integerNum "0"|{digitMZ}{digit}* Hex

    0熱度

    1回答

    我正在開發lex/yacc c編譯器。 爲了處理故障和解析錯誤,我想部署一個異常系統處理程序。 實際上只是一個 「解析錯誤」 消息處理任何is.for例子問題 這是法文件 Boolean [true]|[false] Char '[\41-\176]' Integer ({Digit)|{Hex}|{Decimal}|{Octal}|{Binary})+ String \"[^"\

    2熱度

    1回答

    我建立使用Flex和Bison非常瑣碎的編譯器,其是應該認識到在一個源文件中的簡單的字符串和我使用標準錯誤流,以輸出一個消息如果字符串被正確識別。 下面是我的代碼和我意想不到的結果。 這是源文件(testsource.txt)以字符串我試圖識別: \end{document} 這是Flex文件(UnicTextLang.l): %{ #include <stdio.h> #

    2熱度

    1回答

    我正在嘗試使用Flex和Bison爲簡單格式化語言構建編譯器。我仍然處於開始階段,我編寫了一些功能。 儘管在這個階段,我還沒有在任何地方打印任何東西。我有一些錯誤的情況下輸出文件中打印的東西,但顯然不會發生這種輸入。我所有的其他打印語句都將打印到控制檯。所以,我預計輸出文件將是完全空的。然而,當我嘗試使用下面我的輸入文件: \begin {document} \tabsize(5) \tit

    0熱度

    1回答

    我爲我的大學開發了一個迷你外殼。爲了解析命令行,我使用lex和yacc。 當我按上/下/左/右箭頭字符串「^ [[顯示的A或B或C或d。 是否有可能認識到這個字符執行操作時按下此鍵?也許使用ncurses庫的功能(我在Linux上)? 我秀,在bash使用yacc語法(https://en.wikipedia.org/wiki/GNU_bison),我們可以使用箭頭鍵。因此,我認爲是可以的。 謝謝

    0熱度

    1回答

    我有以下yacc語法: %{ #include <stdio.h> extern FILE* yyin; extern char* yytext; %} %token VAR ID_NAME TYPE_STRING TYPE_BOOL TYPE_NUMBER CONST %% var_declaration: VAR ':' type ID_NAME ';' { printf

    0熱度

    1回答

    我有以下yacc語法: %{ #include <stdio.h> extern FILE* yyin; extern char* yytext; %} %token VAR ID_NAME TYPE_STRING TYPE_BOOL TYPE_NUMBER %token CONST VALUE_STRING VALUE_BOOL VALUE_NUMBER %% progr