reduce-reduce-conflict

    1熱度

    1回答

    我寫一個語法(YACC - 「LALR」)應該認識到下面的話,例如: ident(ident,...,ident) = ident(num,ident,num,...,num) ident(ident,...,ident) = num ident = num ident = ident(num,ident,num,...,num) ident(ident,num,...,num) num

    0熱度

    1回答

    問題的一部分:這個問題的 expr_var: var_or_ID | expr_var '[' expr ']' | NEW expr_var '(' expr_listE ')' | expr_var '(' expr_listE ')' | expr_var ARROW expr_var | expr_var ARROW '{' expr_var '}' | expr_var DC

    1熱度

    2回答

    我已經創建了其具有以下語法一個語言的編譯器,通過ML-Yacc的定義衝突(起始符號是「程序」,這是在底部定義): %nonassoc FUN VAR ASSIGN PLUSASSIGN MINUSASSIGN TIMESASSIGN DIVIDEASSIGN %right ELSE %left OR %left AND %nonassoc EQ NEQ GT LT GE L

    0熱度

    1回答

    我有一個用於編譯器類的解析器項目。我無法解決其中一個規則的減少/減少衝突。 這個語法規則的圖形表示可在此鏈接(抱歉我不能在這裏張貼的圖片,由於StackOverflow的策略): Graphical representation of the "type" grammar rule ,所有的橢圓形是終端符號。 由於這條規則看起來有點複雜,我試圖把它分解成更小的片斷。 這是我嘗試構建語法: type

    0熱度

    1回答

    我想創建一個動態類型語言的解析器。 在我的野牛檔案我有一個規則爲runtimetyped這是一個變量名或函數調用。 runtimetyped : T_ID { $$ = create_identifier($1); } | call { $$ = $1; } ; 我也想在編譯時做一些基本的類型檢查。 F.E.我不想讓像 x = "string" + 42 <= tr

    0熱度

    1回答

    在下面的代碼中,我得到了一個衝突reduce-reduce,我嘗試了幾乎所有我想出來解決它的問題,繼承人問題報告,這是一個BNF-> Gold解析器轉換任何想法解決它,我aprreciate它 <Constructor> ::= <Type> '{' <SetCons_RecordCons_ArrayCons_Optional> '}' <SetCons_RecordCons_ArrayCon

    1熱度

    1回答

    我正在研究一個小型編譯器,以便更好地理解創建自己的語言的困難。現在我處於爲我的語法添加指針功能的階段,但我通過這樣做了減少/減少衝突。 這是我的語法的簡化版本,可由bnfc編譯。我使用happy解析器生成器,這是程序告訴我存在減少/減少衝突。 entrypoints Stmt ; -- Statements ------------- SDecl. Stmt ::= Type Ident;

    0熱度

    1回答

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

    0熱度

    1回答

    我正在實現一個JavaScript解釋器,並且我在函數聲明和函數表達式的語法中遇到了野牛減少/減少衝突的問題。我並不是那種野牛的經歷,我可以用一些幫助來理解要做什麼。我已經粘貼野牛輸入文件的子集,說明了以下的問題: %define api.pure full %{ #define YY_DECL int yylex \ (YYSTYPE * yylval_param, yyscan

    0熱度

    1回答

    考慮以下(當然荒謬的 - 這已經大大簡化,以說明這一點)語法: negationExpression : TOK_MINUS constantExpression %prec UNARYOP | testRule ; constantExpression : TOK_INTEGER_CONSTANT | TOK_FLOAT_CONSTANT