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